:root{--color-bg:#f5f5f7;--color-surface:#fff;--color-text:#1d1d1f;--color-text-secondary:#6e6e73;--color-separator:#e3e3e8;--color-border:#d2d2d7;--color-fill:#e9e9ee;--tone-blue:#1f6fd1;--tone-green:#1e8a4c;--tone-amber:#b7791f;--tone-violet:#6d4fd0;--tone-slate:#55606e;--color-error:#d70015;--color-error-tint:#fdebec;--color-error-on-tint:#9f0012;--color-success:#1e7b34;--color-success-tint:#e8f5ec;--color-success-on-tint:#155d27;--color-warning:#b54708;--color-focus:#0a5bd859;--color-primary:#0a5bd8;--color-primary-hover:#0848ad;--color-on-primary:#fff;--color-primary-tint:#e7effc;--color-primary-on-tint:#0a3f94;--color-accent:#0a5bd8;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.75rem;--touch:2.75rem;--focus-ring:0 0 0 3px var(--color-focus);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.4}*,:before,:after{box-sizing:border-box}body{min-height:100svh;font-size:var(--text-md);margin:0}h1,h2,h3,p{margin:0}h1{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:700;line-height:1.2}h2{font-size:var(--text-lg);font-weight:600}h3{font-size:var(--text-md);font-weight:600}a{color:var(--color-primary)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}main{max-width:72rem;padding:var(--space-5) var(--space-4) var(--space-6);margin:0 auto}@media (width>=40rem){main{padding:var(--space-5) var(--space-5) var(--space-6)}}@media (width>=68rem){main{padding:var(--space-6)}}.page-narrow{max-width:36rem}.split{gap:var(--space-5);align-items:start;display:grid}@media (width>=68rem){.split{grid-template-columns:minmax(0,1fr) 22rem}}.page{gap:var(--space-5);flex-direction:column;display:flex}.section{gap:var(--space-2);flex-direction:column;display:flex}.section-title{padding:0 var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:400}.muted{color:var(--color-text-secondary)}.group{background:var(--color-surface);border-radius:var(--radius-lg);margin:0;padding:0;list-style:none;overflow:hidden;container-type:inline-size}.group-row{gap:var(--space-2);min-height:var(--touch);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.group-row+.group-row{border-top:1px solid var(--color-separator)}.panel{gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-label{font-size:var(--text-sm);font-weight:600}.field-hint{font-size:var(--text-xs);color:var(--color-text-secondary)}.field-error{font-size:var(--text-xs);color:var(--color-error)}.input,.select{width:100%;min-height:var(--touch);padding:0 var(--space-3);font-size:var(--text-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}.input[aria-invalid=true]{border-color:var(--color-error)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236e6e73' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:.75rem;padding-right:2.25rem}.select:disabled{color:var(--color-text-secondary);background-color:var(--color-bg)}.switch{appearance:none;background:var(--color-fill);cursor:pointer;border-radius:999px;flex:none;width:3.1875rem;height:1.9375rem;margin:0;position:relative}.switch:before{content:"";background:#fff;border-radius:50%;width:1.6875rem;height:1.6875rem;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch:checked{background:var(--color-primary)}.switch:checked:before{left:calc(100% - 1.6875rem - 2px)}.switch:disabled{opacity:.45;cursor:default}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--color-primary);font-size:var(--text-md);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:active{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-primary-tint)}.btn-plain{padding:0 var(--space-2)}.btn-destructive{color:var(--color-error)}.btn-danger{background:var(--color-error-tint);color:var(--color-error-on-tint)}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:default}@media (hover:hover) and (pointer:fine){.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary:hover:not(:disabled),.btn-plain:hover:not(:disabled){background:var(--color-primary-tint)}.btn-danger:hover:not(:disabled){background:var(--color-error);color:var(--color-on-primary)}.sidenav a:hover:not(.active),.menu-toggle:hover,.account-toggle:hover{background:var(--color-fill)}}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.banner-info{background:var(--color-primary-tint);color:var(--color-primary-on-tint)}.banner-success{background:var(--color-success-tint);color:var(--color-success-on-tint)}.banner-error{background:var(--color-error-tint);color:var(--color-error-on-tint)}.badge{padding:.125rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-fill);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;display:inline-block}.status{font-size:var(--text-sm)}.status-checking{color:var(--color-text-secondary)}.status-ready{color:var(--color-success)}.status-unavailable{color:var(--color-error)}.app{--header-h:calc(var(--touch) + var(--space-3) + 1px);flex-direction:column;min-height:100svh;display:flex}body.nav-locked{overflow:hidden}.topbar{z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-separator);position:sticky;top:0}.topbar-inner{align-items:center;gap:var(--space-2);padding:calc(var(--space-3) / 2) var(--space-4);display:flex}.menu-toggle{width:var(--touch);height:var(--touch);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.brand{align-items:center;gap:var(--space-2);min-width:0;min-height:var(--touch);color:var(--color-text);flex:1;font-weight:700;text-decoration:none;display:flex}.brand-logo{object-fit:contain;flex:none;width:auto;max-width:3.5rem;height:2.5rem}.brand-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand-name,.brand-product{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-product{font-size:var(--text-sm);letter-spacing:-.005em}.brand-name{color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:400}.account{flex:none;position:relative}.account-toggle{align-items:center;gap:var(--space-2);min-width:var(--touch);height:var(--touch);padding:0 var(--space-2) 0 var(--space-1);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;border-radius:999px;display:inline-flex}.avatar{background:var(--color-primary-tint);width:2.25rem;height:2.25rem;color:var(--color-primary-on-tint);font-size:var(--text-xs);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-lg{width:6rem;height:6rem;font-size:var(--text-xl)}.account-chevron{color:var(--color-text-secondary);flex:none}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;display:none;overflow:hidden}.account-menu{z-index:40;align-items:stretch;gap:var(--space-2);width:max-content;max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-3);border:1px solid var(--color-separator);border-radius:var(--radius-lg);background:var(--color-surface);font-size:var(--text-sm);flex-direction:column;display:flex;position:absolute;top:100%;right:0;box-shadow:0 .5rem 1.5rem #0000001f}.account-menu-item{justify-content:flex-start;gap:var(--space-2)}.account-menu-user{overflow-wrap:anywhere;color:var(--color-text-secondary)}.app-body{flex:1;align-items:stretch;display:flex}.app-body>main{flex:1;width:100%;min-width:0}.sidenav{gap:var(--space-1);padding:var(--space-3);background:var(--color-surface);flex-direction:column;display:none}.nav-open .sidenav{display:flex}.sidenav a{align-items:center;gap:var(--space-3);min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:500;text-decoration:none;display:flex}.nav-icon{color:var(--color-text-secondary);flex:none}.sidenav-admin{gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-separator);flex-direction:column;margin-top:auto;display:flex}.sidenav-title{padding:0 var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.sidenav a.active{background:var(--color-primary-tint);box-shadow:inset 3px 0 0 var(--color-accent);color:var(--color-primary);font-weight:600}.sidenav a.active .nav-icon{color:var(--color-primary)}@media (width<=47.99rem){.sidenav{top:var(--header-h);z-index:20;border-right:1px solid var(--color-separator);width:min(17.5rem,85vw);position:fixed;bottom:0;left:0;overflow-y:auto}.nav-backdrop{inset:var(--header-h) 0 0 0;z-index:10;background:#00000059;position:fixed}}@media (width>=40rem){.topbar-inner{gap:var(--space-3);padding:calc(var(--space-3) / 2) var(--space-5)}.account-name{display:inline-block}}@media (width>=48rem){.sidenav{top:var(--header-h);height:calc(100svh - var(--header-h));border-right:1px solid var(--color-separator);flex:none;align-self:flex-start;width:13rem;position:sticky;overflow-y:auto}}@media (width>=64rem){.topbar-inner{padding:calc(var(--space-3) / 2) var(--space-6)}.sidenav{width:15rem}}.auth{gap:var(--space-5);max-width:24rem;padding-top:max(var(--space-6), 10vh);flex-direction:column;display:flex}.auth-title{text-align:center}.auth-title h1{color:var(--color-primary)}.toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.search{appearance:none;flex:100%}.segmented{border-radius:var(--radius-md);background:var(--color-fill);flex:auto;gap:2px;padding:2px;display:flex}.segmented button{min-height:var(--touch);padding:0 var(--space-3);border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:1;font-weight:500}.segmented button[aria-pressed=true]{background:var(--color-surface);font-weight:600;box-shadow:0 1px 2px #0000001f}.segmented button:focus-visible{box-shadow:var(--focus-ring)}.admin-tabs{max-width:28rem}.segmented .segment-icon{width:var(--touch);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.segmented:has(.segment-icon){flex:none;margin-left:auto}@media (width>=40rem){.search{flex:12rem}.segmented{flex:none}}.view-hint,.list-count{font-size:var(--text-sm)}.empty{padding:var(--space-5) var(--space-4);text-align:center}.exercise-item+.exercise-item{border-top:1px solid var(--color-separator)}.exercise-row{align-items:center;column-gap:var(--space-3);min-height:var(--touch);padding:var(--space-3) calc(var(--space-4) + 1.25rem) var(--space-3) var(--space-4);color:inherit;grid-template-columns:4rem minmax(0,1fr);text-decoration:none;display:grid;position:relative}.exercise-row:after{content:"›";top:50%;right:var(--space-4);color:var(--color-text-secondary);font-size:var(--text-lg);position:absolute;transform:translateY(-50%)}.exercise-preview{aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--color-fill);display:block;overflow:hidden}.exercise-preview img{object-fit:cover;width:100%;height:100%;display:block}.exercise-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.exercise-title{overflow-wrap:anywhere;font-weight:600}.exercise-text{-webkit-line-clamp:2;font-size:var(--text-sm);color:var(--color-text-secondary);overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.exercise-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.exercise-meta:empty{display:none}.exercise-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));margin:0;padding:0;list-style:none;display:grid}.exercise-card{height:100%;min-height:var(--touch);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.exercise-card .exercise-preview{aspect-ratio:16/10;border-radius:0}.exercise-card .exercise-body{gap:var(--space-2);padding:var(--space-4);flex:1}.exercise-card .exercise-meta{margin-top:auto}@media (hover:hover) and (pointer:fine){.exercise-card:hover{box-shadow:0 2px 8px #0000001f}}@container (width>=44rem){.exercise-row{column-gap:var(--space-4);grid-template-columns:4rem minmax(10rem,18rem) minmax(0,1fr) auto;display:grid}.exercise-row .exercise-body{display:contents}.exercise-text{-webkit-line-clamp:1}}@media (hover:hover) and (pointer:fine){.exercise-row:hover{background:var(--color-bg)}}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.textarea{min-height:7rem;padding:var(--space-3);resize:vertical;line-height:1.4}.textarea-auto{resize:none;max-height:min(20rem,50dvh)}.editor-bar{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.btn-reset{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.save-status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.save-status-ok{color:var(--color-success)}.save-status-problem{color:var(--color-error)}.disclosure>summary{align-items:center;gap:var(--space-2);min-height:var(--touch);cursor:pointer;flex-wrap:wrap;font-weight:600;list-style:none;display:flex}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"›";width:1rem;color:var(--color-text-secondary);transition:transform .15s;display:inline-block}.disclosure[open]>summary:before{transform:rotate(90deg)}.disclosure-body{gap:var(--space-5);padding-top:var(--space-3);flex-direction:column;display:flex}.panel .disclosure:not(.panel){border-top:1px solid var(--color-separator);padding-top:var(--space-2)}.filter{padding-block:var(--space-2)}.filter-chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.filter-chip{align-items:center;gap:var(--space-1);min-height:var(--touch);max-width:100%;padding:0 var(--space-3);background:var(--color-primary-tint);color:var(--color-primary-on-tint);font-size:var(--text-sm);overflow-wrap:anywhere;cursor:pointer;border:0;border-radius:999px;font-weight:500;display:inline-flex}.chip-group{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.chip-group legend{margin-bottom:var(--space-2);padding:0}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-1);min-height:var(--touch);max-width:100%;padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--text-sm);overflow-wrap:anywhere;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;display:inline-flex;position:relative}.chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip:focus-within{box-shadow:var(--focus-ring)}.chip-on{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.chip-inactive{border-style:dashed}.chip-note{font-size:var(--text-xs)}.chip-group[aria-invalid=true] .chip{border-color:var(--color-error)}.range{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.meta.attributes{padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);grid-template-columns:minmax(0,1fr);row-gap:0}.meta.attributes dd{margin-bottom:var(--space-3);overflow-wrap:break-word}.meta.attributes dd:last-child{margin-bottom:0}@media (width>=30rem){.meta.attributes{row-gap:var(--space-2);grid-template-columns:minmax(9rem,max-content) minmax(0,1fr)}.meta.attributes dd{margin-bottom:0}}@media (hover:hover) and (pointer:fine){.chip:not(.chip-on):hover{background:var(--color-fill)}}.variants{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.variant{padding:var(--space-3) var(--space-4) var(--space-2);border:1px solid var(--color-separator);border-radius:var(--radius-md)}.variant .chip-group{gap:var(--space-3)}.variant-actions{gap:0 var(--space-2);margin-inline:calc(var(--space-2) * -1);flex-wrap:wrap;display:flex}.variant-remove{color:var(--color-error);margin-left:auto}.variant-add{align-self:flex-start}.variant-details{margin:0;padding:0;list-style:none}.variant-details>li{gap:var(--space-1);flex-direction:column;display:flex}.variant-details>li+li{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-separator)}.variant-text{white-space:pre-line;overflow-wrap:anywhere;margin:0}.image-item{gap:var(--space-3);grid-template-columns:5.5rem minmax(0,1fr);align-items:start;display:grid}.image-thumb{aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-fill);font-size:var(--text-xs);text-align:center;justify-content:center;align-items:center;display:flex;overflow:hidden}.image-thumb img{object-fit:cover;width:100%;height:100%}.image-address{overflow-wrap:anywhere;margin:0}.image-add,.image-link{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.image-link,.image-link .field{width:100%}.uploads{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.upload{gap:var(--space-1) var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;display:flex}.upload-name{overflow-wrap:anywhere;font-weight:600}.upload progress{width:10rem;max-width:100%;display:block}.badge-external{background:var(--color-primary-tint);color:var(--color-primary)}.field-label .badge{margin-left:var(--space-2)}.gallery{gap:var(--space-3);flex-direction:column;display:flex}.figure{margin:0}.figure-link{display:block}.figure img{border-radius:var(--radius-lg);background:var(--color-fill);width:100%;display:block}.figure figcaption{gap:var(--space-1) var(--space-2);margin-top:var(--space-1);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;display:flex}.figure-caption{overflow-wrap:anywhere}.figure-missing{padding:var(--space-5) var(--space-3);border-radius:var(--radius-lg);background:var(--color-fill);text-align:center;margin:0}.media-grid .figure img{aspect-ratio:4/3;object-fit:contain}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.material-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.material-item{align-items:center;gap:var(--space-3);overflow-wrap:anywhere;min-width:0;display:flex}.material-name{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.material-usage{font-size:var(--text-xs);color:var(--color-text-secondary)}.rich-text{overflow-wrap:anywhere}.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text p{margin:0 0 var(--space-3)}.rich-text h2,.rich-text h3,.rich-text h4{margin:var(--space-5) 0 var(--space-2);line-height:1.25}.rich-text h2{font-size:var(--text-lg)}.rich-text h3{font-size:var(--text-md)}.rich-text h4{font-size:var(--text-md);color:var(--color-text-secondary);font-weight:600}.rich-text ul,.rich-text ol{margin:0 0 var(--space-3);padding-left:1.5rem}.rich-text li>p{margin:0 0 var(--space-1)}.rich-text a{color:var(--color-primary);text-decoration:underline}.rich-text span[data-color=red]{color:#b42318}.rich-text span[data-color=orange]{color:#b54708}.rich-text span[data-color=green]{color:#067647}.rich-text span[data-color=purple]{color:#6941c6}.rich-text mark,.rich-text-swatch-highlight{color:inherit;border-radius:.2em}.rich-text mark[data-color=yellow],.rich-text-swatch-highlight[data-color=yellow]{background:#fef08a}.rich-text mark[data-color=green],.rich-text-swatch-highlight[data-color=green]{background:#bbf7d0}.rich-text mark[data-color=blue],.rich-text-swatch-highlight[data-color=blue]{background:#bfdbfe}.rich-text mark[data-color=pink],.rich-text-swatch-highlight[data-color=pink]{background:#fbcfe8}.rich-text-swatch-text[data-color=red]{color:#b42318}.rich-text-swatch-text[data-color=orange]{color:#b54708}.rich-text-swatch-text[data-color=green]{color:#067647}.rich-text-swatch-text[data-color=purple]{color:#6941c6}.rich-text-view{padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg)}.rich-text-frame{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0}.rich-text-frame:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.rich-text-frame-invalid{border-color:var(--color-error)}.rich-text-frame-disabled{background:var(--color-fill)}.rich-text-toolbar{padding:var(--space-1);border-bottom:1px solid var(--color-separator);flex-wrap:wrap;align-items:center;gap:2px;display:flex}.rich-text-button{min-width:var(--touch);min-height:var(--touch);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0 .375rem}.rich-text-button[aria-pressed=true]{background:var(--color-primary-tint);color:var(--color-primary)}.rich-text-button:disabled{color:var(--color-text-secondary);opacity:.5;cursor:default}.rich-text-block{min-height:var(--touch);max-width:100%;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--text-sm);background:0 0;border:0}.rich-text-panel{gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--color-separator);background:var(--color-bg);flex-direction:column;display:flex}.rich-text-panel-actions,.rich-text-colors{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.rich-text-colors-label{width:100%;font-size:var(--text-xs);color:var(--color-text-secondary)}.rich-text-swatch{min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px}.rich-text-swatch[aria-pressed=true]{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.rich-text-input{min-height:10rem;padding:var(--space-3);outline:none}.rich-text-loading{padding:var(--space-3)}.ProseMirror{white-space:pre-wrap;word-wrap:break-word;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror [contenteditable=false]{white-space:normal}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.video-list{margin:0;padding:0;list-style:none}.video-row{padding:0}.video-own{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.video-own .video-title{overflow-wrap:anywhere;font-weight:500}.video-player{border-radius:var(--radius-sm,6px);background:#000;width:100%;max-height:70vh;display:block}.video-preview{justify-content:center;align-items:center;gap:var(--space-2);aspect-ratio:16/9;width:100%;padding:var(--space-4);border-radius:var(--radius-sm,6px);color:#fff;font:inherit;cursor:pointer;background:#111;border:0;flex-direction:column;display:flex}.video-play{background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;font-size:1.5rem;display:inline-flex}.video-preview-title{overflow-wrap:anywhere;text-align:center;max-width:100%;font-weight:500}.video-preview:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.video-preview{position:relative;overflow:hidden}.video-thumb{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.video-preview .video-play,.video-preview .video-preview-title{z-index:1;position:relative}.video-preview .video-play{background:#0009}.video-preview .video-preview-title{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm,6px);background:#0009}.video-embed{aspect-ratio:16/9;border-radius:var(--radius-sm,6px);background:#000;width:100%;position:relative;overflow:hidden}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.upload-bar{padding:var(--space-2) var(--space-4);background:var(--color-primary-tint);color:var(--color-primary);font-size:var(--text-sm);text-align:center}.video-link{gap:var(--space-1);min-height:var(--touch);padding:var(--space-3) var(--space-4);color:inherit;overflow-wrap:anywhere;flex-direction:column;text-decoration:none;display:flex}a.video-link .video-title{color:var(--color-primary);font-weight:500}.video-host{font-size:var(--text-xs);color:var(--color-text-secondary)}@media (hover:hover) and (pointer:fine){a.video-link:hover{background:var(--color-fill)}}.back-link{min-height:var(--touch);align-self:flex-start;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.detail-head{align-items:baseline;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.detail-head h1,.lead{overflow-wrap:anywhere}.detail{gap:var(--space-4);container-type:inline-size}.detail-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);display:flex}.detail-intro{gap:var(--space-2);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.detail-head h1{font-size:var(--text-xl);line-height:1.2}.detail-intro h1,.detail-intro .lead{overflow-wrap:break-word}.detail-intro .lead{color:var(--color-text-secondary);margin:0}.detail-facts{gap:var(--space-1) var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.detail-facts>span{overflow-wrap:anywhere;min-width:0}.detail .tag{white-space:normal;overflow-wrap:anywhere;border-radius:var(--radius-lg)}.detail-tags{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}@container (width<=39.99rem){.detail-top{align-items:stretch;gap:var(--space-1);padding:var(--space-2) var(--space-3) var(--space-3);flex-direction:column}.detail-top .actions{order:-1;justify-content:flex-end}.detail-intro{flex:none}.detail-head h1{font-size:1.5rem}.detail-intro .lead{font-size:var(--text-sm)}}.detail-top .actions{gap:var(--space-2);flex-wrap:nowrap;flex:none}.detail-top .actions .btn{min-height:var(--touch);flex:none}.btn-edit,.btn-icon{gap:var(--space-2)}.btn-icon{min-width:var(--touch);justify-content:center;padding-inline:0}.detail-top .actions .btn-edit:has(>.visually-hidden){min-width:var(--touch);justify-content:center;padding-inline:0}.group-row.has-row-actions{flex-direction:row;align-items:center;gap:0;padding:0}.has-row-actions>:first-child{flex:1;min-width:0}.row-actions{gap:var(--space-1);padding-right:var(--space-2);flex:none;display:flex}.row-action{color:var(--color-text-secondary)}@media (hover:hover) and (pointer:fine){.row-action:hover:not(:disabled){color:var(--color-primary)}.row-action-destructive:hover:not(:disabled){background:var(--color-error-tint);color:var(--color-error-on-tint)}}.action-menu{position:relative}.action-menu-list{top:calc(100% + var(--space-1));z-index:20;min-width:12rem;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex;position:absolute;right:0;box-shadow:0 8px 24px #00000024}.action-menu-list-start{left:0;right:auto}.action-menu-item{min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.action-menu-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--color-fill)}.action-menu-danger{color:var(--color-error)}@media (hover:hover) and (pointer:fine){.action-menu-item:hover{background:var(--color-fill)}}.icon{flex:none}.section-card{background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);flex-direction:column;min-width:0;display:flex}.section-card-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-separator);display:flex}.section-card-head h2{min-width:0;font-size:var(--text-md);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.25}.section-card-icon{color:var(--color-primary);display:inline-flex}.section-card-count{padding:0 var(--space-2);background:var(--color-fill);color:var(--color-text-secondary);font-size:var(--text-xs);border-radius:999px;font-weight:500}.section-card-body{min-width:0;padding:var(--space-4)}@media (width<=39.99rem){.detail-text .rich-text>:first-child{margin-top:0}.section-card-head{padding:var(--space-2) var(--space-3)}.section-card-body{padding:var(--space-3)}}.section-card[id]{scroll-margin-top:var(--section-scroll-offset,var(--header-h))}.section-card[id]:focus{outline:none}.section-card[id]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.section-card-head.is-toggle{padding:0}.section-card-head.is-toggle.is-collapsed{border-bottom-color:#0000}.section-card-head.is-toggle h2{flex:1;min-width:0}.section-card-toggle{align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.section-card-title{overflow-wrap:anywhere;min-width:0}.section-card-chevron{color:var(--color-text-secondary);margin-left:auto;display:inline-flex}.is-collapsed .section-card-chevron{transform:rotate(-90deg)}.section-card-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=39.99rem){.section-card-toggle{padding:var(--space-2) var(--space-3)}}@media (hover:hover) and (pointer:fine){.section-card-toggle:hover{background:var(--color-fill)}}.sticky-nav{top:var(--header-h);z-index:10;background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);flex:none;position:sticky}.sticky-nav.is-compact{margin-bottom:calc(-1 * var(--detail-title-h))}.sticky-nav-title{align-items:center;gap:var(--space-2);height:var(--detail-title-h);padding:0 var(--space-2) 0 var(--space-4);display:flex}.sticky-nav-title>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.sticky-nav-title .btn{width:var(--touch);height:var(--touch);border-radius:var(--radius-md);flex:none}.sticky-nav ul{gap:var(--space-1);height:var(--detail-nav-h);padding:0 var(--space-2);scrollbar-width:none;flex-wrap:nowrap;margin:0;list-style:none;display:flex;position:relative;overflow-x:auto}.sticky-nav.has-more ul{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.sticky-nav ul::-webkit-scrollbar{display:none}.sticky-nav li{flex:none}.sticky-nav nav a{align-items:center;gap:var(--space-2);height:100%;min-width:var(--touch);padding:0 var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;border-bottom:3px solid #0000;font-weight:500;text-decoration:none;display:inline-flex}.sticky-nav nav a[aria-current]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.sticky-nav nav a:focus-visible{outline:2px solid var(--color-primary);outline-offset:-4px;border-radius:var(--radius-sm)}.sticky-nav-count{padding:0 var(--space-2);background:var(--color-fill);font-size:var(--text-xs);border-radius:999px}.sticky-nav nav a[aria-current] .sticky-nav-count{background:var(--color-primary-tint);color:var(--color-primary-on-tint)}@media (hover:hover) and (pointer:fine){.sticky-nav nav a:hover{color:var(--color-text)}}.sticky-column{top:calc(var(--header-h) + var(--sticky-nav-h,0px) + var(--space-4));max-height:calc(100svh - var(--header-h) - var(--sticky-nav-h,0px) - 2 * var(--space-4));position:sticky;overflow-y:auto}.detail{--detail-nav-h:2.75rem;--detail-title-h:3rem;--section-scroll-offset:calc(var(--header-h) + var(--detail-title-h) + var(--detail-nav-h) + var(--space-3))}.detail-layout,.detail-main,.detail-side{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.detail-main,.detail-side{display:contents}.detail-layout .detail-overview{order:1}.detail-layout .detail-text{order:2}.detail-layout .detail-glance{order:3}.detail-layout .detail-materials{order:4}.detail-layout .detail-variants{order:5}.detail-layout .detail-images{order:6}.detail-layout .detail-videos{order:7}.detail{--diagram-max-h:min(75dvh, 21rem)}@media (orientation:portrait){.detail{--diagram-max-h:min(75dvh, 36rem)}}.overview-summary{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));margin:0;display:grid}.overview-summary dt{font-size:var(--text-xs);color:var(--color-text-secondary)}.overview-summary dd{overflow-wrap:anywhere;margin:0;font-weight:500}.glance{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.glance-row dt{margin-bottom:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.glance-row dd{overflow-wrap:anywhere;margin:0}.glance-line{gap:0 var(--space-2);flex-wrap:wrap;align-items:baseline;display:flex}.glance-line dt{margin:0}.glance-line dd{font-size:var(--text-sm);font-weight:500}.material-tiles{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(4.5rem,5.5rem));margin:0;padding:0;list-style:none;display:grid}.material-tile{justify-content:center;align-items:center;gap:var(--space-1);min-width:0;padding:var(--space-1);border:1px solid var(--color-separator);border-radius:var(--radius-md);font-size:var(--text-xs);text-align:center;overflow-wrap:anywhere;flex-direction:column;line-height:1.25;display:flex}.material-tile img{aspect-ratio:1;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-surface);width:3rem;max-width:100%}.detail-text .rich-text-view{background:0 0;max-width:48rem;padding:0;line-height:1.6}.detail-text .rich-text h2{margin-top:var(--space-4)}.media-grid,.video-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.media-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}.video-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}.video-list>.video-row{border:1px solid var(--color-separator);border-radius:var(--radius-lg);background:var(--color-surface);border-top-width:1px;min-width:0;overflow:hidden}.detail-videos .video-player{max-height:20rem}@media (width>=72rem){main:has(>.detail){max-width:90rem;padding-inline:var(--space-5);margin-inline:0}}@media (width<=39.99rem){.detail,.detail-layout{gap:var(--space-3)}}@container (width>=58rem){.detail-top{padding:var(--space-5)}.detail-layout{flex-direction:row;align-items:flex-start}.detail-main,.detail-side{display:flex}.detail-main{flex:1 1 0}.detail-side{flex:none;width:21rem}.detail-layout .section-card{order:0}}.editor{gap:var(--space-4);--detail-nav-h:2.75rem;--detail-title-h:3rem;--section-scroll-offset:calc(var(--header-h) + var(--detail-title-h) + var(--detail-nav-h) + var(--space-3));container-type:inline-size}.editor-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);display:flex}.editor-intro{gap:var(--space-2);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.editor-title{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.editor-title h1{overflow-wrap:break-word;min-width:0}.editor-top .save-status{overflow-wrap:anywhere;min-width:0}.editor-changed{font-size:var(--text-sm)}.editor-top .actions{gap:var(--space-2);flex-wrap:nowrap;flex:none}.editor-top .actions .btn{min-height:var(--touch);flex:none}@container (width<=39.99rem){.editor-top{padding:var(--space-3);flex-direction:column;align-items:stretch}.editor-top .actions{flex-wrap:wrap}.editor-top .actions .btn{white-space:nowrap;flex:auto}.editor-title h1{font-size:1.5rem}}.editor-layout,.editor-main,.editor-side{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.editor-side{display:none}.editor-fields{gap:var(--space-5);flex-direction:column;display:flex}.editor-summary .section-card-body{gap:var(--space-2);flex-direction:column;display:flex}.editor-summary .exercise-preview img{object-fit:contain}.editor-summary-title{overflow-wrap:anywhere;font-weight:600}.editor-summary-facts,.editor-summary-list{font-size:var(--text-sm);overflow-wrap:anywhere}.editor-summary-facts{color:var(--color-text-secondary)}.editor-summary-list{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.editor-summary-list dt{color:var(--color-text-secondary);font-size:var(--text-xs)}.editor-summary-list dd{margin:0}.sticky-nav-status{color:var(--color-text-secondary);font-size:var(--text-xs);white-space:nowrap;flex:none}.sticky-nav-status.is-problem{color:var(--color-error)}@media (width<=39.99rem){.editor,.editor-layout{gap:var(--space-3)}.editor-main{gap:var(--space-2)}}@media (width>=72rem){main:has(>.editor){max-width:90rem;padding-inline:var(--space-5);margin-inline:0}}@container (width>=58rem){.editor-top{padding:var(--space-5)}.editor-layout{flex-direction:row;align-items:flex-start}.editor-main{flex:1 1 0}.editor-side{flex:none;width:17rem;display:flex}}.meta{gap:var(--space-1) var(--space-4);font-size:var(--text-sm);grid-template-columns:auto minmax(0,1fr);margin:0;display:grid}.meta dt{color:var(--color-text-secondary)}.meta dd{overflow-wrap:anywhere;margin:0}.actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.actions .btn{flex:auto}.user-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.user-controls{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.user-controls .select{flex:9rem}.switch-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.user-name{overflow-wrap:anywhere}.user-inactive .user-name{color:var(--color-text-secondary)}.user-row .btn-plain{margin-left:calc(var(--space-2) * -1);align-self:flex-start}@container (width>=44rem){.user-row{align-items:center;column-gap:var(--space-4);grid-template-columns:minmax(0,1fr) 11rem auto auto;display:grid}.user-controls{display:contents}.user-row .btn-plain{align-self:center;margin-left:0}}.job{gap:var(--space-1);flex-direction:column;display:flex}.backup-head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.backup-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.backup-actions .btn-plain{padding:0 var(--space-3)}@container (width>=40rem){.backup-row{align-items:center;column-gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.backup-row .banner{grid-column:1/-1}}.table-view{cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;width:100%;height:auto;margin:0 auto;display:block}.diagram-mode{max-width:20rem;margin-bottom:var(--space-3)}.diagram-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.spin-backdrop{z-index:50;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.spin-panel{gap:var(--space-3);width:100%;max-width:24rem;padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-surface);flex-direction:column;display:flex}.spin-panel h2{margin:0;font-size:1.125rem}.spin-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.spin-option{border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:4rem;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;display:flex}.spin-option[aria-pressed=true],.spin-panel .btn[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-tint)}@media (width>=40rem){.spin-backdrop{align-items:center}.spin-panel{border-radius:var(--radius-md)}}.table-view-readonly{cursor:default}.diagram-field{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.diagram-preview{width:100%;max-width:24rem}.variant-diagram{margin-top:var(--space-3);max-width:36rem}.diagram-dialog{z-index:40;background:var(--color-surface);flex-direction:column;display:flex;position:fixed;inset:0}.diagram-dialog-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);padding-top:calc(var(--space-2) + env(safe-area-inset-top));border-bottom:1px solid var(--color-border);display:flex}.diagram-dialog-bar h2{text-align:center;margin:0;font-size:1rem}.diagram-dialog-body{padding:var(--space-3);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.dashboard{gap:var(--space-4)}.dashboard-hero{isolation:isolate;justify-content:center;gap:var(--space-1);min-height:8rem;padding:var(--space-5) var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(115deg, color-mix(in srgb, var(--color-primary) 80%, #000), color-mix(in srgb, var(--color-primary) 55%, #fff));flex-direction:column;display:flex;position:relative;overflow:hidden}.dashboard-hero:before{content:"";z-index:-1;background:linear-gradient(to right, var(--color-surface) 45%, #ffffffd9 70%, #fff0);position:absolute;inset:0}.dashboard-hero h1{overflow-wrap:anywhere}.dashboard-hero p{max-width:28rem;color:var(--color-text-secondary)}.quick-actions{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.quick-action{--tone:var(--tone-blue);align-items:flex-start;gap:var(--space-1);height:100%;min-height:7.25rem;padding:var(--space-3);border:1px solid color-mix(in srgb, var(--tone) 22%, var(--color-surface));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--tone) 9%, var(--color-surface));color:var(--color-text);flex-direction:column;text-decoration:none;display:flex}.tone-primary{--tone:var(--color-primary)}.tone-green{--tone:var(--tone-green)}.tone-amber{--tone:var(--tone-amber)}.tone-violet{--tone:var(--tone-violet)}.tone-slate{--tone:var(--tone-slate)}.quick-action svg{color:var(--tone);margin-bottom:0}.quick-action-label{overflow-wrap:anywhere;font-weight:700;line-height:1.25}.quick-action-hint{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:1.3}a.quick-action:active{background:color-mix(in srgb, var(--tone) 16%, var(--color-surface))}@media (hover:hover) and (pointer:fine){a.quick-action:hover{border-color:var(--tone);background:color-mix(in srgb, var(--tone) 14%, var(--color-surface));box-shadow:0 2px 8px #0000001a}}.quick-action-disabled{background:color-mix(in srgb, var(--tone) 5%, var(--color-surface));border-style:dashed}.quick-action-disabled svg{opacity:.6}.quick-action-disabled .quick-action-label{color:var(--color-text-secondary)}.quick-action-note{padding:.0625rem var(--space-2);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-xs);border-radius:999px;margin-top:auto;font-weight:600}.dashboard-areas{gap:var(--space-4);align-items:start;display:grid}.dashboard-card{gap:var(--space-2);min-width:0;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.section-heading{font-size:var(--text-lg);font-weight:700}.activity-list{margin:0;padding:0;list-style:none}.activity-list li+li{border-top:1px solid var(--color-separator)}.activity-row{align-items:center;column-gap:var(--space-3);min-height:var(--touch);padding:var(--space-2) var(--space-5) var(--space-2) var(--space-1);border-radius:var(--radius-md);color:inherit;grid-template-columns:4.5rem minmax(0,1fr);text-decoration:none;display:grid;position:relative}.activity-row:after{content:"›";top:50%;right:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-lg);position:absolute;transform:translateY(-50%)}.activity-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.activity-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}@media (hover:hover) and (pointer:fine){.activity-row:hover{background:var(--color-bg)}}.dashboard-empty{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm)}.dashboard-note,.dashboard .status{font-size:var(--text-xs)}@media (width>=40rem){.dashboard-hero{min-height:10rem;padding:var(--space-5) var(--space-6)}.dashboard-hero h1{font-size:2.25rem}.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-action{min-height:9rem;padding:var(--space-4)}}@media (width>=72rem){.quick-actions{grid-template-columns:repeat(6,minmax(0,1fr))}.quick-action{min-height:10.5rem;padding:var(--space-3)}}@media (width>=56rem){.dashboard-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}.library-header{align-items:flex-start}.library-title{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.library-title p{font-size:var(--text-sm)}.library-results{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.exercise-cards{grid-template-columns:repeat(auto-fill, minmax(min(100%, max(17rem, (100% - 2 * var(--space-4)) / 3)), 1fr));gap:var(--space-4)}.exercise-card{border:1px solid var(--color-separator);box-shadow:0 1px 3px #0000000f}.exercise-card .exercise-preview{aspect-ratio:16/10}.exercise-card .exercise-title{-webkit-line-clamp:2;font-size:var(--text-md);-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.exercise-card .exercise-text{-webkit-line-clamp:2}@media (hover:hover) and (pointer:fine){.exercise-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #0000001a}}.filter-column-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.filter-column-head h2{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:700;display:flex}.filter-column-head .btn{color:var(--color-primary)}@media (width>=72rem){.library{column-gap:var(--space-5);grid-template-columns:16rem minmax(0,1fr);align-items:start;row-gap:0;display:grid}.library-header{margin-bottom:var(--space-4);grid-column:1/-1}.library .filter-column{top:calc(var(--header-h) + var(--space-3));max-height:calc(100svh - var(--header-h) - 2 * var(--space-3));gap:var(--space-4);grid-area:2/1/span 3;position:sticky;overflow-y:auto}.library-toolbar{grid-area:2/2}.library .filter-chips{margin-top:var(--space-3);grid-area:3/2}.library-results{margin-top:var(--space-4);grid-area:4/2}main:has(>.library,>.materials,>.spinsight-area){max-width:100rem;padding-inline:var(--space-5);margin-inline:0}}.library,.library-results{gap:var(--space-3)}.library-header{gap:var(--space-2) var(--space-3)}.filter-groups{flex-direction:column;display:flex}.filter-group+.filter-group{border-top:1px solid var(--color-separator)}.filter-group-title{font-size:var(--text-md);margin:0}.filter-group-title button{align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;display:flex}.filter-group-title button>span:first-child{flex:1;min-width:0}.filter-group-count{min-width:1.5rem;padding:0 var(--space-2);background:var(--color-primary-tint);color:var(--color-primary-on-tint);font-size:var(--text-xs);text-align:center;border-radius:999px;font-weight:600}.filter-group-chevron{color:var(--color-text-secondary);flex:none;transition:transform .15s}.filter-group-title button[aria-expanded=true] .filter-group-chevron{transform:rotate(180deg)}.filter-group-body{padding-bottom:var(--space-3)}.filter-group-body[hidden]{display:none}.filter-mobile>summary{min-height:var(--touch);padding:0 var(--space-4) 0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-sm);display:inline-flex}.filter-mobile>summary:before{display:none}.filter-count{color:var(--color-primary)}.filter-mobile[open] .disclosure-body{margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface)}.exercise-duration{align-items:center;gap:var(--space-1);color:var(--color-text);white-space:nowrap;font-weight:600;display:inline-flex}.exercise-who,.exercise-focus,.exercise-ttr{min-width:0}.exercise-who{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:100%;overflow:hidden}.exercise-focus{gap:var(--space-1);flex-wrap:wrap;flex:100%;display:flex}.tag{padding:0 var(--space-2);background:var(--color-primary-tint);color:var(--color-primary-on-tint);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;font-weight:500}.tag-more{background:var(--color-fill);color:var(--color-text-secondary)}.badge-quiet{background:0 0;padding-inline:0;font-weight:500}.exercise-card .exercise-meta{row-gap:var(--space-2)}.exercise-row .exercise-focus,.exercise-row .exercise-ttr{display:none}@container (width>=44rem){.exercise-row .exercise-focus,.exercise-row .exercise-ttr{display:flex}.exercise-row .exercise-meta{justify-content:flex-end;max-width:22rem}.exercise-row .exercise-who{flex-basis:auto;max-width:100%}.exercise-row .exercise-focus{flex-basis:auto}}.dialog{width:min(30rem, calc(100% - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-5));border:1px solid var(--color-separator);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;padding:0;box-shadow:0 8px 32px #0003}.dialog[open]{flex-direction:column;display:flex}.dialog::backdrop{background:#0006}.dialog-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-separator);display:flex}.dialog-head h2{min-width:0;font-size:var(--text-lg);overflow-wrap:anywhere}.dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.dialog-body{gap:var(--space-3);padding:var(--space-4);overscroll-behavior:contain;flex-direction:column;flex:1;display:flex;overflow-y:auto}.dialog-actions{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom));border-top:1px solid var(--color-separator);display:flex}.dialog-actions-stack{flex-direction:column}@media (width<=39.99rem){.dialog{width:100%;max-width:none;height:100dvh;max-height:none;box-shadow:none;border:0;border-radius:0}.dialog-actions .btn{flex:1}}.image-picker{align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;flex-direction:column;display:flex}.image-picker.is-dragging{border-color:var(--color-primary);background:var(--color-primary-tint)}.image-picker .exercise-preview{aspect-ratio:auto;width:100%;height:10rem}.image-picker .exercise-preview img{object-fit:contain}.image-picker-note{max-width:100%;font-size:var(--text-sm);overflow-wrap:anywhere}.image-picker-actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.preview-placeholder{width:100%;height:100%;color:var(--color-text-secondary);place-items:center;display:grid}.preview-placeholder .icon{width:2.5rem;height:2.5rem}.material-usage-line{font-size:var(--text-sm)}.material-results{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.material-cards{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.material-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr))}}.material-card{border:1px solid var(--color-separator);border-radius:var(--radius-lg);background:var(--color-surface);width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;padding:0;display:flex;overflow:hidden}@media (hover:hover) and (pointer:fine){.material-card:hover{border-color:var(--color-primary)}}.material-card:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.material-card-new{justify-content:center;align-items:center;gap:var(--space-2);border-style:dashed;border-color:var(--color-border);min-height:9rem;color:var(--color-primary);background:0 0;font-weight:600}.material-card .exercise-preview{aspect-ratio:4/3;border-radius:0}.material-card .exercise-preview img{object-fit:contain}.material-card-body{gap:var(--space-1);min-width:0;padding:var(--space-3);flex-direction:column;display:flex}.material-card-name{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.combobox{position:relative}.combobox-input{padding-right:var(--touch);text-overflow:ellipsis}.combobox-input:disabled{color:var(--color-text-secondary);background-color:var(--color-bg)}.combobox-chevron,.combobox-clear{width:var(--touch);height:var(--touch);color:var(--color-text-secondary);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:0;right:0}.combobox-chevron{pointer-events:none}.combobox-popup{top:calc(100% + var(--space-1));z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);position:absolute;left:0;right:0;box-shadow:0 8px 24px #00000024}.combobox-list{max-height:17rem;padding:var(--space-1);overscroll-behavior:contain;margin:0;list-style:none;overflow-y:auto}.combobox-option{align-items:center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex}.combobox-option.is-active{background:var(--color-fill)}.combobox-option[aria-selected=true]{color:var(--color-primary);font-weight:600}.combobox-none{color:var(--color-text-secondary)}.combobox-check{flex:none;width:1.125rem;display:inline-flex}.combobox-label{overflow-wrap:anywhere;min-width:0}.combobox-note{color:var(--color-text-secondary);font-size:var(--text-xs);white-space:nowrap;margin-left:auto;font-weight:400}.combobox-empty{padding:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.player-results{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.player-row-link{align-items:center;gap:var(--space-2) var(--space-3);min-height:var(--touch);padding:var(--space-3) var(--space-4);color:inherit;-webkit-tap-highlight-color:transparent;flex-wrap:wrap;text-decoration:none;display:flex}.player-row-name{overflow-wrap:anywhere;min-width:0;font-weight:600}@media (hover:hover) and (pointer:fine){.player-row-link:hover{background:var(--color-fill)}}.player-row-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.profile .section-card-body,.profile-form{gap:var(--space-4);flex-direction:column;display:flex}.profile-facts{gap:var(--space-3);margin:0;display:grid}.profile-facts div{gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.profile-facts dt{min-width:9rem;color:var(--color-text-secondary)}.profile-facts dd{overflow-wrap:anywhere;margin:0;font-weight:600}.profile-note{font-size:var(--text-sm)}.spinsight-results{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.spinsight-row{padding:0}.spinsight-row-link{gap:var(--space-1);min-height:var(--touch);padding:var(--space-3) var(--space-4);color:inherit;flex-direction:column;text-decoration:none;display:flex}.spinsight-row-category{overflow-wrap:anywhere;font-weight:600}.spinsight-row-meta{font-size:var(--text-sm)}@media (hover:hover) and (pointer:fine){.spinsight-row-link:hover{background:var(--color-fill)}}.spinsight-row-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.spinsight-selected{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.spinsight-selected li{align-items:center;gap:var(--space-2);min-height:var(--touch);display:flex}.spinsight-selected li+li{border-top:1px solid var(--color-separator)}.spinsight-selected-name{overflow-wrap:anywhere;flex:1;min-width:0}.spinsight-selected-note{font-size:var(--text-sm)}.spinsight-capture{max-width:44rem}.spinsight-progress{font-weight:600}.spinsight-capture-actions{flex-wrap:nowrap}.spinsight-capture-actions .btn{padding:0 var(--space-3);white-space:nowrap;flex:auto}.spinsight-capture-body{gap:var(--space-4);flex-direction:column;display:flex}.spinsight-entry-title{font-size:var(--text-lg);overflow-wrap:anywhere}.spinsight-tiles{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));display:grid}.spinsight-tile{align-items:flex-start;gap:var(--space-1);min-height:4rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;display:flex}.spinsight-tile-name{overflow-wrap:anywhere;font-weight:600}.spinsight-tile-status{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-secondary);display:inline-flex}.spinsight-tile-values{font-size:var(--text-xs);color:var(--color-text-secondary)}.spinsight-tile.is-recorded .spinsight-tile-status{color:var(--color-success)}.spinsight-tile.is-invalid{border-color:var(--color-error)}.spinsight-tile.is-invalid .spinsight-tile-status{color:var(--color-error)}.spinsight-tile.is-active{border:3px solid var(--color-primary);padding:calc(var(--space-2) - 2px) calc(var(--space-3) - 2px);background:var(--color-primary-tint)}.spinsight-tile:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (hover:hover) and (pointer:fine){.spinsight-tile:not(.is-active):hover{background:var(--color-fill)}}.spinsight-table-wrap{background:var(--color-surface);border-radius:var(--radius-lg);overflow-x:auto}.spinsight-table{border-collapse:collapse;width:100%}.spinsight-table th,.spinsight-table td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top}.spinsight-table thead th{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:600}.spinsight-table tbody th{overflow-wrap:anywhere;font-weight:600}.spinsight-table tr+tr th,.spinsight-table tr+tr td,.spinsight-table tbody tr:first-child th,.spinsight-table tbody tr:first-child td{border-top:1px solid var(--color-separator)}.spinsight-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.spinsight-table abbr{text-decoration:none}.spinsight-note{font-size:var(--text-sm)}.avatar-editor{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.avatar-editor-frame{flex:none;position:relative}.avatar-editor-frame>.avatar-editor-action,.avatar-editor-frame>.action-menu{position:absolute;bottom:0;right:0}.avatar-editor-action{border:2px solid var(--color-surface);background:var(--color-primary);width:2rem;height:2rem;color:var(--color-on-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.avatar-editor-action:before{content:"";border-radius:50%;position:absolute;inset:-8px}.avatar-editor-action:focus-visible{box-shadow:var(--focus-ring);outline:none}.avatar-editor-action:disabled{opacity:.6;cursor:default}@media (hover:hover) and (pointer:fine){.avatar-editor-action:hover:not(:disabled){background:var(--color-primary-hover)}}.avatar-editor-status{gap:var(--space-2);flex-direction:column;flex:12rem;min-width:0;display:flex}.player-head{align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.player-head .avatar-editor{display:contents}.player-head .avatar-editor-status{flex:100%;order:1}.player-head .avatar-editor-status .field-hint{display:none}.player-head .avatar-editor-status:not(:has(.banner,[role=status])){display:none}.player-head-title{gap:var(--space-1);flex-direction:column;flex:12rem;min-width:0;display:flex}.player-head-title h1{overflow-wrap:break-word;margin:0}.player-spinsight{gap:var(--space-4);flex-direction:column;display:flex}.player-spinsight-filters{gap:var(--space-3) var(--space-4);display:grid}@media (width>=40rem){.player-spinsight-filters{grid-template-columns:minmax(0,1fr) minmax(0,16rem);align-items:end}}.player-spinsight-empty{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.player-bests{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.player-best{gap:var(--space-1);min-width:0;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-separator);border-radius:var(--radius-lg);flex-direction:column;display:flex}.player-best-title,.player-best-date{font-size:var(--text-sm);color:var(--color-text-secondary)}.player-best-value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.player-best-unit{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:600}a.player-best-date{min-height:var(--touch);align-self:flex-start;align-items:center;display:inline-flex}.player-spinsight .section-card-body{gap:var(--space-3);flex-direction:column;display:flex}.player-chart-controls{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.player-chart-controls .segmented{flex:none}.player-chart-note{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.player-chart-controls .segmented:has(.segment-icon){margin-left:0}.spinsight-chart{min-width:0;height:16rem;position:relative}@media (width>=40rem){.spinsight-chart{height:20rem}}.player-history tbody tr{cursor:pointer}.player-history tbody th a{min-height:var(--touch);margin-block:calc(var(--space-3) * -1);color:inherit;align-items:center;font-weight:600;display:inline-flex}@media (hover:hover) and (pointer:fine){.player-history tbody tr:hover{background:var(--color-fill)}}.spinsight-evaluation{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.spinsight-evaluation .section-card-body{gap:var(--space-3);flex-direction:column;display:flex}.evaluation-mode .segmented{max-width:20rem}.evaluation-choice-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.evaluation-note{font-size:var(--text-sm);color:var(--color-text-secondary);overflow-wrap:break-word;margin:0}.evaluation-bests-chart{min-width:0;max-height:30rem;overflow-y:auto}.evaluation-legend-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.evaluation-legend-title{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:600}.evaluation-legend ul{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.evaluation-legend-item{align-items:center;gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-2);border:1px solid var(--color-separator);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;display:inline-flex}.evaluation-legend-item[aria-pressed=false]{color:var(--color-text-secondary);text-decoration:line-through}.evaluation-legend-item[aria-pressed=false] .evaluation-swatch{opacity:.3}.evaluation-legend-item:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (hover:hover) and (pointer:fine){.evaluation-legend-item:hover{background:var(--color-fill)}}.evaluation-swatch{flex:none}.evaluation-table .evaluation-value{display:block}.evaluation-table .evaluation-time{font-size:var(--text-xs);color:var(--color-text-secondary);display:block}.evaluation-table tbody th a{min-height:var(--touch);margin-block:calc(var(--space-3) * -1);align-items:center;font-weight:600;display:inline-flex}.evaluation-table .evaluation-none{text-align:right}@media (width<=39.99rem){.evaluation-table thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.evaluation-table tr{gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-separator);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.evaluation-table tbody tr:first-child{border-top:0}.evaluation-table.spinsight-table tbody th,.evaluation-table.spinsight-table tbody td{text-align:left;border-top:0;padding:0}.evaluation-table tbody th,.evaluation-table .evaluation-none{grid-column:1/-1}.evaluation-table td[data-label]:before{content:attr(data-label);font-size:var(--text-xs);color:var(--color-text-secondary);display:block}.evaluation-table .evaluation-time{white-space:normal}}
