:root{--bg:#f3ecdd;--surface:#fbf8f1;--surface-2:#efe5d0;--ink:#2e2c2a;--ink-muted:#6b6052;--border:#e3d7bf;--border-strong:#cbb995;--primary:#8a6424;--primary-soft:#f1e3c4;--on-primary:#fff;--gold:#c19a4b;--on-gold:#2e2c2a;--leather:#5e3e26;--accent-b:#3f6e95;--danger:#a8402c;--success:#3d7d63;--rail:#2e2c2a;--rail-ink:#f3ecdd;--rail-muted:#b8ab95;--rail-hover:#3a3734;--rail-active:#4a3f2c;--radius:10px;--radius-sm:6px;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--display:"Cinzel", "Trajan Pro", Georgia, serif;font:15px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--bg:#141a22;--surface:#1f2833;--surface-2:#28323f;--ink:#f3ecdd;--ink-muted:#a9a090;--border:#2e3946;--border-strong:#425061;--primary:#d4ae5e;--primary-soft:#3a3223;--on-primary:#141a22;--gold:#d4ae5e;--on-gold:#141a22;--leather:#b08a68;--accent-b:#7fa7c4;--danger:#e07a63;--success:#6cbf9b;--rail:#0f141b;--rail-ink:#f3ecdd;--rail-muted:#a9a090;--rail-hover:#1b222c;--rail-active:#2f2a1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--display);letter-spacing:.02em;font-weight:700}a{color:var(--primary)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--rail);height:100vh;color:var(--rail-ink);border-right:2px solid var(--gold);padding:20px 12px;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px 20px;display:flex}.brand-avatar{border:2px solid var(--gold);object-fit:cover;border-radius:50%;flex:none;width:44px;height:44px}.brand-name{font-family:var(--display);letter-spacing:.02em;white-space:nowrap;color:var(--gold);font-size:16px;font-weight:700;line-height:1.2;display:block}.brand-tagline{color:var(--rail-muted);font-size:12px;display:block}.sidebar ul{margin:0;padding:0;list-style:none}.app-link{border-radius:var(--radius-sm);color:var(--rail-ink);align-items:center;gap:10px;padding:8px;text-decoration:none;display:flex}.app-link:hover{background:var(--rail-hover)}.app-link[aria-current=page]{background:var(--rail-active);box-shadow:inset 3px 0 0 var(--gold);font-weight:600}.app-mark{border-radius:var(--radius-sm);background:var(--gold);width:28px;height:28px;color:var(--on-gold);flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.content{width:100%;min-width:0;max-width:1280px;padding:28px 32px 64px}@media (width<=760px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{border-right:0;border-bottom:2px solid var(--gold);align-items:center;gap:12px;height:auto;padding:10px 16px;display:flex;position:static;overflow-x:auto}.brand{white-space:nowrap;padding:0}.brand-avatar{width:36px;height:36px}.brand-tagline{display:none}.sidebar ul{gap:4px;display:flex}.app-name{white-space:nowrap}.content{padding:20px 16px 48px}}.page-head{border-bottom:2px solid;border-image:linear-gradient(90deg, var(--gold), transparent 70%) 1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;padding-bottom:16px;display:flex}.page-head h1{font-size:28px;line-height:1.2}.page-head a{align-items:center;gap:4px;display:inline-flex}.page-actions{gap:8px;display:flex}.muted{color:var(--ink-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-title{align-items:center;gap:8px;font-size:17px;display:flex}.card-sub{margin-top:2px;margin-bottom:12px;font-size:13px}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-top:8px;font-size:13px;font-weight:600}.count{background:var(--surface-2);color:var(--ink-muted);border-radius:999px;padding:1px 8px;font-size:12px}.pill{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:8px 16px;font-weight:600;display:inline-flex}.btn-sm{min-height:34px;padding:6px 12px;font-size:14px}.btn-primary{background:var(--gold);color:var(--on-gold);border-color:color-mix(in srgb, var(--gold) 70%, var(--leather))}.btn-primary:hover{background:color-mix(in srgb, var(--gold) 88%, var(--on-gold))}.btn-secondary{background:var(--surface);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-2)}input,select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:38px;padding:6px 10px}.field-inline{color:var(--ink-muted);align-items:center;gap:6px;font-size:14px;display:inline-flex}.field-error{color:var(--danger);font-weight:600}.status-view{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.spinner{border:3px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.token-form{text-align:center;flex-direction:column;align-items:stretch;gap:12px;max-width:380px;margin:40px auto;display:flex}.token-form .guardian{border:3px solid var(--gold);object-fit:cover;object-position:center 20%;border-radius:50%;align-self:center;width:160px;height:160px}.dashboard{flex-direction:column;gap:16px;display:flex}.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.tile{border-top:3px solid var(--gold);padding:16px}.tile-label{color:var(--ink-muted);font-size:13px;font-weight:600}.tile-value{font-variant-numeric:tabular-nums;margin:4px 0;font-size:30px;font-weight:700;line-height:1.2}.tile-note{font-size:13px}.users-note{margin-top:-6px;font-size:13px}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;display:grid}@media (width<=760px){.chart-grid{grid-template-columns:1fr}}.daily svg{width:100%;height:auto;display:block}.daily .axis{stroke:var(--border-strong)}.daily .axis-label{fill:var(--ink-muted);font-size:12px}.daily .hit{fill:#0000}.daily .bar{fill:var(--primary);opacity:.85}.daily .bar.is-hover{opacity:1}.daily g:focus{outline:none}.daily g:focus-visible .hit{fill:var(--primary-soft)}.daily-readout{min-height:1.5em;margin-top:8px;font-size:13px}.table-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.filters{flex-wrap:wrap;gap:12px;display:flex}.table-wrap{position:relative;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.data-table thead th{color:var(--ink-muted);white-space:nowrap;font-size:12px;font-weight:600}.data-table tbody th{font-weight:500}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.exercise-table tbody th{min-width:220px}.row-toggle{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-weight:500;display:inline-flex}.row-chevron{color:var(--ink-muted);flex:none;transition:transform .15s ease-out}tr.is-open .row-chevron{transform:rotate(180deg)}.type-badge{background:var(--primary);width:22px;height:22px;color:var(--on-primary);border-radius:5px;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.type-badge.type-oddSentence{background:var(--accent-b)}.detail-row>td{background:var(--surface-2);padding:12px}.inner-table{background:var(--surface);border-radius:var(--radius-sm)}.item-label{flex-direction:column;display:flex}.item-label .muted{font-size:13px}.wrong-list{color:var(--ink-muted);font-size:13px}.meter{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.meter-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3ch}.meter-track{background:var(--surface-2);border-radius:999px;width:80px;height:8px;overflow:hidden}.meter-fill{background:var(--primary);border-radius:999px;height:100%;display:block}.meter-note{font-size:12px}.feedback-list{flex-direction:column;max-height:520px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.feedback-item{border-bottom:1px solid var(--border);padding:12px 0}.feedback-item:last-child{border-bottom:0}.feedback-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.feedback-message{white-space:pre-wrap;margin:6px 0}.generated{text-align:right;font-size:13px}.accesses{max-height:420px;overflow-y:auto}.nowrap{white-space:nowrap}.user-agent{text-overflow:ellipsis;white-space:nowrap;max-width:320px;color:var(--ink-muted);font-size:13px;overflow:hidden}.pill-warn{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.block{font-size:13px;font-weight:400;display:block}.pill-new{background:var(--primary-soft);color:var(--primary)}.row-actions{justify-content:flex-end;gap:6px;display:flex}.icon-btn{padding:6px 8px}.plan-list{margin:12px 0 0;padding:0;list-style:none}.plan-item{border-top:1px solid var(--border);grid-template-columns:220px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 0;display:grid}.plan-when,.plan-what{flex-direction:column;align-items:flex-start;gap:4px;display:flex}@media (width<=760px){.plan-item{grid-template-columns:1fr;gap:8px}.plan-item .row-actions{justify-content:flex-start}}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px;display:grid}.asset-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.asset-media{background:var(--surface-2);place-items:center;height:300px;display:grid}.asset-media video,.asset-play img{max-width:100%;max-height:300px;display:block}.asset-media video{height:300px}.asset-play{cursor:pointer;background:0 0;border:0;padding:0;line-height:0;position:relative}.asset-play-icon{color:#fff;background:#141a22a6;border-radius:50%;place-items:center;width:52px;height:52px;margin:-26px 0 0 -26px;display:grid;position:absolute;top:50%;left:50%}.asset-play:hover .asset-play-icon,.asset-play:focus-visible .asset-play-icon{background:var(--gold);color:var(--on-gold)}.asset-body{flex-direction:column;flex:1;gap:8px;padding:14px 16px 16px;display:flex}.asset-title{margin:0;font-size:16px}.asset-meta,.asset-usage{font-size:13px}.asset-hook{font-size:14px}.asset-text summary{cursor:pointer;color:var(--primary);font-size:14px;font-weight:600}.asset-text pre{border-radius:var(--radius-sm);background:var(--surface-2);max-height:220px;font:13px/1.45 var(--sans);white-space:pre-wrap;margin:8px 0 0;padding:10px 12px;overflow:auto}.asset-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.asset-downloads{flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.asset-downloads a{align-items:center;gap:4px;display:inline-flex}a.btn{color:inherit;text-decoration:none}a.btn-primary{color:var(--on-gold)}.tt-video{align-items:center;gap:10px;min-width:220px;display:flex}.tt-video img{object-fit:cover;border-radius:4px;flex:none;width:40px;height:56px}.tt-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.post-dialog{width:min(520px,100vw - 32px);color:var(--ink);background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:var(--radius);padding:20px}.post-dialog::backdrop{background:#141a228c}.post-form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.field .muted{font-weight:400}.segmented{border:0;flex-direction:row;gap:16px;margin:0;padding:0}.segmented legend{float:left;margin-right:8px;padding:0}.segmented label{align-items:center;gap:6px;font-weight:400;display:inline-flex}.segmented input{min-height:0}.form-actions{justify-content:flex-end;gap:8px;display:flex}.no-link{align-items:center;gap:8px;display:inline-flex}
