:root{color-scheme:light;--bg: #f7f8fb;--surface: #ffffff;--surface-soft: #eef6ff;--text: #111827;--muted: #64748b;--line: #dbe3ee;--primary: #2563eb;--primary-strong: #1d4ed8;--accent: #0f766e;--success: #15803d;--warning: #b45309;--danger: #be123c;--shadow: 0 14px 36px rgba(15, 23, 42, .08);--radius: 8px;--nav-height: 76px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(37,99,235,.38);outline-offset:3px}.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-160%);background:var(--text);color:#fff;padding:10px 12px;border-radius:var(--radius)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100dvh;max-width:960px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(var(--nav-height) + 24px + env(safe-area-inset-bottom))}.app-shell.centered{display:grid;place-items:center}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 14px;background:#f7f8fbeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.user-block,.section-title,.subhead{display:flex;align-items:center;gap:12px}.user-block img,.profile-card img{flex:0 0 auto;border-radius:50%;background:var(--line);object-fit:cover}.eyebrow{display:block;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.08rem,3vw,1.35rem);line-height:1.2}h2{font-size:1.18rem;line-height:1.25}h3{font-size:1rem;line-height:1.35}.content{display:grid;gap:14px}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:transform .18s ease,border-color .18s ease,background .18s ease}.icon-button:active,.primary-button:active,.secondary-button:active,.success-button:active,.danger-button:active,.chip:active,.nav-item:active,.upload-row:active{transform:scale(.97)}.icon-button svg,.primary-button svg,.secondary-button svg,.success-button svg,.danger-button svg,.lesson-meta svg,.section-title svg,.subhead svg,.status-strip svg,.search-field svg,.empty-state svg,.notice-row svg{width:20px;height:20px}.date-panel,.status-strip,.search-field,.admin-upload,.profile-card,.empty-state,.group-card,.upload-history,.moderation-workspace{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.date-panel{display:grid;grid-template-columns:44px 1fr 44px;gap:10px;align-items:end;padding:12px}.date-panel label,.field{display:grid;gap:7px;color:var(--muted);font-size:.86rem;font-weight:700}.date-panel input,.field input,.field textarea,.search-field select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;color:var(--text);padding:10px 12px}.field textarea{resize:vertical;min-height:112px;line-height:1.5}.status-strip,.search-field{display:flex;align-items:center;gap:10px;min-height:52px;padding:12px;color:var(--muted)}.status-strip strong{margin-left:auto;color:var(--primary);font-size:.85rem}.search-field select{border:0;background:transparent;padding:0}.schedule-stack,.stack,.lesson-list,.upload-list{display:grid;gap:12px}.group-card{padding:14px}.group-card__header,.lesson-card__main,.moderation-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.count-pill,.lesson-type,.status-badge,.chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:800}.count-pill{background:var(--surface-soft);color:var(--primary)}.lesson-card{display:grid;gap:12px;padding:13px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff}.lesson-type{background:#0f766e1a;color:var(--accent);white-space:nowrap}.lesson-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.lesson-meta div{min-width:0}.lesson-meta dt{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.78rem;font-weight:800}.lesson-meta dd{margin:3px 0 0;color:var(--text);overflow-wrap:anywhere}.empty-state{display:grid;justify-items:center;gap:10px;padding:28px 16px;text-align:center}.empty-state svg{width:34px;height:34px;color:var(--primary)}.empty-state p,.section-title p,.profile-card p,.muted-text{color:var(--muted)}.empty-state.error svg,.danger-button,.status-badge.rejected,.status-badge.error{color:var(--danger)}.primary-button,.secondary-button,.success-button,.danger-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);border:1px solid transparent;padding:10px 14px;font-weight:800;transition:transform .18s ease,opacity .18s ease,background .18s ease}.primary-button{background:var(--primary);color:#fff}.primary-button:hover{background:var(--primary-strong)}.secondary-button{background:#eef6ff;color:var(--primary);border-color:#bfd7ff}.success-button{background:var(--success);color:#fff}.danger-button{background:#fff1f2;border-color:#fecdd3}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:50;width:min(960px,100%);transform:translate(-50%);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;min-height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffff0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-item{min-height:52px;border:0;border-radius:var(--radius);background:transparent;color:var(--muted);display:grid;place-items:center;gap:3px;font-size:.76rem;font-weight:800}.nav-item svg{width:21px;height:21px}.nav-item.active{background:var(--surface-soft);color:var(--primary)}.admin-panel,.group-directory{display:grid;gap:14px}.admin-upload{display:grid;gap:12px;padding:14px}.file-picker{min-height:92px;display:grid;place-items:center;gap:8px;border:1px dashed #9db7d8;border-radius:var(--radius);background:#fbfdff;color:var(--primary);font-weight:800}.file-picker input{position:absolute;opacity:0;pointer-events:none}.button-row,.moderation-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-grid{display:grid;gap:14px}.upload-history,.moderation-workspace,.profile-card{padding:14px}.subhead{margin-bottom:12px;font-weight:900}.subhead .icon-button{margin-left:auto;width:38px;height:38px}.upload-row{width:100%;min-height:58px;display:grid;grid-template-columns:10px 1fr;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;padding:9px 10px;text-align:left}.upload-row.active{border-color:#93c5fd;background:#eff6ff}.upload-row small{display:block;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}.status-dot.processing,.status-badge.processing{background:#fff7ed;color:var(--warning)}.status-dot.ready,.status-badge.ready{background:#eff6ff;color:var(--primary)}.status-dot.need_review,.status-badge.need_review{background:#fffbeb;color:var(--warning)}.status-dot.published,.status-badge.published{background:#ecfdf5;color:var(--success)}.status-dot.rejected,.status-dot.error{background:var(--danger)}.moderation-workspace{display:grid;gap:12px;min-width:0}.alert-list{display:grid;gap:6px}.alert-list span{border-radius:var(--radius);background:#fff7ed;color:var(--warning);padding:8px 10px;font-weight:700}.field span{display:inline-flex;align-items:center;gap:7px}.chip-grid{display:flex;flex-wrap:wrap;gap:10px}.chip{min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--text)}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.profile-card{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center}.notice-row{grid-column:1 / -1;display:flex;align-items:center;gap:8px;min-height:44px;border-radius:var(--radius);background:#eef6ff;color:var(--primary);padding:10px 12px;font-weight:800}.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--nav-height) + 18px + env(safe-area-inset-bottom));z-index:80;max-width:560px;margin:0 auto;border-radius:var(--radius);background:var(--text);color:#fff;padding:12px 14px;box-shadow:var(--shadow);animation:toast-in .22s ease both}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.inline-loader{display:inline-flex;align-items:center;gap:7px}.inline-loader svg{animation:spin .9s linear infinite}.skeleton{min-height:128px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.skeleton-line,.skeleton-grid span{display:block;height:16px;border-radius:6px;background:linear-gradient(90deg,#e5edf6,#f5f8fc 42%,#e5edf6 80%);background-size:220% 100%;animation:shimmer 1.2s ease-in-out infinite}.skeleton-line{width:58%;margin-bottom:12px}.skeleton-line.wide{width:82%}.skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}@media(min-width:760px){.app-shell{padding-inline:24px}.admin-grid{grid-template-columns:320px minmax(0,1fr);align-items:start}.lesson-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
