@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("../fonts/manrope-variable.ttf") format("truetype"); }
.hssm-notes-dialog, .hssm-crop-dialog { background: var(--hssm-surface-light); color: var(--hssm-text-light); border: 1px solid var(--hssm-border); padding: 0; box-sizing: border-box; }
.hssm-notes-dialog::backdrop, .hssm-crop-dialog::backdrop { background: color-mix(in srgb, var(--hssm-backdrop) 45%, transparent); }
.hssm-notes-dialog { font-family: "Manrope", sans-serif; background: var(--hssm-dialog-bg); color: var(--hssm-dialog-text); border-color: var(--hssm-dialog-border); width: min(520px, 100vw); max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; inset: 0; }
.hssm-notes-dialog[open] { display: grid; grid-template-rows: auto minmax(80px, 1fr) auto; }
.hssm-notes-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--hssm-border); }
.hssm-notes-header p, .hssm-notes-header h2 { margin: 0; }
.hssm-notes-feed { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 16px 20px; }
.hssm-note { border-bottom: 1px solid var(--hssm-border); padding: 14px 0; }
.hssm-note header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.hssm-note time, .hssm-note-badge { font-size: .8rem; }
.hssm-note-body { white-space: pre-wrap; overflow-wrap: anywhere; }
.hssm-note-composer { padding: 14px 20px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--hssm-border); max-height: 48dvh; overflow: auto; }
.hssm-note-composer textarea { min-height: 70px; max-height: 22dvh; resize: vertical; }
.hssm-note-composer .hssm-check { margin: 8px 0; }
.hssm-crop-dialog { width: min(560px, calc(100vw - 24px)); max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 20px; border-radius: 12px; overflow: auto; }
.hssm-crop-dialog h2 { margin: 0 0 8px; }
.hssm-crop-dialog canvas { display: block; width: min(100%, 48dvh); height: auto; aspect-ratio: 1; margin: 12px auto; touch-action: none; cursor: grab; border: 2px solid var(--hssm-text-light); }
.hssm-crop-dialog input[type="range"] { display: block; width: 100%; min-height: 44px; accent-color: var(--hssm-header-bg); }
.hssm-crop-selected-preview { display: block; width: 140px; height: 140px; object-fit: cover; margin-top: 10px; }
@media (max-width: 600px) {
	.hssm-notes-dialog { font-family: "Manrope", sans-serif; background: var(--hssm-dialog-bg); color: var(--hssm-dialog-text); border-color: var(--hssm-dialog-border); width: 100vw; border: 0; }
	.hssm-crop-dialog { width: 100vw; max-width: 100vw; max-height: 100dvh; margin: auto 0 0; padding: 16px; border-radius: 12px 12px 0 0; }
	.hssm-recruiting-actions { align-items: stretch; flex-direction: column; }
	.hssm-recruiting-actions .hssm-button { min-height: 44px; }
}
.hssm-recruiting-profile, .hssm-cc-saved-portal { font-family: "Manrope", sans-serif; font-weight: 400; }
/* The radius owner clips its own surfaces. Outer wrappers reveal the page. */
body:not(.wp-admin) .hssm-recruiting-profile { background: transparent; container-type: inline-size; }
.hssm-recruiting-card { background: var(--hssm-surface-light); color: var(--hssm-text-light); border: 1px solid var(--hssm-border); border-radius: 10px; box-shadow: 0 3px 14px color-mix(in srgb, var(--hssm-shadow) 16%, transparent); }
.hssm-recruiting-profile .hssm-recruiting-heading { background: linear-gradient(135deg, var(--hssm-header-gradient-start), var(--hssm-header-gradient-end)); margin: 0 0 20px; padding: 10px 18px 18px; border-radius: 6px; }
body:not(.wp-admin) .hssm-recruiting-profile .hssm-recruiting-heading h2 { color: var(--hssm-header-heading); }
body:not(.wp-admin) .hssm-recruiting-profile .hssm-recruiting-heading p { color: var(--hssm-header-text); }
body:not(.wp-admin) .hssm-recruiting-profile .hssm-recruiting-heading a { color: var(--hssm-header-link); }
body:not(.wp-admin) .hssm-recruiting-profile .hssm-recruiting-heading a:hover { color: var(--hssm-header-link-hover); }
.hssm-recruiting-card :is(h3, h4, strong) { color: var(--hssm-text-light); }
.hssm-recruiting-card a:not(.hssm-button) { color: var(--hssm-link-light); }
.hssm-recruiting-card a:not(.hssm-button):hover { color: var(--hssm-link-light-hover); }
.hssm-recruiting-heading h2 { font-size: clamp(1.25rem, 2.4vw, 1.65rem); font-weight: 700; margin: 8px 0; text-transform: none; letter-spacing: normal; }
.hssm-recruiting-heading p { margin: 0; font-size: .9rem; }
.hssm-recruiting-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.hssm-recruiting-identity { display: grid; gap: 24px; align-items: start; padding: clamp(18px, 2.5vw, 28px); }
.hssm-recruiting-identity--with-photo { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.hssm-recruiting-bio { min-width: 0; }
.hssm-recruiting-profile #hssm-recruiting-player-name { font-family: inherit; font-size: clamp(1.65rem, 3vw, 2.2rem); font-weight: 700; line-height: 1.2; margin: 0 0 12px; text-transform: none; letter-spacing: normal; }
.hssm-recruiting-profile :is(h3, h4) { font-family: inherit; font-weight: 600; text-transform: none; letter-spacing: normal; }
.hssm-recruiting-profile h4 { font-size: .95rem; margin: 20px 0 12px; }
.hssm-recruiting-status { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; font-size: .8rem; font-weight: 500; }
.hssm-recruiting-status span { background: var(--hssm-field-bg); color: var(--hssm-field-text); border: 1px solid var(--hssm-border); border-radius: 4px; padding: 3px 8px; }
.hssm-recruiting-team-line { color: var(--hssm-text-light-secondary); margin: 0; font-size: .9rem; }
.hssm-recruiting-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0; }
.hssm-recruiting-facts > div { min-width: 0; }
body:not(.wp-admin) .hssm-recruiting-profile .hssm-recruiting-facts dt { color: var(--hssm-text-light-secondary); font-size: .78rem; font-weight: 500; margin: 0 0 2px; }
.hssm-recruiting-facts dd { font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.hssm-recruiting-photo { margin: 0; min-width: 0; justify-self: end; }
.hssm-recruiting-photo img { display: block; width: auto; height: auto; max-width: min(100%, 280px); max-height: 280px; aspect-ratio: 1; object-fit: cover; border: 1px solid var(--hssm-border); border-radius: 6px; }
.hssm-recruiting-actions { padding: 14px clamp(18px, 2.5vw, 28px); background: var(--hssm-field-bg); color: var(--hssm-field-text); border-block: 1px solid var(--hssm-border); }
.hssm-recruiting-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; padding: 0 clamp(18px, 2.5vw, 28px); }
.hssm-recruiting-details .hssm-section { min-width: 0; padding: 20px 0; border-top: 0; border-bottom: 1px solid var(--hssm-border); }
.hssm-recruiting-details :is(h3, p) { margin: 0 0 10px; }
.hssm-recruiting-details h3, .hssm-recruiting-memberships > h3 { font-size: 1rem; }
.hssm-recruiting-details .hssm-recruiting-facts { grid-template-columns: 1fr; }
.hssm-recruiting-links a { overflow-wrap: anywhere; }
.hssm-recruiting-memberships { padding: 20px clamp(18px, 2.5vw, 28px); }
.hssm-recruiting-rosters { list-style: none; margin: 0; padding: 0; }
.hssm-recruiting-rosters li { padding: 14px 0; border-bottom: 1px solid var(--hssm-border); }
.hssm-recruiting-rosters li:last-child { border: 0; padding-bottom: 0; }
.hssm-recruiting-rosters h4 { margin: 0 0 10px; }
.hssm-recruiting-rosters .hssm-recruiting-facts { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }

.hssm-save-player { margin: 0; min-width: 0; }
.hssm-save-player .hssm-save-state { color: var(--hssm-field-text); font-size: .8rem; font-weight: 600; margin: 0 0 8px; }
.hssm-save-player__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.hssm-save-player .hssm-check { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; font-size: .85rem; font-weight: 500; cursor: pointer; }
.hssm-save-player input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; accent-color: var(--hssm-header-bg); }
.hssm-save-player :is(.hssm-button, .hssm-notes-action) { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; max-width: 100%; padding: 7px 10px; border: 1px solid var(--hssm-border); border-radius: 4px; font: inherit; font-size: .85rem; font-weight: 500; text-align: center; text-transform: none; letter-spacing: normal; cursor: pointer; }
.hssm-notes-action svg { flex: 0 0 auto; }
body:not(.wp-admin) .hssm-recruiting-actions .hssm-check { color: var(--hssm-field-text); }
body:not(.wp-admin) :is(.hssm-recruiting-profile, .hssm-cc-saved-portal) .hssm-button--remove { background: transparent; color: var(--hssm-text-light-secondary); border-color: transparent; padding-inline: 0; text-decoration: underline; text-underline-offset: 3px; }
body:not(.wp-admin) .hssm-recruiting-actions .hssm-button--remove { color: var(--hssm-field-help); }
.hssm-button--remove:hover { text-decoration-thickness: 2px; }
.hssm-save-player .hssm-sharing-help { display: block; margin-top: 6px; font-size: .8rem; }
body:not(.wp-admin) :is(.hssm-recruiting-profile, .hssm-cc-saved-portal) :is(.hssm-button--primary, .hssm-cc-button--primary) { background: var(--hssm-button-primary-bg); color: var(--hssm-button-primary-text) !important; border-color: var(--hssm-button-primary-border); font-weight: 600; }
body:not(.wp-admin) :is(.hssm-recruiting-profile, .hssm-cc-saved-portal) :is(.hssm-button--primary, .hssm-cc-button--primary):hover { background: var(--hssm-button-primary-bg-hover); color: var(--hssm-button-primary-text-hover) !important; border-color: var(--hssm-button-primary-border-hover); }

.hssm-cc-saved-portal { border-radius: 10px; background: transparent; }
.hssm-cc-saved-portal .hssm-cc-portal-header { border-radius: 10px 10px 0 0; padding: 22px 24px; box-shadow: none; }
.hssm-cc-saved-portal .hssm-cc-portal-content { border-radius: 0 0 10px 10px; container-type: inline-size; padding: 20px; }
.hssm-cc-saved-portal :is(h1, h2) { font-weight: 700; }
.hssm-cc-saved-portal :is(h3, h4, .hssm-cc-form label > span) { font-weight: 600; }
.hssm-cc-saved-portal .hssm-cc-button { font-weight: 600; border-radius: 4px; }
.hssm-cc-saved-portal .hssm-cc-filter { padding: 16px; border-radius: 6px; box-shadow: none; margin-bottom: 18px; }
.hssm-cc-saved-portal .hssm-cc-grid--filters { gap: 12px; }
.hssm-cc-saved-portal .hssm-cc-page-heading { margin-bottom: 16px; }
.hssm-cc-saved-portal .hssm-cc-page-heading p:last-child { font-size: .9rem; }
.hssm-saved-workspace { border-block: 1px solid var(--hssm-border); }
.hssm-saved-count { margin: 0; padding: 12px 0; color: var(--hssm-text-light-secondary); font-size: .85rem; font-weight: 500; }
.hssm-saved-columns, .hssm-saved-player { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.15fr) minmax(52px, .45fr) minmax(0, .7fr) minmax(225px, 1.3fr); gap: 14px; }
.hssm-saved-columns { padding: 9px 12px; background: var(--hssm-table-header-bg); color: var(--hssm-table-header-text); font-size: .75rem; font-weight: 600; }
.hssm-cc .hssm-saved-list { list-style: none; margin: 0; padding: 0; }
.hssm-cc .hssm-saved-player { margin: 0; padding: 16px 12px; border-bottom: 1px solid var(--hssm-border); }
.hssm-saved-player:last-child { border-bottom: 0; }
.hssm-saved-player > * { min-width: 0; }
.hssm-cc .hssm-saved-player__identity h3 { margin: 0 0 8px; font-size: 1.15rem; font-weight: 700; text-transform: none; letter-spacing: normal; }
.hssm-saved-player__identity strong { font-weight: 700; }
.hssm-cc .hssm-saved-metadata { display: flex; flex-wrap: wrap; gap: 3px 10px; font-size: .75rem; color: var(--hssm-text-light-secondary); margin: 0; }
.hssm-saved-player dl { margin: 0; font-size: .85rem; }
.hssm-saved-player dt { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.hssm-saved-player dd { margin: 0; }
.hssm-saved-player dd small { display: block; margin-top: 3px; font-size: .75rem; }
.hssm-saved-player__class dd { font-weight: 600; }
.hssm-saved-player__actions .hssm-view-profile { font-size: .8rem; min-height: 44px; padding: 7px 10px; margin-bottom: 4px; gap: 5px; }
.hssm-saved-player__actions .hssm-save-player__controls { gap: 0 10px; }
.hssm-saved-player__actions .hssm-save-player :is(.hssm-check, .hssm-button, .hssm-notes-action) { font-size: .75rem; }
.hssm-saved-player__actions .hssm-notes-action { justify-content: flex-start; border: 0; padding-inline: 0; color: var(--hssm-link-inset); }
.hssm-saved-player__actions .hssm-notes-action:hover { color: var(--hssm-link-inset-hover); }
@container (max-width: 780px) {
	.hssm-saved-columns { display: none; }
	.hssm-cc .hssm-saved-player { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; padding-inline: 0; }
	.hssm-saved-player__identity, .hssm-saved-player__team, .hssm-saved-player__actions { grid-column: 1 / -1; }
	.hssm-saved-player dt { position: static; width: auto; height: auto; overflow: visible; clip-path: none; font-size: .75rem; color: var(--hssm-text-light-secondary); font-weight: 500; }
	.hssm-saved-player__actions { display: flex; flex-wrap: wrap; align-items: start; gap: 4px 14px; border-top: 1px solid var(--hssm-border); padding-top: 10px; }
	.hssm-saved-player__actions .hssm-save-player { flex: 1 1 260px; }
}
@container (max-width: 640px) {
	.hssm-recruiting-identity--with-photo { grid-template-columns: minmax(0, 1fr); }
	.hssm-recruiting-photo { justify-self: start; }
	.hssm-recruiting-photo img { max-width: min(100%, 200px); max-height: 200px; }
	.hssm-recruiting-details { grid-template-columns: minmax(0, 1fr); }
	.hssm-recruiting-rosters .hssm-recruiting-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hssm-recruiting-rosters .hssm-recruiting-facts > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
	.hssm-cc-saved-portal .hssm-cc-portal-content { padding: 16px; }
}

/* Lifecycle controls stay in document flow; a long note can expand without hiding actions. */
.hssm-note { background: var(--hssm-note-bg); color: var(--hssm-note-text); border-color: var(--hssm-note-border); }
.hssm-note-scope, .hssm-note-edited { display: block; margin: 4px 0; font-size: .8rem; }
.hssm-note-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.hssm-note-editor, .hssm-note-delete { margin-top: 8px; }
.hssm-note :is(summary, .hssm-button) { min-height: 44px; font-weight: 600; }
.hssm-note summary { display: list-item; width: fit-content; padding: 10px 4px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.hssm-note summary:focus-visible { outline: 2px solid var(--hssm-field-focus); outline-offset: 3px; }
.hssm-note-editor form, .hssm-note-delete form { padding: 16px; margin: 4px 0 12px; background: var(--hssm-surface-inset); color: var(--hssm-text-inset); border: 1px solid var(--hssm-note-border); border-radius: 6px; }
.hssm-note-editor textarea { width: 100%; min-height: 120px; resize: vertical; box-sizing: border-box; }
.hssm-note-editor .hssm-help { font-size: .8rem; margin-block: 8px 16px; }
.hssm-notes-dialog .hssm-button--destructive { background: var(--hssm-button-destructive-bg); color: var(--hssm-button-destructive-text); border-color: var(--hssm-button-destructive-border); }
.hssm-notes-dialog .hssm-button--destructive:hover { background: var(--hssm-button-destructive-bg-hover); color: var(--hssm-button-destructive-text-hover); border-color: var(--hssm-button-destructive-border-hover); }
.hssm-notes-dialog .hssm-button--destructive:focus-visible { outline: 2px solid var(--hssm-button-destructive-border-focus); outline-offset: 3px; }
.hssm-notes-dialog :is(button, a) { overflow-wrap: anywhere; }
@media (max-width: 480px) {
 .hssm-notes-header { align-items: flex-start; flex-wrap: wrap; padding: 12px 16px; }
 .hssm-notes-feed { padding: 12px 16px; }
 .hssm-note-editor form, .hssm-note-delete form { padding: 12px; }
}

/* Directive 8 keeps color roles separate from component geometry. */
body .hssm-save-player .hssm-save-player__controls > .hssm-check { display: inline-flex; flex-direction: row; align-items: center; margin: 0; gap: 8px; }
body .hssm-save-player .hssm-check input[type="checkbox"] { align-self: center; width: 18px; min-width: 18px; height: 18px; min-height: 18px; padding: 0; margin: 0; flex: 0 0 18px; }
.hssm-save-player .hssm-bookmark-star { margin-inline-start: auto; width: 44px; min-width: 44px; height: 44px; padding: 9px; color: var(--hssm-link-inset); background-color: var(--hssm-surface-inset); }
.hssm-save-player .hssm-bookmark-star:hover { color: var(--hssm-link-inset-hover); }
.hssm-save-player .hssm-bookmark-dialog { padding: 28px; max-width: min(520px, calc(100vw - 32px)); }
.hssm-bookmark-feedback { margin: 10px 0 0; font-size: .875rem; }
.hssm-recruiting-rosters .hssm-recruiting-facts { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 16px 28px; }
.hssm-recruiting-rosters .hssm-recruiting-facts > div { flex: 0 1 auto; min-width: 100px; max-width: 100%; }
.hssm-saved-team-link { display: block; overflow-wrap: anywhere; margin-bottom: 5px; }
.hssm-cc-team-profile .hssm-cc-card { margin-block: 20px; }
.hssm-team-links { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(220px,100%),1fr)); gap: 16px; padding: 16px 0; list-style: none; }
.hssm-team-links small, .hssm-team-schedule span { display: block; }
.hssm-team-schedule { padding-left: 20px; } .hssm-team-schedule li { margin-bottom: 16px; overflow-wrap: anywhere; }
.hssm-player-save { min-width: 120px; min-height: 48px; padding: 12px 24px; }
@media (max-width: 560px) { .hssm-recruiting-rosters .hssm-recruiting-facts { display: grid; grid-template-columns: 1fr; gap: 12px; } }

/* Each saved player owns one compact surface; internal groups do not mimic card edges. */
.hssm-saved-workspace { border: 0; }
.hssm-cc .hssm-saved-list { display: grid; gap: 14px; }
.hssm-cc .hssm-saved-player { padding: 16px; border: 1px solid var(--hssm-border); border-radius: 8px; background: var(--hssm-surface-light); color: var(--hssm-text-light); box-shadow: 0 2px 8px color-mix(in srgb, var(--hssm-shadow) 10%, transparent); }
.hssm-saved-player :is(h3, p, dd, a, button, span) { overflow-wrap: anywhere; }
.hssm-saved-columns { margin-bottom: 10px; border-radius: 6px; }
@container (max-width: 780px) {
    .hssm-cc .hssm-saved-player { padding: 16px; }
    .hssm-saved-player__actions { border: 0; background: var(--hssm-surface-inset); color: var(--hssm-text-inset); padding: 12px; border-radius: 6px; }
}
.hssm-saved-metadata [data-hssm-saved-metadata] { display: flex; flex-wrap: wrap; gap: 3px 10px; }
