*{box-sizing:border-box}html,body{background:var(--night,#0f0e1e);color:var(--ivory,#f4efe6);margin:0}body{font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2{margin:0 0 16px;font-family:Cormorant Garamond,Georgia,serif;font-weight:600}.center{place-items:center;gap:12px;min-height:100vh;padding:16px;display:grid}.card{background:var(--night2);border-radius:20px;gap:16px;width:min(400px,100%);padding:32px;display:grid}label{color:var(--mist);gap:6px;font-size:14px;display:grid}input{background:var(--indigo);color:var(--ivory);font:inherit;border:1px solid #0000;border-radius:14px;padding:12px 14px}input:focus{border-color:var(--gold);outline:none}button{background:var(--gold);color:var(--night);font:inherit;cursor:pointer;border:0;border-radius:14px;padding:12px 18px;font-weight:600}button:disabled{opacity:.6;cursor:default}.error{color:var(--danger);margin:0}.muted{color:var(--mist)}.shell header{background:var(--night2);flex-wrap:wrap;align-items:center;gap:24px;padding:12px 24px;display:flex}.shell header nav{flex:1}.shell header nav a{color:var(--gold);text-decoration:none}.shell main{padding:24px}.stats{gap:16px;margin-bottom:24px;display:grid}.tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.tile{background:var(--night2);border-radius:20px;gap:4px;padding:16px;display:grid}.tile strong{color:var(--gold);font-size:28px}h3{margin:8px 0 0;font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--indigo);padding:8px}code{color:var(--goldLight)}select{background:var(--indigo);color:var(--ivory);font:inherit;border:1px solid #0000;border-radius:14px;width:max-content;padding:10px 12px}.shell header nav{gap:16px;display:flex}.shell header nav a[aria-current=page]{text-decoration:underline}.filters{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.filters input{min-width:220px}.check{flex-direction:row;align-items:center;gap:6px;display:flex}.small{font-size:12px}.badge{background:var(--indigo);border-radius:999px;padding:2px 10px;font-size:12px;display:inline-block}.badge.approved,.badge.published{color:var(--harmony);background:#2f4a3f}.badge.draft,.badge.in_review{background:var(--indigo);color:var(--goldLight)}.badge.missing,.badge.archived{color:var(--mist)}.badge.red{color:var(--danger);background:#4a2a33}table.clickable tbody tr{cursor:pointer}.rowlink{color:inherit;text-decoration:none}table.clickable tbody tr:hover{background:var(--night2)}.pager{align-items:center;gap:12px;display:flex}.editor-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.editor-grid{grid-template-columns:minmax(260px,1fr) 2fr;gap:16px;margin-top:16px;display:grid}@media (width<=900px){.editor-grid{grid-template-columns:1fr}}.card.wide{width:100%;padding:20px}textarea{background:var(--indigo);color:var(--ivory);font:inherit;resize:vertical;border:1px solid #0000;border-radius:14px;width:100%;padding:12px 14px}textarea:focus{border-color:var(--gold);outline:none}dl{gap:6px;margin:0;display:grid}dl div{grid-template-columns:120px 1fr;gap:8px;display:grid}dt{color:var(--mist)}dd{margin:0}pre.tone{white-space:pre-wrap;color:var(--mist);max-height:360px;font:13px/1.5 system-ui,sans-serif;overflow:auto}.issues{color:var(--danger);margin:0;padding-left:18px}.ok{color:var(--harmony);margin:0}.actions{flex-wrap:wrap;gap:8px;display:flex}button.ghost{color:var(--gold);border:1px solid var(--indigo);background:0 0}.cards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.setting{margin-bottom:8px}.hz{grid-template-columns:300px 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.hz{grid-template-columns:1fr}.weeks{max-height:320px}}.weeks{background:var(--night2);border-radius:20px;max-height:calc(100vh - 160px);padding:12px;position:sticky;top:16px;overflow:auto}.year{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.year button{padding:6px 12px}.month{color:var(--mist);text-transform:uppercase;letter-spacing:.06em;margin:12px 8px 4px;font-size:12px}.week{width:100%;color:var(--ivory);cursor:pointer;text-align:left;background:0 0;border-radius:10px;grid-template-columns:34px 1fr 12px 52px;align-items:center;gap:8px;padding:8px;font-weight:400;text-decoration:none;display:grid}.week:hover{background:var(--indigo)}.week.sel{background:var(--indigo);outline:1px solid var(--gold)}.week.past{opacity:.55}.week .wk{color:var(--mist);font-variant-numeric:tabular-nums}.week em{color:var(--gold);font-size:12px;font-style:normal}.week .wc{text-align:right;color:var(--mist);font-variant-numeric:tabular-nums;font-size:12px}.flag{color:var(--danger)}.dot{background:var(--indigo);border:1px solid var(--mist);border-radius:50%;width:10px;height:10px}.dot.draft{background:var(--goldLight);border-color:var(--goldLight)}.dot.partial{background:linear-gradient(90deg, var(--harmony) 50%, var(--goldLight) 50%);border-color:var(--harmony)}.dot.ready{background:var(--harmony);border-color:var(--harmony)}.dot.published{background:var(--gold);border-color:var(--gold)}.week-detail{gap:14px;min-width:0;display:grid}.wd-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.wd-head h3{margin:0 0 8px;font-size:20px}.chips{flex-wrap:wrap;gap:6px;display:flex}.badge.st-published{background:var(--gold);color:var(--night)}.badge.st-ready{color:var(--harmony);background:#2f4a3f}.badge.st-partial,.badge.st-draft{color:var(--goldLight)}.progress{grid-template-columns:repeat(12,1fr);gap:4px;display:grid}.progress .seg{background:var(--indigo);border-radius:3px;height:6px}.progress .seg.draft,.progress .seg.in_review{background:var(--goldLight);opacity:.6}.progress .seg.approved{background:var(--harmony)}.progress .seg.published{background:var(--gold)}.hcard{background:var(--night2);border:1px solid #0000;border-radius:16px;gap:10px;padding:16px;display:grid}.hcard.approved{border-color:#2f4a3f}.hcard.published{opacity:.85}.hcard header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hcard .glyph{color:var(--gold);font-size:20px}.htext{white-space:pre-wrap;margin:0;line-height:1.6}.preview{color:var(--mist);margin-top:4px}.toasts{z-index:50;gap:8px;max-width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--indigo);color:var(--ivory);border-left:3px solid var(--harmony);border-radius:12px;padding:10px 14px;box-shadow:0 6px 24px #00000059}.toast.error{border-left-color:var(--danger)}.weeks .today{width:100%;margin-bottom:8px}.legend{flex-wrap:wrap;gap:4px 10px;margin:0 4px 4px;display:flex}.legend span{align-items:center;gap:4px;display:inline-flex}.legend .dot{width:8px;height:8px;display:inline-block}.wd-head.sticky{z-index:5;background:var(--night);grid-template-columns:1fr auto;gap:10px;padding:8px 0 12px;display:grid;position:sticky;top:0}.wd-head.sticky .progress,.wd-head.sticky .check{grid-column:1/-1}.cards{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}.hcard header .spacer{flex:1}button.sm{border-radius:10px;padding:6px 12px;font-size:13px}.htext{-webkit-line-clamp:5;cursor:pointer;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.htext.open{-webkit-line-clamp:unset;display:block}.hcard{align-content:start}.weeks{padding-top:0}.weeks-top{z-index:2;background:var(--night2);padding:12px 0 6px;position:sticky;top:0}.week .dot{scroll-margin:120px}.week.sel{scroll-margin-top:140px}.setting-group{gap:10px;display:grid}.setting-group h3{margin:12px 0 0}.setting-value{margin:4px 0 8px;font-size:15px}.setting-value code{color:var(--ivory)}.setting .filters input{flex:1;max-width:520px}.bulkbar{z-index:2;background:var(--night);border-bottom:1px solid var(--indigo);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex;position:sticky;top:0}.bulkbar .link{margin-left:12px}.bulk-actions{gap:8px;display:flex}th.sel,td.sel{text-align:center;width:36px}td.sel input,th.sel input{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}tr.picked{background:var(--night2)}button.link{color:var(--gold);cursor:pointer;background:0 0;border:0;padding:0;font-weight:400;text-decoration:underline}.modal-back{z-index:50;background:#05040fb3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--night2);border:1px solid var(--indigo);border-radius:20px;gap:12px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:24px;display:grid;overflow:auto}.modal h3{margin:0}.modal .actions{justify-content:flex-end;gap:8px;display:flex}label.radio{cursor:pointer;align-items:flex-start;gap:10px;display:flex}label.radio input{accent-color:var(--gold);margin-top:4px}.skipped{max-height:220px;margin:0;padding-left:18px;overflow:auto}.job{background:var(--night2);border:1px solid var(--indigo);border-radius:16px;gap:8px;padding:14px 16px;display:grid}.job.failed{border-color:var(--danger)}.job-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.job-head .ghost{margin-left:auto;padding:6px 12px}.job .bar{background:var(--indigo);border-radius:3px;height:6px;overflow:hidden}.job .bar>div{background:var(--gold);height:100%;transition:width .4s}.job.completed .bar>div{background:var(--harmony)}.ai-box{border:1px solid var(--indigo);border-radius:14px;gap:8px;padding:12px 14px;display:grid}.ai-box .actions{justify-content:flex-end;gap:8px;display:flex}.filters input[type=checkbox]{min-width:0}button.danger{background:var(--danger);color:var(--night)}.user-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.user-head h2{margin:0}.user-head .spacer{flex:1}.ugrid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));align-items:start;gap:16px;display:grid}.ucard{background:var(--night2);border-radius:20px;gap:12px;min-width:0;padding:20px;display:grid}.ucard h3{margin:0}.ucard dl div{grid-template-columns:140px 1fr}.ucard table th,.ucard table td{padding:6px 4px;font-size:14px}.warn{color:var(--goldLight)}.badge.prem-active{background:var(--gold);color:var(--night)}.badge.prem-trial{color:var(--harmony);background:#2f4a3f}.badge.prem-grace,.badge.prem-cancelled{color:var(--danger);background:#4a2a33}.modal ul{gap:6px;margin:0;padding-left:18px;display:grid}form.confirm{gap:12px;display:grid}.user-head>a{color:var(--gold);text-decoration:none}.filters input.search{min-width:320px}.ucard code{word-break:break-all;font-size:13px}
