:root{--bg: #fffbf7;--surface: #ffffff;--line: #f9ede3;--fg: #191c36;--muted: #6b6d80;--primary: #191c36;--primary-ink: #ffffff;--accent: #f7a464;--soft: #fcebdd;--on-soft: #191c36;--blue: #0961f5;--blue-soft: #e6efff;--good: #2e7d2a;--good-soft: #e3f4e5;--bad: #d42020;--bad-soft: #fde4e6;--field: #fffbf7;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #000000;--surface: #272727;--line: #3a3a3a;--fg: #f2f2f5;--muted: #8a8b98;--primary: #f7a464;--primary-ink: #191c36;--soft: #3a2a1c;--on-soft: #f7a464;--blue: #6399f6;--blue-soft: #17264a;--good: #6fd069;--good-soft: #17301d;--bad: #ff7b86;--bad-soft: #3b1a20;--field: #1f1f1f;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.5}h1,h2,p{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-in,.page{max-width:1180px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}.topbar-in{display:flex;align-items:center;gap:24px;min-height:56px;flex-wrap:wrap}.brand{font-weight:700;font-size:16px;letter-spacing:-.01em}.brand span{color:var(--blue)}.nav{display:flex;gap:4px;flex:1;min-width:0}.nav a,.nav span{padding:6px 12px;border-radius:10px;color:var(--muted);text-decoration:none;font-weight:500}.nav a.active{background:var(--soft);color:var(--on-soft)}.nav .soon{opacity:.6}.tools{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--on-soft);display:grid;place-items:center;font-weight:600;font-size:12px}select.lang{background:var(--field);border:1px solid var(--line);border-radius:10px;padding:5px 8px}.linkbtn{border:0;background:transparent;color:var(--muted);font-weight:600;padding:4px 8px;border-radius:8px;white-space:nowrap}.linkbtn:hover{background:var(--soft);color:var(--on-soft)}.page{padding-block:24px 56px}.titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}.titlebar h1{font-size:22px;font-weight:700;letter-spacing:-.015em}.sumline{color:var(--muted);margin-bottom:14px}.btn{border:1px solid var(--line);background:var(--surface);padding:9px 18px;border-radius:20px;font-weight:600}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:5px 12px;font-size:12px}.btn.busy{display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.busy:before{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn.busy:before{animation-duration:2s}}.filterbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--muted)}.chips button[aria-pressed=true]{border-color:var(--accent);color:var(--on-soft);background:var(--soft)}.search{margin-left:auto;width:240px;max-width:100%;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.lib{display:grid;gap:8px}.lib-head,.lib-row{display:grid;grid-template-columns:40px minmax(0,1fr) 120px 150px;gap:14px;align-items:center}.lib-head{padding:0 14px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.lib-row{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px}.lib-row:hover{border-color:var(--accent)}.thumb{width:40px;aspect-ratio:5 / 8;border-radius:5px;object-fit:cover;background:linear-gradient(160deg,#191c36,#0961f5 70%,#6399f6)}.lib-title{min-width:0;font-weight:700;overflow-wrap:anywhere}.fmt{display:flex;gap:4px;margin-top:3px;flex-wrap:wrap}.fmt em{font-style:normal;font-size:10px;font-weight:700;padding:1px 7px;border-radius:5px;background:var(--line);color:var(--muted)}.fmt em.a{background:var(--blue-soft);color:var(--blue)}.meta{color:var(--muted);font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill.review{background:var(--bad-soft);color:var(--bad)}.pill.live{background:var(--good-soft);color:var(--good)}.pill.draft{background:var(--line);color:var(--muted)}.empty{text-align:center;padding:36px 16px;border:1.5px dashed var(--line);border-radius:14px;color:var(--muted)}.empty b{display:block;color:var(--fg);font-size:15px;margin-bottom:4px}.empty .btn{margin-top:12px}.more{display:flex;justify-content:center;margin-top:14px}.note{margin-top:16px;color:var(--muted);font-size:12px}.signin-wrap{min-height:100vh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-left,0px))}.signin{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;display:grid;gap:14px}.signin h1{font-size:24px;font-weight:700;letter-spacing:-.02em}.signin .lead,.signin .small{color:var(--muted)}.signin .small{font-size:12px}.sso{display:flex;align-items:center;gap:12px;justify-content:center;width:100%;padding:12px 18px;border-radius:22px;font-weight:600;border:1px solid var(--line);background:var(--surface)}.sso:hover:not(:disabled){border-color:var(--accent)}.sso:disabled{opacity:.5;cursor:not-allowed}.sso.apple{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.sso i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--soft);color:var(--on-soft)}.remember{display:flex;gap:10px;align-items:flex-start;font-weight:600;cursor:pointer}.remember input{margin-top:3px;width:16px;height:16px;flex:none}.remember small{display:block;font-weight:400;font-size:12px;color:var(--muted)}.errmsg{color:var(--bad);font-weight:500}.langs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.langs button{border:0;background:transparent;padding:3px 8px;border-radius:8px;font-weight:600;color:var(--muted);font-size:12px}.langs button[aria-pressed=true]{background:var(--soft);color:var(--on-soft)}@media(max-width:760px){.lib-head{display:none}.lib-row{grid-template-columns:40px minmax(0,1fr) auto;row-gap:6px}.lib-row .meta{grid-column:2 / -1}.search{margin-left:0;width:100%}}a.btn,a.lib-row{text-decoration:none;color:inherit;display:inline-flex;align-items:center}a.lib-row{display:grid}a.btn.primary{color:var(--primary-ink)}.crumbs{color:var(--muted);font-size:13px;text-decoration:none}.crumbs:hover{color:var(--fg)}.notice{display:flex;gap:10px;background:var(--bad-soft);color:var(--bad);border-radius:12px;padding:10px 14px;margin-bottom:16px;font-weight:500}.cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.stack{display:grid;gap:16px;min-width:0}.side{position:sticky;top:72px;display:grid;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;min-width:0}.card>h2{font-size:15px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}.card>h2 small{font-weight:500;color:var(--muted);font-size:12px;margin-left:auto}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:5px;min-width:0;align-content:start}.field.wide{grid-column:1 / -1}label,.lbl{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}input[type=text],input[type=number],select{width:100%;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-width:0}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--soft)}.hint{font-size:12px;color:var(--muted)}.okmsg{color:var(--good);font-size:12px;font-weight:600}.formactions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.btn.danger{color:var(--bad);border-color:var(--bad-soft)}.confirm{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;font-weight:600}.filebtn{cursor:pointer;display:inline-block;text-align:center}.rte{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--field)}.rte-bar{display:flex;gap:2px;padding:4px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}.rte-bar button{min-width:30px;height:28px;border:0;background:transparent;border-radius:6px;font-weight:700;color:var(--muted)}.rte-bar button[aria-pressed=true]{background:var(--soft);color:var(--on-soft)}.rte-body{min-height:120px;padding:10px 12px;outline:none}.rte-body p{margin:0 0 8px}.rte-body h2,.rte-body h3{margin:10px 0 6px}.rte-body blockquote{border-left:3px solid var(--accent);margin:8px 0;padding-left:12px;color:var(--muted)}.chips-field{display:flex;flex-wrap:wrap;gap:6px;padding:6px;background:var(--field);border:1px solid var(--line);border-radius:10px}.chip{background:var(--soft);color:var(--on-soft);border-radius:8px;padding:3px 4px 3px 10px;font-weight:600;font-size:12px;display:inline-flex;gap:4px;align-items:center}.chip em{font-style:normal;font-size:10px;background:var(--blue-soft);color:var(--blue);border-radius:4px;padding:0 5px}.chip button{border:0;background:transparent;color:inherit;padding:0 6px;font-size:14px;line-height:1}.chips-field input{border:0;background:transparent;flex:1;min-width:140px;padding:4px 6px;box-shadow:none!important}.suggest{display:grid;gap:2px;margin-top:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:4px}.suggest button{text-align:left;border:0;background:transparent;padding:6px 10px;border-radius:8px}.suggest button:hover{background:var(--soft)}.suggest .add{color:var(--blue);font-weight:600}.coverrow{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.coverprev{width:100px;aspect-ratio:5 / 8;object-fit:cover;border-radius:8px;background:var(--line)}.coverprev.empty{border:1.5px dashed var(--line)}.cover{display:block;width:180px;max-width:100%;aspect-ratio:5 / 8;object-fit:cover;border-radius:10px;margin:0 auto;background:var(--line)}.drop{border:1.5px dashed var(--accent);background:var(--soft);border-radius:14px;padding:18px;text-align:center;color:var(--on-soft);font-weight:600;cursor:pointer}.drop small{display:block;font-weight:500;color:var(--muted);margin-top:2px}.drop.over{border-style:solid}.drop.disabled{opacity:.5;cursor:not-allowed}.file{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--field);flex-wrap:wrap}.file .name{font-weight:600;min-width:0;overflow-wrap:anywhere}.file .sp{margin-left:auto;display:flex;gap:6px}.tag{font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 7px;border-radius:6px;background:var(--blue-soft);color:var(--blue)}.sub{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 8px}.upload{margin-top:14px;display:grid;gap:6px}.upload-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--blue);transition:width .2s linear}.rows{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}.row{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--field)}.row .n{color:var(--muted);font-weight:600;text-align:center}.row input{background:transparent;border-color:transparent;padding:6px 8px;font-weight:600}.row input:hover{border-color:var(--line)}.dur{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.row-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.iconbtn{border:0;background:transparent;color:var(--muted);padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600}.iconbtn:hover:not(:disabled){background:var(--soft);color:var(--on-soft)}.iconbtn:disabled{opacity:.35;cursor:not-allowed}.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--muted)}.kv span:last-child{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.check{list-style:none;margin:0;padding:0;display:grid;gap:6px}.check li{display:flex;gap:8px;align-items:center}.check li:before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--line)}.check li.ok{color:var(--muted)}.check li.ok:before{border-color:#50b748;background:#50b748 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.7 2.7L12 5.5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center / 100% no-repeat}.danger-zone{border-color:var(--bad-soft)}@media(max-width:880px){.cols{grid-template-columns:minmax(0,1fr)}.side{position:static;order:-1}.cover{width:120px}}@media(max-width:560px){.grid2{grid-template-columns:minmax(0,1fr)}.row{grid-template-columns:24px minmax(0,1fr)}.row .dur,.row-actions{grid-column:2 / -1;justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.bar i{transition:none}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0008;display:grid;place-items:center;padding:16px}.modal-card{background:var(--surface);border-radius:18px;padding:22px;width:100%;max-width:380px;max-height:100%;overflow:auto;display:grid;gap:12px}.modal-card h2{font-size:18px}.crop-canvas{max-width:100%;height:auto;border-radius:10px;margin-inline:auto;cursor:grab;touch-action:none;background:var(--line)}.crop-canvas:active{cursor:grabbing}.zoom{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}.zoom input{width:100%;accent-color:var(--accent)}.row[draggable=true]{cursor:default}.row.dragging{opacity:.4}.row.over{border-color:var(--accent);box-shadow:0 0 0 2px var(--soft)}.grip{cursor:grab;color:var(--muted);letter-spacing:-2px;text-align:center;-webkit-user-select:none;user-select:none}.thumb.course{width:64px;aspect-ratio:3 / 2;margin-right:8px}.lib-row .thumb.course{grid-column:1;margin-right:0}.lib.courses .lib-head,.lib.courses .lib-row{grid-template-columns:64px minmax(0,1fr) 120px 150px}@media(max-width:760px){.lib.courses .lib-row{grid-template-columns:64px minmax(0,1fr) auto}}.coverprev.wide{width:150px;aspect-ratio:3 / 2}.cover.wide{width:100%;aspect-ratio:3 / 2}.yt{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;align-items:start}.yt-th{aspect-ratio:16 / 9;border-radius:8px;background:linear-gradient(135deg,#191c36,#6399f6);position:relative;width:100%}.yt-th.img{object-fit:cover}.ytlink{color:var(--blue);overflow-wrap:anywhere;font-size:13px}.linkrow{display:flex;gap:8px}.linkrow input{flex:1}.les{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:8px;display:grid;gap:10px}.les.closed{padding:8px 12px}.les.dragging{opacity:.4}.les.over{border-color:var(--accent);box-shadow:0 0 0 2px var(--soft)}.les-top{display:grid;gap:10px;align-items:center}.les-body{display:grid;gap:12px;margin-top:4px}.les-flags{display:flex;gap:18px;flex-wrap:wrap}.les .mini{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--fg)}.les .mini input{accent-color:var(--accent)}.sec{border:1px solid var(--line);border-radius:12px;background:var(--field);padding:10px;margin-bottom:10px}.sec-h{display:flex;gap:8px;align-items:center;margin-bottom:4px}.sec-h .ac-h{flex:1}.mod-n{font-weight:700}.ac-h{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:2px 0;font-weight:600;min-width:0}.ac-h .chev{flex:none;width:18px;height:18px;display:grid;place-items:center;color:var(--muted);transition:transform .15s}.ac-h .chev:before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}.ac-h[aria-expanded=true] .chev{transform:rotate(90deg)}.ac-h .ttl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-h .sum{color:var(--muted);font-weight:500;font-size:12px;white-space:nowrap}.badges{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.bdg{font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 7px;border-radius:5px;background:var(--line);color:var(--muted);white-space:nowrap}.bdg.b{background:var(--blue-soft);color:var(--blue)}.bdg.w{background:var(--soft);color:var(--on-soft)}details.test{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--field)}details.test summary{cursor:pointer;font-weight:700}details.test summary .meta{font-weight:500;font-size:12px;margin-left:6px}details.test>*+*{margin-top:10px}.q{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px;display:grid;gap:8px}.q-head{display:flex;justify-content:space-between;gap:10px}.q-answers{margin:0;padding-left:20px;display:grid;gap:2px;color:var(--muted)}.q-answers li.right{color:var(--good);font-weight:700}.qthumb{height:36px;width:auto;border-radius:6px;vertical-align:middle}.qthumb.big{height:90px}.q-form{border:1px solid var(--accent);border-radius:12px;background:var(--surface);padding:12px;display:grid;gap:10px}.answers{border:0;padding:0;margin:0;display:grid;gap:6px}.answers legend{font-size:12px;font-weight:600;color:var(--muted);padding:0;margin-bottom:4px}.opt{display:flex;gap:8px;align-items:center}.opt input[type=radio]{accent-color:var(--accent);flex:none}textarea{width:100%;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-height:80px;resize:vertical}textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--soft)}@media(max-width:560px){.yt{grid-template-columns:minmax(0,1fr)}.ac-h .sum{display:none}}
