:root{color-scheme:light;--color-brand-950: #003d3f;--color-brand-900: #005457;--color-brand-800: #006e71;--color-brand-700: #007d80;--color-brand-600: #009fa2;--color-brand-500: #08afb2;--color-brand-300: #77d8d9;--color-brand-200: #afe9e9;--color-brand-100: #d9f5f5;--color-brand-50: #effbfb;--color-ink: #163335;--color-ink-soft: #52696a;--color-canvas: #f4fbfb;--color-surface: #ffffff;--color-border: #c9dcdc;--color-danger: #b42318;--color-danger-soft: #fff1f0;--color-warning: #8a4b08;--color-warning-soft: #fff7e6;--color-success: #16704a;--color-success-soft: #eaf8f1;--color-action: #007d80;--color-action-hover: #006e71;--color-on-action: #ffffff;--color-inverse-surface: #003d3f;--color-on-inverse: #ffffff;--color-info-solid: #006e71;--color-success-solid: #16704a;--color-danger-solid: #b42318;--color-on-solid: #ffffff;--color-danger-border: #f3b6b0;--color-warning-border: #e3bd75;--color-success-border: #a8dfc5;--color-subtle-surface: #f6fafa;--color-divider: #e3eeee;--color-active-segment-end: #f7fefe;--color-switch-track: #d8e2e2;--color-switch-thumb: #ffffff;--color-neutral-dot: #94a7a8;--color-warning-dot: #d9871b;--color-success-dot: #20a36f;--color-backdrop: rgb(0 34 36 / 52%);--color-header-translucent: rgb(244 251 251 / 88%);--color-nav-translucent: rgb(255 255 255 / 94%);--color-empty-translucent: rgb(255 255 255 / 66%);--color-header-border: rgb(201 220 220 / 72%);--color-page-glow: rgb(119 216 217 / 22%);--shadow-nav: 0 -8px 25px rgb(0 61 63 / 7%);--shadow-selected: 0 8px 24px rgb(0 110 113 / 11%);--shadow-switch-thumb: 0 1px 4px rgb(0 0 0 / 20%);--color-signal-ring: rgb(32 163 111 / 45%);--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.25rem, 3vw, 1.5rem);--text-2xl: clamp(1.5rem, 5vw, 2rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(0 61 63 / 8%), 0 2px 8px rgb(0 61 63 / 6%);--shadow-lg: 0 18px 50px rgb(0 61 63 / 18%);--content-width: 70rem;--reading-width: 44rem;--touch-target: 2.75rem;--focus-ring: 0 0 0 3px rgb(8 175 178 / 30%);--transition-fast: .14s ease}html[data-theme=dark]{color-scheme:dark;--color-brand-950: #dffafa;--color-brand-900: #bdeff0;--color-brand-800: #93e1e3;--color-brand-700: #67cfd1;--color-brand-600: #32b3b7;--color-brand-500: #259599;--color-brand-300: #356e70;--color-brand-200: #2a5659;--color-brand-100: #193d40;--color-brand-50: #112c2f;--color-ink: #edf8f8;--color-ink-soft: #aec3c4;--color-canvas: #091719;--color-surface: #102326;--color-border: #365256;--color-danger: #ff9b93;--color-danger-soft: #351b1d;--color-warning: #ffd08a;--color-warning-soft: #362817;--color-success: #7ce0ad;--color-success-soft: #173126;--color-action: #08787c;--color-action-hover: #096a6d;--color-on-action: #ffffff;--color-inverse-surface: #061113;--color-on-inverse: #edf8f8;--color-info-solid: #11676b;--color-success-solid: #176542;--color-danger-solid: #8d2923;--color-on-solid: #ffffff;--color-danger-border: #79413e;--color-warning-border: #765a31;--color-success-border: #316b50;--color-subtle-surface: #152a2d;--color-divider: #294347;--color-active-segment-end: #143336;--color-switch-track: #3a5154;--color-switch-thumb: #f3fbfb;--color-neutral-dot: #83999b;--color-warning-dot: #f2a23d;--color-success-dot: #50cd91;--color-backdrop: rgb(0 5 6 / 72%);--color-header-translucent: rgb(9 23 25 / 90%);--color-nav-translucent: rgb(16 35 38 / 96%);--color-empty-translucent: rgb(16 35 38 / 76%);--color-header-border: rgb(54 82 86 / 80%);--color-page-glow: rgb(37 149 153 / 17%);--shadow-nav: 0 -8px 30px rgb(0 0 0 / 42%);--shadow-selected: 0 8px 26px rgb(0 0 0 / 32%);--shadow-switch-thumb: 0 1px 5px rgb(0 0 0 / 48%);--color-signal-ring: rgb(80 205 145 / 48%);--shadow-sm: 0 1px 2px rgb(0 0 0 / 34%), 0 4px 12px rgb(0 0 0 / 20%);--shadow-lg: 0 18px 50px rgb(0 0 0 / 48%);--focus-ring: 0 0 0 3px rgb(103 207 209 / 38%)}*,*:before,*:after{box-sizing:border-box}html{min-width:20rem;min-height:100%;background:var(--color-canvas);font-family:var(--font-sans);line-height:1.5;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}html[data-theme=dark]{color-scheme:dark}body{min-width:20rem;min-height:100dvh;margin:0;background:var(--color-canvas);color:var(--color-ink)}body:has(dialog[open]){overflow:hidden}button,input,select,textarea{color:inherit;font:inherit}input,select,textarea{caret-color:var(--color-brand-700)}::selection{background:var(--color-brand-200);color:var(--color-ink)}button,[role=button],input:not([type=checkbox],[type=radio]),select{min-height:var(--touch-target)}button,[role=button]{touch-action:manipulation}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.55}a{color:var(--color-brand-800);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--color-brand-950)}:focus-visible{outline:2px solid var(--color-brand-800);outline-offset:3px}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{line-height:1.2}#root{min-height:100dvh}.app-shell{min-height:100dvh;padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) max(calc(var(--space-12) + var(--touch-target)),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.page{width:min(100%,var(--content-width));margin-inline:auto}.reading-width{width:min(100%,var(--reading-width));margin-inline:auto}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.surface{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.muted{color:var(--color-ink-soft)}.skip-link{position:fixed;z-index:1000;top:var(--space-3);left:var(--space-3);padding:var(--space-3) var(--space-4);transform:translateY(-200%);border-radius:var(--radius-sm);background:var(--color-inverse-surface);color:var(--color-on-inverse)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.primary-button,.secondary-button,.danger-button,.icon-button{display:inline-flex;min-width:var(--touch-target);min-height:var(--touch-target);align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:700;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.primary-button{background:var(--color-action);color:var(--color-on-action)}.primary-button:hover:not(:disabled){background:var(--color-action-hover)}.secondary-button,.icon-button{border-color:var(--color-border);background:var(--color-surface);color:var(--color-brand-900)}.secondary-button:hover:not(:disabled),.icon-button:hover:not(:disabled){border-color:var(--color-brand-500);background:var(--color-brand-50)}.danger-button{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.icon-button{padding:var(--space-2)}.field{display:grid;gap:var(--space-2)}.field>label,.field-label{font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:.7rem .8rem}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--color-brand-500)}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--color-danger)}.field-error{margin:0;color:var(--color-danger);font-size:var(--text-sm)}.status-message{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.status-message[data-tone=danger]{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.status-message[data-tone=warning]{border-color:var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning)}.status-message[data-tone=success]{border-color:var(--color-success-border);background:var(--color-success-soft);color:var(--color-success)}dialog{width:min(calc(100% - 2 * var(--space-4)),34rem);max-height:min(90dvh,48rem);margin:auto;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-lg)}dialog::backdrop{background:var(--color-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{display:grid;gap:var(--space-5);padding:var(--space-5)}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.modal__header h2{margin:0;font-size:var(--text-xl)}.modal__actions{display:flex;flex-direction:column-reverse;gap:var(--space-3)}@media(min-width:40rem){.app-shell{padding-inline:max(var(--space-6),env(safe-area-inset-left))}.modal{padding:var(--space-6)}.modal__actions{flex-direction:row;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(forced-colors:active){.surface,.primary-button,.secondary-button,.danger-button,.icon-button{border:1px solid ButtonText}}.app-page{min-height:100dvh;background:radial-gradient(circle at 10% -10%,var(--color-page-glow),transparent 20rem),var(--color-canvas)}.app-page.with-bottom-nav{padding-bottom:calc(5.25rem + env(safe-area-inset-bottom))}html:has(.pwa-status-banner,.toast){scroll-padding-bottom:calc(12rem + env(safe-area-inset-bottom))}body:has(.pwa-status-banner,.toast) .app-page.with-bottom-nav{padding-bottom:calc(12rem + env(safe-area-inset-bottom))}.top-bar{position:sticky;z-index:20;top:0;display:flex;min-height:4.75rem;align-items:center;justify-content:space-between;gap:var(--space-3);padding:max(var(--space-3),env(safe-area-inset-top)) max(var(--space-4),env(safe-area-inset-right)) var(--space-3) max(var(--space-4),env(safe-area-inset-left));border-bottom:1px solid var(--color-header-border);background:var(--color-header-translucent);-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%)}.top-bar>h1,.top-bar h1{margin:0;color:var(--color-brand-950);font-size:var(--text-xl)}.brand-lockup{display:flex;min-width:0;align-items:center;gap:var(--space-3)}.brand-lockup img{flex:0 0 auto;object-fit:contain}.brand-lockup>div{min-width:0}.brand-lockup p,.brand-lockup h1{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.brand-lockup p{color:var(--color-ink-soft);font-size:var(--text-sm)}.brand-lockup.compact{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-brand-50)}.brand-lockup.compact strong{color:var(--color-brand-950);font-size:var(--text-lg)}.brand-lockup.compact p{overflow:visible;white-space:normal}.top-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-2)}.top-actions svg,.primary-button svg,.secondary-button svg,.icon-button svg{width:1.2rem;height:1.2rem}.full-width{width:100%}.bottom-nav{position:fixed;z-index:30;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-2) max(var(--space-4),env(safe-area-inset-right)) max(var(--space-2),env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left));border-top:1px solid var(--color-border);background:var(--color-nav-translucent);box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}.bottom-nav a{display:flex;min-height:3.5rem;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:700;text-decoration:none}.bottom-nav a.active{background:var(--color-brand-100);color:var(--color-brand-900)}.bottom-nav svg{width:1.35rem;height:1.35rem}.protocols-layout{display:grid;width:min(100%,var(--content-width));margin:0 auto;padding:var(--space-4);gap:var(--space-5)}.protocol-list{display:grid;align-content:start;gap:var(--space-3)}.compact-button{min-height:var(--touch-target);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.empty-state-actions,.folder-header-actions,.protocol-section-heading,.protocol-organize-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.empty-state-actions{justify-content:center}.protocol-section-heading{justify-content:space-between}.protocol-section-heading>div{min-width:0}.protocol-section-heading h2,.protocol-section-heading p{margin:0}.protocol-section-heading h2{color:var(--color-brand-950);font-size:var(--text-lg)}.protocol-section-heading p{margin-top:var(--space-1);color:var(--color-ink-soft);font-size:var(--text-sm)}.folders-section{display:grid;gap:var(--space-3);padding-block:var(--space-1) var(--space-2)}.folder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.folder-card{display:grid;min-width:0;min-height:4.75rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-ink);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast)}.folder-card:hover{border-color:var(--color-brand-500);background:var(--color-brand-50)}.folder-card:active{transform:scale(.992)}.folder-card>svg{width:1.1rem;color:var(--color-ink-soft)}.folder-card-icon,.folder-header-icon{display:grid;flex:0 0 auto;place-items:center;border-radius:var(--radius-sm);background:var(--color-brand-100);color:var(--color-brand-800)}.folder-card-icon{width:2.75rem;height:2.75rem}.folder-card-icon svg,.folder-header-icon svg{width:1.35rem;height:1.35rem}.folder-card-copy{display:grid;min-width:0}.folder-card-copy strong,.folder-card-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-card-copy strong{color:var(--color-brand-950)}.folder-card-copy small{color:var(--color-ink-soft);font-size:var(--text-sm)}.unfiled-heading{margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-divider)}.unfiled-empty-copy{margin:0;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-ink-soft);text-align:center}.folder-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.folder-header-copy{display:flex;min-width:0;align-items:center;gap:var(--space-3)}.folder-header-icon{width:3rem;height:3rem}.folder-header-copy>div{min-width:0}.folder-header-copy h2,.folder-header-copy p{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.folder-header-copy h2{color:var(--color-brand-950);font-size:var(--text-xl)}.folder-header-copy p{margin-top:var(--space-1);color:var(--color-ink-soft);font-size:var(--text-sm)}.folder-back-button{align-self:center}.folder-header-actions{grid-column:1 / -1;justify-content:flex-end}.protocol-organize-toolbar{position:sticky;z-index:8;top:5.25rem;justify-content:space-between;padding:var(--space-3);border:1px solid var(--color-brand-300);border-radius:var(--radius-md);background:var(--color-header-translucent);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.protocol-organize-toolbar>span{flex:1;color:var(--color-ink-soft);font-size:var(--text-sm);text-align:center}.protocol-card.organizing{grid-template-columns:var(--touch-target) minmax(0,1fr)}.protocol-card.organizing:has(.protocol-organize-check input:checked){border-color:var(--color-brand-500);background:linear-gradient(135deg,var(--color-surface),var(--color-brand-50));box-shadow:inset 4px 0 var(--color-brand-600),var(--shadow-sm)}.protocol-organize-check{display:grid;width:var(--touch-target);min-height:var(--touch-target);place-items:center;cursor:pointer}.protocol-organize-check input{width:1.25rem;height:1.25rem;margin:0;accent-color:var(--color-action)}.protocol-card-menu{position:relative;align-self:center;justify-self:end}.protocol-card-menu-popover{position:absolute;z-index:15;top:calc(100% + var(--space-1));right:0;display:grid;min-width:12rem;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-1);background:var(--color-surface);box-shadow:var(--shadow-lg)}.protocol-card-menu-popover button{display:flex;min-height:var(--touch-target);align-items:center;gap:var(--space-2);border:0;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:transparent;color:var(--color-ink);cursor:pointer;text-align:left}.protocol-card-menu-popover button:hover,.protocol-card-menu-popover button:focus-visible{background:var(--color-brand-50)}.protocol-card-menu-popover button.danger-menu-item{color:var(--color-danger)}.protocol-card-menu-popover svg{width:1.1rem;height:1.1rem}.protocol-folder-badge{display:inline-flex;width:fit-content;max-width:100%;align-items:center;gap:var(--space-1);overflow:hidden;border-radius:var(--radius-pill);padding:.15rem var(--space-2);background:var(--color-brand-100);color:var(--color-brand-900);font-size:var(--text-xs);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.protocol-folder-badge svg{width:.85rem;height:.85rem;flex:0 0 auto}.folder-empty-state{display:grid;min-height:14rem;place-items:center;align-content:center;gap:var(--space-2);padding:var(--space-5);border:1px dashed var(--color-brand-300);border-radius:var(--radius-lg);background:var(--color-empty-translucent);text-align:center}.folder-empty-state>svg{width:2.5rem;height:2.5rem;color:var(--color-brand-700)}.folder-empty-state h2,.folder-empty-state p{margin:0}.folder-empty-state p{color:var(--color-ink-soft)}.folder-name-dialog,.move-protocols-dialog{width:min(calc(100% - 2 * var(--space-4)),32rem)}.folder-move-dialog-body{display:grid;gap:var(--space-3)}.folder-move-list{display:grid;max-height:min(50dvh,24rem);gap:var(--space-2);overflow-y:auto;overscroll-behavior:contain}.folder-move-option{display:grid;min-height:var(--touch-target);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-ink);cursor:pointer;text-align:left}.folder-move-option:hover:not(:disabled){border-color:var(--color-brand-500);background:var(--color-brand-50)}.folder-move-option[aria-current=location]{border-color:var(--color-brand-300);background:var(--color-brand-50);color:var(--color-brand-900);opacity:1}.folder-move-option svg{width:1.15rem;height:1.15rem}.protocol-search-area{display:grid;gap:var(--space-2)}.protocol-search-field{display:grid;min-height:var(--touch-target);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.protocol-search-field:focus-within{border-color:var(--color-brand-600);box-shadow:var(--focus-ring)}.protocol-search-field>svg{width:1.2rem;height:1.2rem;margin-left:var(--space-4);color:var(--color-brand-700)}.protocol-search-field input{width:100%;min-width:0;min-height:var(--touch-target);border:0;outline:2px solid transparent;padding:var(--space-3);background:transparent;color:var(--color-ink);font:inherit}.protocol-search-field input::placeholder{color:var(--color-ink-soft)}.protocol-search-field input::-webkit-search-cancel-button{display:none}.protocol-search-clear{display:grid;width:var(--touch-target);min-height:var(--touch-target);place-items:center;border:0;background:transparent;color:var(--color-ink-soft);cursor:pointer}.protocol-search-clear:hover{color:var(--color-brand-800)}.protocol-search-clear svg{width:1.1rem;height:1.1rem}.protocol-search-count{margin:0;color:var(--color-ink-soft);font-size:var(--text-sm)}.search-empty-state{display:grid;min-height:18rem;place-items:center;align-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);border:1px dashed var(--color-brand-300);border-radius:var(--radius-lg);background:var(--color-empty-translucent);text-align:center}.search-empty-state>svg{width:2.5rem;height:2.5rem;color:var(--color-brand-700)}.search-empty-state h2,.search-empty-state p{margin:0}.search-empty-state p{max-width:28rem;color:var(--color-ink-soft);overflow-wrap:anywhere}@media(forced-colors:active){.protocol-search-field:focus-within{outline:2px solid CanvasText;outline-offset:2px}}.protocol-card{display:grid;min-height:6.25rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.protocol-delete-button{align-self:center;justify-self:end}.protocol-card:has(.protocol-select-button:hover),.protocol-card.selected{border-color:var(--color-brand-500);box-shadow:var(--shadow-selected)}.protocol-card:has(.protocol-select-button:active){transform:scale(.992)}.protocol-card.selected{background:linear-gradient(135deg,var(--color-surface),var(--color-brand-50));box-shadow:inset 4px 0 var(--color-brand-600),var(--shadow-sm)}.protocol-card.expired{border-color:var(--color-danger-border)}.protocol-card.expired .protocol-card-icon{background:var(--color-danger-soft);color:var(--color-danger)}.protocol-card-icon{display:grid;width:2.75rem;height:2.75rem;place-items:center;border-radius:50%;background:var(--color-brand-100);color:var(--color-brand-800)}.protocol-card-icon svg{width:1.3rem}.protocol-card-copy{display:grid;min-width:0;gap:.2rem}.protocol-select-button{display:grid;min-width:0;min-height:4rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3);border:0;padding:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.protocol-card-copy>strong,.protocol-card-copy>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.protocol-card-copy>strong{color:var(--color-brand-950);font-size:var(--text-lg)}.protocol-card-copy>small,.metadata-line{color:var(--color-ink-soft);font-size:var(--text-sm)}.metadata-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.metadata-line svg{width:.95rem;height:.95rem}.protocol-expiry{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-brand-800);font-size:var(--text-xs);font-weight:750}.protocol-expiry.expired{color:var(--color-danger)}.protocol-expiry svg{width:.95rem;height:.95rem;flex:0 0 auto}.danger-ghost{border-color:transparent;background:transparent;color:var(--color-ink-soft)}.danger-ghost:hover:not(:disabled){border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.empty-state{display:grid;min-height:min(65dvh,31rem);place-items:center;align-content:center;padding:var(--space-8) var(--space-5);border:1px dashed var(--color-brand-300);border-radius:var(--radius-lg);background:var(--color-empty-translucent);text-align:center}.empty-state h2{margin:var(--space-4) 0 var(--space-2)}.empty-state p{max-width:28rem;color:var(--color-ink-soft)}.empty-icon{display:grid;width:5rem;height:5rem;place-items:center;border-radius:50%;background:var(--color-brand-100);color:var(--color-brand-800)}.empty-icon svg{width:2.25rem;height:2.25rem}.protocol-detail{align-self:start;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.protocol-detail h2{margin:var(--space-2) 0 0;color:var(--color-brand-950);font-size:var(--text-2xl)}.eyebrow{color:var(--color-brand-800);font-size:var(--text-xs);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.protocol-author{margin:var(--space-1) 0 var(--space-5);color:var(--color-ink-soft)}.protocol-note{padding:var(--space-4);border-left:3px solid var(--color-brand-500);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-brand-50);white-space:pre-wrap}.recipient-note{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-brand-200);border-radius:var(--radius-md);background:var(--color-brand-50);color:var(--color-brand-950)}.recipient-note strong{display:block;margin-bottom:var(--space-2);color:var(--color-brand-800);font-size:var(--text-sm)}.recipient-note p{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.protocol-expiry-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-4) 0 0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-brand-50);color:var(--color-brand-900);font-size:var(--text-sm);font-weight:700}.protocol-expiry-notice.expired{background:var(--color-danger-soft);color:var(--color-danger)}.protocol-expiry-notice svg{width:1.1rem;flex:0 0 auto}.detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:var(--space-5) 0;gap:var(--space-2)}.detail-stats div{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-subtle-surface)}.detail-stats dt{color:var(--color-ink-soft);font-size:var(--text-xs)}.detail-stats dd{margin:var(--space-1) 0 0;color:var(--color-brand-950);font-weight:800}.run-button{width:100%;min-height:3.5rem;font-size:var(--text-lg)}.app-dialog{max-height:min(92dvh,52rem);padding:0}.dialog-surface{display:grid;overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3)}.dialog-header h2{margin:0;color:var(--color-brand-950);font-size:var(--text-xl)}.dialog-body{padding:var(--space-3) var(--space-5) var(--space-5)}.stack-form,.settings-form{display:grid;gap:var(--space-4)}.supporting-copy,.field-hint{margin:0;color:var(--color-ink-soft);font-size:var(--text-sm)}.field-label{display:grid;gap:var(--space-2);font-size:var(--text-sm);font-weight:700}.field-label>input,.input-with-icon,.number-unit{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.field-label>input{width:100%;padding:.65rem .8rem}.input-with-icon{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;padding-left:var(--space-3)}.input-with-icon:focus-within,.field-label>input:focus,.number-unit:focus-within{border-color:var(--color-brand-600);box-shadow:var(--focus-ring)}.input-with-icon svg{width:1.15rem;color:var(--color-brand-700)}.input-with-icon input{width:100%;min-width:0;border:0;outline:0;padding:.65rem .8rem;background:transparent}.read-only-field{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-brand-50);color:var(--color-brand-900)}.read-only-field svg{width:1.15rem}.read-only-field span{display:grid;min-width:0}.read-only-field strong{overflow:hidden;text-overflow:ellipsis}.form-error,.inline-warning{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm)}.form-error{background:var(--color-danger-soft);color:var(--color-danger)}.inline-warning{background:var(--color-warning-soft);color:var(--color-warning)}.form-error svg,.inline-warning svg{width:1.1rem;flex:0 0 auto}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.spin{animation:spin .9s linear infinite}.settings-dialog{width:min(calc(100% - 2 * var(--space-4)),40rem)}.account-gate{min-height:100dvh;display:grid;place-items:center;padding:max(1.25rem,env(safe-area-inset-top)) 1rem max(1.25rem,env(safe-area-inset-bottom));background:radial-gradient(circle at top right,color-mix(in srgb,var(--color-brand-500) 18%,transparent),transparent 34rem),var(--color-canvas)}.account-gate-card{width:min(100%,31rem);border:1px solid var(--color-border);border-radius:1.5rem;padding:clamp(1.25rem,4vw,2rem);background:var(--color-surface);box-shadow:var(--shadow-lg)}.account-gate-brand{display:flex;align-items:center;gap:1rem}.account-gate-brand img{flex:0 0 auto}.account-gate-brand span{color:var(--color-brand-950);font-weight:800}.account-gate-brand h1{margin:.15rem 0 0;font-size:clamp(1.45rem,6vw,2rem)}.account-gate-description{margin:1.25rem 0;color:var(--color-ink-soft)}.account-gate-form{display:grid;gap:1rem}.account-gate-form>p{margin:0}.account-gate-form .field-label>span{display:flex;align-items:center;gap:.45rem}.account-gate-form .field-label svg,.account-change-email svg,.account-gate-notes a svg{width:1.1rem;height:1.1rem}.account-change-email{justify-self:start}.account-submit{width:100%;min-height:3.25rem}.account-gate-notes{display:grid;gap:.6rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border);color:var(--color-ink-soft);font-size:.875rem}.account-gate-notes p{margin:0}.account-gate-notes a{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-brand-800);font-weight:700}.account-summary{display:grid;gap:.9rem}.account-email{overflow-wrap:anywhere;font-weight:750}.account-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0}.account-details div{display:grid;gap:.2rem;min-width:0;padding:.75rem;border-radius:.8rem;background:var(--color-subtle-surface)}.account-details dt{color:var(--color-ink-soft);font-size:.78rem}.account-details dd{margin:0;overflow-wrap:anywhere;font-weight:700}.account-actions{display:grid;gap:.65rem}.account-actions a,.account-actions button{width:100%}@media(max-width:420px){.account-details{grid-template-columns:1fr}}.settings-section{display:grid;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.settings-section:last-of-type{border-bottom:0}.settings-section h3{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--color-brand-950);font-size:var(--text-base)}.settings-section h3 svg{width:1.15rem;color:var(--color-brand-700)}.segmented-control,.device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.segmented-control label,.device-card{position:relative;cursor:pointer}.segmented-control input,.device-card input{position:absolute;opacity:0;pointer-events:none}.segmented-control span,.device-card{display:flex;min-height:var(--touch-target);align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink-soft);font-weight:700}.segmented-control input:checked+span,.device-card:has(input:checked){border-color:var(--color-brand-600);background:var(--color-brand-100);color:var(--color-brand-950);box-shadow:inset 0 0 0 1px var(--color-brand-600)}.device-card{flex-direction:column;padding:var(--space-4);text-align:center}.device-card svg{width:1.4rem}.switch-row{display:flex;min-height:var(--touch-target);align-items:center;justify-content:space-between;gap:var(--space-4);cursor:pointer}.switch-row>span{display:grid}.switch-row small{color:var(--color-ink-soft)}.switch-row input[role=switch]{width:3rem;height:1.75rem;flex:0 0 auto;appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-switch-track);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.switch-row input[role=switch]:before{display:block;width:1.25rem;height:1.25rem;margin:.125rem;border-radius:50%;background:var(--color-switch-thumb);box-shadow:var(--shadow-switch-thumb);content:"";transition:transform var(--transition-fast)}.switch-row input[role=switch]:checked{border-color:var(--color-action);background:var(--color-action)}.switch-row input[role=switch]:checked:before{transform:translate(1.2rem)}.pulse-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.pulse-grid[aria-disabled=true]{opacity:.55}.number-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden}.number-unit input{width:100%;min-width:0;border:0;outline:0;padding:.55rem .25rem .55rem .65rem}.number-unit span{padding-right:var(--space-2);color:var(--color-ink-soft)}.checkbox-row{display:flex;min-height:var(--touch-target);align-items:center;gap:var(--space-3);cursor:pointer}.checkbox-row input{width:1.25rem;height:1.25rem;accent-color:var(--color-brand-700)}.playlists-layout{display:grid;width:min(100%,var(--content-width));margin:0 auto;padding:var(--space-4);gap:var(--space-5)}.playlist-list{display:grid;align-content:start;gap:var(--space-3)}.playlist-card{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.playlist-card:has(.playlist-select-button:hover),.playlist-card.selected{border-color:var(--color-brand-500);box-shadow:var(--shadow-selected)}.playlist-card.selected{background:linear-gradient(135deg,var(--color-surface),var(--color-brand-50));box-shadow:inset 4px 0 var(--color-brand-600),var(--shadow-sm)}.playlist-select-button{display:grid;width:100%;min-height:5.5rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3);border:0;padding:var(--space-4);background:transparent;color:inherit;cursor:pointer;text-align:left}.playlist-card-icon{display:grid;width:2.75rem;height:2.75rem;place-items:center;border-radius:50%;background:var(--color-brand-100);color:var(--color-brand-800)}.playlist-card-icon svg{width:1.3rem}.playlist-card-copy{display:grid;min-width:0;gap:var(--space-2)}.playlist-card-copy>strong{overflow:hidden;color:var(--color-brand-950);font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap}.playlist-detail{display:grid;align-self:start;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.playlist-back-link{display:inline-flex;width:fit-content;min-height:var(--touch-target);align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);padding:var(--space-2);color:var(--color-brand-800);font-weight:750;text-decoration:none}.playlist-back-link svg{width:1.15rem}.playlist-detail-heading,.playlist-detail-actions,.playlist-summary,.playlist-entry-actions{display:flex;align-items:center}.playlist-detail-heading,.playlist-summary{justify-content:space-between;gap:var(--space-3)}.playlist-detail-heading h2{margin:var(--space-1) 0 0;color:var(--color-brand-950);font-size:var(--text-2xl);overflow-wrap:anywhere}.playlist-detail-actions,.playlist-entry-actions{flex:0 0 auto;gap:var(--space-1)}.playlist-summary{flex-wrap:wrap;border-radius:var(--radius-sm);padding:var(--space-3);background:var(--color-brand-50);color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:750}.playlist-add-button{width:100%}.playlist-empty-state{display:grid;min-height:12rem;place-items:center;align-content:center;gap:var(--space-2);padding:var(--space-5);border:1px dashed var(--color-brand-300);border-radius:var(--radius-md);background:var(--color-brand-50);text-align:center}.playlist-empty-state>svg{width:2rem;height:2rem;color:var(--color-brand-700)}.playlist-empty-state h3,.playlist-empty-state p{margin:0}.playlist-empty-state p{color:var(--color-ink-soft)}.playlist-entry-list{display:grid;margin:0;padding:0;gap:var(--space-2);list-style:none}.playlist-entry{display:grid;min-height:4.75rem;grid-template-columns:1.75rem var(--touch-target) minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:opacity var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.playlist-entry.unavailable{border-color:var(--color-warning-border);background:var(--color-warning-soft)}.playlist-entry.dragging{z-index:10;opacity:.8;box-shadow:var(--shadow-lg)}.playlist-entry-index{color:var(--color-ink-soft);font-variant-numeric:tabular-nums;font-weight:800;text-align:center}.playlist-drag-handle{display:grid;min-width:var(--touch-target);min-height:var(--touch-target);place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-soft);cursor:grab;touch-action:none}.playlist-drag-handle:active{cursor:grabbing}.playlist-drag-handle svg{width:1.25rem}.playlist-entry-copy{display:grid;min-width:0;gap:.15rem}.playlist-entry-copy strong,.playlist-entry-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-entry-copy strong{color:var(--color-brand-950)}.playlist-entry-copy small{color:var(--color-ink-soft)}.playlist-entry-policy{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-warning);font-size:var(--text-xs);font-weight:800}.playlist-entry-policy svg{width:.95rem;height:.95rem}.playlist-blocked-notice{display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--text-sm)}.playlist-name-dialog,.add-protocols-dialog{width:min(calc(100% - 2 * var(--space-4)),38rem)}.playlist-picker{display:grid;min-height:0;gap:var(--space-4)}.playlist-picker-list{display:grid;max-height:min(48dvh,26rem);overflow-y:auto;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0}.playlist-picker-row{display:grid;min-height:4rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--color-border);cursor:pointer}.playlist-picker-row:last-child{border-bottom:0}.playlist-picker-row:has(input:checked){background:var(--color-brand-50)}.playlist-picker-row.expired{background:var(--color-warning-soft)}.playlist-picker-row input{width:1.25rem;height:1.25rem;accent-color:var(--color-brand-700)}.playlist-picker-row>span:nth-of-type(1){display:grid;min-width:0;gap:var(--space-1)}.playlist-picker-row strong,.playlist-picker-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-picker-row small,.playlist-selected-count,.playlist-picker-empty{color:var(--color-ink-soft);font-size:var(--text-sm)}.playlist-selected-count,.playlist-picker-empty{margin:0}.player-top-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.player-top-bar>div{min-width:0;text-align:center}.player-top-bar h1{overflow:hidden;margin-top:.15rem;text-overflow:ellipsis;white-space:nowrap}.player-content{display:grid;width:min(100%,60rem);margin-inline:auto;gap:var(--space-5);padding:var(--space-4)}.playback-panel{display:grid;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-brand-200);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--color-surface),var(--color-brand-50));box-shadow:var(--shadow-sm)}.playback-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.queue-current-protocol{display:grid;gap:.15rem;text-align:center}.queue-current-protocol span,.queue-progress span:first-child{color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:700}.queue-current-protocol strong{overflow:hidden;color:var(--color-brand-950);font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap}.queue-progress{display:grid;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-brand-200)}.queue-progress>div{display:flex;justify-content:space-between;gap:var(--space-3);font-variant-numeric:tabular-nums}.queue-progress>div span:last-child{color:var(--color-brand-950);font-size:var(--text-sm);font-weight:800}.queue-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.queue-navigation button{width:100%}.status-pill,.device-pill{display:inline-flex;min-height:2rem;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:var(--color-surface);color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:700}.status-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--color-neutral-dot)}.status-pill.playing{color:var(--color-success)}.status-pill.playing .status-dot{background:var(--color-success-dot);box-shadow:0 0 0 0 var(--color-signal-ring);animation:signal-pulse 1.8s ease-out infinite}.status-pill.paused .status-dot,.status-pill.interrupted .status-dot{background:var(--color-warning-dot)}.status-pill.error .status-dot{background:var(--color-danger)}.status-pill.expired{color:var(--color-danger)}.status-pill.expired .status-dot{background:var(--color-danger)}.device-pill svg{width:1rem;color:var(--color-brand-700)}.time-display{display:flex;align-items:baseline;justify-content:center;gap:var(--space-2);font-variant-numeric:tabular-nums}.time-display strong{color:var(--color-brand-950);font-size:clamp(2rem,10vw,3.5rem);letter-spacing:-.04em}.time-display span{color:var(--color-ink-soft);font-size:var(--text-lg)}.playback-panel progress{width:100%;height:.65rem;overflow:hidden;appearance:none;border:0;border-radius:var(--radius-pill);background:var(--color-brand-100)}.playback-panel progress::-webkit-progress-bar{border-radius:var(--radius-pill);background:var(--color-brand-100)}.playback-panel progress::-webkit-progress-value,.playback-panel progress::-moz-progress-bar{border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-brand-600),var(--color-brand-800))}.boost-indicator{justify-self:center;margin:-.35rem 0 0;border-radius:var(--radius-pill);padding:.2rem var(--space-3);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--text-xs);font-weight:800}.playback-button{width:min(100%,24rem);min-height:4rem;justify-self:center;border-radius:var(--radius-lg);font-size:var(--text-xl)}.frequency-list{display:grid;gap:var(--space-5);scroll-margin-block:8rem}.pair-section{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.pair-section>header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-brand-50);color:var(--color-brand-950);font-weight:800}.pair-section>header small{color:var(--color-ink-soft);font-weight:600}.pair-section ol{margin:0;padding:0;list-style:none}.pair-section li{display:grid;min-height:4rem;grid-template-columns:2rem minmax(0,1fr) 2rem auto;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider);scroll-margin-block:8rem;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.pair-section li:first-child{border-top:0}.pair-section li.active-segment{background:linear-gradient(90deg,var(--color-brand-100),var(--color-active-segment-end));box-shadow:inset 4px 0 var(--color-brand-700)}.segment-index{color:var(--color-ink-soft);font-variant-numeric:tabular-nums;font-weight:700}.frequency-sequence{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;color:var(--color-brand-950);font-size:clamp(1rem,4.7vw,1.35rem);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.4}.hidden-frequency-segment{grid-column:1 / 3;color:var(--color-brand-950);font-size:clamp(1rem,4.7vw,1.35rem);font-weight:800;line-height:1.4}.frequency-sequence>span{border-radius:.3rem;transition:background var(--transition-fast),color var(--transition-fast)}.frequency-sequence>.active-frequency{background:var(--color-action);color:var(--color-on-action);box-shadow:0 0 0 .2rem var(--color-action)}.segment-polarity{color:var(--color-brand-800);font-size:var(--text-xl);font-weight:900;text-align:center}.segment-duration{color:var(--color-ink-soft);font-variant-numeric:tabular-nums;font-weight:700}.about-content{display:grid;width:min(100% - 2 * var(--space-4),var(--reading-width));margin-inline:auto;padding-block:var(--space-6) var(--space-10);gap:var(--space-4)}.about-hero{display:grid;justify-items:center;padding:var(--space-6) var(--space-4);text-align:center}.about-hero img{width:min(42vw,11rem);margin-bottom:var(--space-4)}.about-hero h2{margin:var(--space-2) 0;color:var(--color-brand-950);font-size:clamp(2rem,9vw,3.25rem);letter-spacing:-.04em}.about-hero p{max-width:36rem;color:var(--color-ink-soft);font-size:var(--text-lg)}.about-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.about-card>svg{width:1.5rem;color:var(--color-brand-700)}.about-card h3{margin-bottom:var(--space-2)}.about-card p{margin:0;color:var(--color-ink-soft)}.warning-card{border-color:var(--color-warning-border);background:var(--color-warning-soft)}.warning-card>svg{color:var(--color-warning)}.warning-card h3{color:var(--color-warning)}.warning-card ul{margin:var(--space-3) 0;padding-left:var(--space-6)}.warning-card li+li{margin-top:var(--space-2)}.manufacturer-links{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.manufacturer-links a{display:inline-flex;min-height:var(--touch-target);align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--color-brand-50);font-weight:700}.manufacturer-links svg{width:1rem}.version-label{color:var(--color-ink-soft);font-size:var(--text-sm);text-align:center}.splash-screen,.fatal-screen{display:grid;min-height:100dvh;place-items:center;align-content:center;gap:var(--space-3);padding:var(--space-6);background:radial-gradient(circle,var(--color-brand-100),var(--color-canvas) 55%);text-align:center}.splash-screen h1,.fatal-screen h1{margin:0;color:var(--color-brand-950)}.loading-line{width:8rem;height:.3rem;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-brand-200)}.loading-line:after{display:block;width:45%;height:100%;border-radius:inherit;background:var(--color-action);content:"";animation:loading 1.1s ease-in-out infinite alternate}.fatal-screen>svg{width:3rem;height:3rem;color:var(--color-danger)}.toast,.update-banner,.pwa-status-banner{position:fixed;z-index:80;right:var(--space-4);bottom:calc(5.75rem + env(safe-area-inset-bottom));left:var(--space-4);display:flex;width:min(calc(100% - 2 * var(--space-4)),32rem);min-height:var(--touch-target);align-items:center;justify-content:space-between;gap:var(--space-3);margin-left:auto;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-inverse-surface);color:var(--color-on-inverse);box-shadow:var(--shadow-lg)}.toast.success{background:var(--color-success-solid);color:var(--color-on-solid)}.toast.error{background:var(--color-danger-solid);color:var(--color-on-solid)}.toast button,.update-banner button,.pwa-status-banner button{min-height:var(--touch-target);border:0;background:transparent;color:inherit;cursor:pointer;font-weight:800}.toast button{min-width:var(--touch-target);padding:var(--space-2)}.toast svg,.update-banner svg,.pwa-status-banner>svg,.pwa-status-banner .icon-button svg{width:1rem}.update-banner{bottom:var(--space-4);background:var(--color-inverse-surface)}.pwa-status-banner{border-color:transparent;background:var(--color-inverse-surface)}.pwa-status-banner.preparing,.pwa-status-banner.ready{background:var(--color-info-solid);color:var(--color-on-solid)}.pwa-status-banner.error{background:var(--color-danger-solid);color:var(--color-on-solid)}.pwa-status-banner>svg{flex:0 0 auto;width:1.25rem;height:1.25rem}.pwa-status-banner>span{flex:1}.pwa-status-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-1)}.pwa-status-banner .icon-button{display:inline-grid;min-width:var(--touch-target);place-items:center;padding:var(--space-2)}.pwa-status-spinner{animation:pwa-status-pulse 1.2s ease-in-out infinite alternate}.pwa-diagnostic-card>div{min-width:0;flex:1}.pwa-diagnostics{display:grid;gap:var(--space-2);margin:var(--space-3) 0 0}.pwa-diagnostics>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-2);border-bottom:1px solid var(--color-border)}.pwa-diagnostics dt{color:var(--color-ink-soft)}.pwa-diagnostics dd{margin:0;font-weight:800;text-align:right}.pwa-diagnostics .diagnostic-value.ready{color:var(--color-success)}.pwa-diagnostics .diagnostic-value.error{color:var(--color-danger)}.about-card .pwa-first-launch-note{margin-top:var(--space-3);color:var(--color-ink-soft);font-size:var(--text-sm)}@keyframes pwa-status-pulse{0%{opacity:.45}to{opacity:1}}@media(min-width:48rem){.top-bar{padding-inline:max(var(--space-6),calc((100vw - var(--content-width)) / 2))}.protocols-layout.has-selection{grid-template-columns:minmax(20rem,1.05fr) minmax(19rem,.95fr);align-items:start;padding:var(--space-6)}.protocol-detail{position:sticky;top:6.25rem}.playlists-layout.has-selection{grid-template-columns:minmax(19rem,.9fr) minmax(25rem,1.1fr);align-items:start;padding:var(--space-6)}.playlist-detail{position:sticky;top:6.25rem}.playlist-back-link{display:none}.bottom-nav{right:var(--space-6);bottom:var(--space-5);left:50%;width:min(26rem,calc(100% - 2 * var(--space-6)));transform:translate(-50%);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2);box-shadow:var(--shadow-lg)}.app-page.with-bottom-nav{padding-bottom:7rem}.player-content{grid-template-columns:minmax(18rem,.75fr) minmax(26rem,1.25fr);align-items:start;padding:var(--space-6)}.playback-panel{position:sticky;top:6.25rem}.toast{right:var(--space-5);bottom:var(--space-5);left:auto}}@media(max-width:47.999rem){.playlists-layout.has-selection .playlist-list{display:none}}@media(max-width:35rem){.sync-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.sync-button{padding:var(--space-2)}.detail-stats,.pulse-grid,.folder-grid{grid-template-columns:1fr}.folder-header{grid-template-columns:auto minmax(0,1fr)}.folder-header-actions{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.folder-header-actions>:last-child:nth-child(odd){grid-column:1 / -1}.protocol-organize-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.protocol-organize-toolbar>span{grid-column:1 / -1;grid-row:1}.protocol-organize-toolbar button{width:100%}.dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-actions button{width:100%}.playlist-entry{grid-template-columns:1.5rem var(--touch-target) minmax(0,1fr)}.playlist-entry-actions{grid-column:2 / -1;justify-content:flex-end}.playlist-picker-row{grid-template-columns:auto minmax(0,1fr)}.playlist-picker-row>.playlist-entry-policy{grid-column:2}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes loading{0%{transform:translate(-20%)}to{transform:translate(145%)}}@keyframes signal-pulse{60%{box-shadow:0 0 0 .45rem #20a36f00}to{box-shadow:0 0 #20a36f00}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
