@font-face { font-family:Inter; src:url('/inter.woff2') format('woff2'); font-weight:100 900; font-display:swap; }
:root {
  --bg:#f4f0e7; --paper:#fdfbf5; --ink:#2d2234; --muted:#645966;
  --plum:#64336e; --line:#d7ccd6; --plum-tint:#ede3ef; --green:#295348;
  --green-tint:#e5eee7; --warning:#8b3d27; --warning-tint:#f7e8d9;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:radial-gradient(ellipse at 40% 0%,#eee4ef 0,transparent 52%),var(--bg); color:var(--ink); font:15px/1.5 Inter,sans-serif; }
a { color:var(--plum); text-underline-offset:.22em; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.53; cursor:default; }
:focus-visible { outline:2px solid var(--plum); outline-offset:3px; }
.shell { width:min(1310px,calc(100% - 60px)); margin-inline:auto; }
.skip { position:absolute; top:-100px; left:12px; z-index:4; background:var(--paper); padding:8px; }
.skip:focus { top:8px; }
.top,.top nav,.brand,.calendar-head,.panel-head,.source-row,.utility,.actions { display:flex; align-items:center; }
.top { min-height:66px; justify-content:space-between; border-bottom:1px solid var(--line); gap:10px; }
.top nav { gap:14px; flex-wrap:wrap; justify-content:end; font-size:13px; }
.brand { gap:8px; color:var(--ink); font-weight:760; text-decoration:none; }
.mark { display:grid; place-items:center; height:31px; width:31px; border-radius:8px; background:var(--plum); color:#fff6ff; font-size:11px; letter-spacing:-.04em; }
.intro { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(210px,300px); gap:22px; align-items:end; margin:38px 0 22px; }
h1 { margin:0; font:800 clamp(39px,6.3vw,90px)/.91 Inter,sans-serif; letter-spacing:-.075em; }
h1 em { color:var(--plum); font-style:normal; }
.intro p { color:var(--muted); font-size:16px; max-width:34ch; margin:0 0 2px; }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:10px; }
.metric { min-width:0; padding:10px 13px; background:#f7f0f6; border:1px solid var(--line); border-radius:8px; border-top-color:#a87e9d; }
.metric span,.metric small { display:block; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.metric span { font-weight:650; }
.metric strong { font-size:26px; display:block; line-height:1.2; letter-spacing:-.055em; color:var(--plum); font-variant-numeric:tabular-nums; }
.panel { min-width:0; border:1px solid var(--line); border-radius:10px; background:var(--paper); padding:13px; }
.calendar-head,.panel-head,.source-row,.utility { justify-content:space-between; gap:8px; }
.calendar-head p,.hint,.notice,.error { color:var(--muted); font-size:12px; }
h2,h3,strong { overflow-wrap:anywhere; }
h2,h3,p { margin:0; }
h2 { font-size:17px; line-height:1.19; letter-spacing:-.025em; }
.actions { flex-wrap:wrap; gap:6px; }
.primary,.quiet { border:1px solid transparent; min-height:34px; padding:7px 10px; border-radius:6px; font-size:12px; font-weight:700; line-height:1.2; }
.primary { background:var(--plum); color:#fff5fa; }
.primary:hover { background:#7a4285; }
.quiet { background:#f2ebf2; color:var(--ink); border-color:var(--line); }
.quiet:hover { border-color:#a889a4; }
.arrow { min-width:32px; padding:2px 8px; font-size:21px; }
.week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin-top:10px; }
.day { display:flex; flex-direction:column; min-width:0; min-height:131px; border:1px solid #dfd6dd; background:#faf6f7; padding:7px; border-radius:6px; }
.day header { display:flex; justify-content:space-between; gap:4px; align-items:baseline; margin-bottom:3px; }
.day header span,.minutes { color:var(--muted); font-size:11px; }
.day header strong { font-size:12px; }
.day.overloaded { border-color:#c58c77; background:#fcf1e9; }
.overloaded .minutes strong,.warning,.danger,.error { color:var(--warning); }
.warning { border:1px solid #e2b9a4; background:var(--warning-tint); margin-top:8px; border-radius:5px; padding:5px 7px; font-size:12px; }
.posts-day { display:grid; gap:4px; margin-top:5px; }
.post { width:100%; min-width:0; border:1px solid #d6c4dd; border-radius:5px; text-align:left; padding:5px; color:var(--plum); background:var(--plum-tint); cursor:pointer; }
.post.publish { border-color:#c1d5c8; color:var(--green); background:var(--green-tint); }
.post:hover { filter:brightness(.97); }
.post span,.post strong { display:block; }
.post span { font-size:10px; }
.post strong { font-size:11px; line-height:1.25; }
.empty { color:var(--muted); font-size:11px; }
.secondary { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr); gap:9px; margin-top:9px; align-items:start; }
.sources > .hint { margin:4px 0; }
.source-row,.post-row { padding:8px 0; border-top:1px solid var(--line); }
.source-row:first-child,.post-row:first-child { margin-top:6px; }
.post-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:7px; }
.source-row strong,.post-row strong { font-size:13px; }
.post-row .hint,.source-row .hint { overflow-wrap:anywhere; }
label { display:grid; gap:4px; color:var(--ink); font-size:12px; font-weight:650; min-width:0; }
input,textarea,select { width:100%; min-width:0; background:#fbf6fb; border:1px solid #cabcca; border-radius:6px; color:var(--ink); font-size:14px; padding:6px 7px; min-height:35px; }
textarea { resize:vertical; }
.backlog .panel-head label { grid-template-columns:auto minmax(0,1fr); align-items:center; }
.notice,.error { min-height:1.1em; }
.notice { margin:7px 0; }
.utility { border-top:1px solid var(--line); padding:12px 0 15px; }
.utility p { color:var(--muted); font-size:13px; }
footer { display:flex; gap:10px; flex-wrap:wrap; border-top:1px solid var(--line); padding:12px 0 24px; color:var(--muted); font-size:12px; }
dialog { border:1px solid var(--line); border-radius:10px; padding:16px; background:var(--paper); color:var(--ink); width:min(530px,calc(100% - 22px)); max-height:calc(100dvh - 20px); }
dialog::backdrop { background:#29172b8f; }
dialog h2 { margin-bottom:9px; }
dialog p { margin:6px 0; }
dialog .actions { justify-content:end; }
dialog form > label { margin:6px 0; }
.fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
fieldset { border:0; padding:0; margin:10px 0; min-width:0; }
legend { color:var(--muted); font-size:12px; font-weight:650; padding:0 0 5px; }
.capacity { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.reading { width:min(760px,100%); padding:47px 0; }
.reading h1 { font-size:clamp(42px,7vw,90px); margin-bottom:18px; }
.reading h2 { font-size:25px; margin:23px 0 7px; }
.reading p,.reading li { margin-bottom:8px; max-width:68ch; font-size:15px; }
.reading .lead { color:var(--muted); font-size:17px; }
.reading table { width:100%; border-collapse:collapse; text-align:left; }
.reading td,.reading th { border-bottom:1px solid var(--line); padding:7px 4px; font-size:13px; }
@media(max-width:990px) { .shell { width:calc(100% - 34px); } .week { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:680px) {
  .intro,.secondary { grid-template-columns:1fr; gap:10px; }
  .intro { margin:29px 0 16px; }
  .week { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .calendar-head,.utility { align-items:start; flex-direction:column; }
  .panel { padding:9px; }
  .metric { padding:7px; }
  .metric strong { font-size:22px; }
  .metric small { font-size:10px; }
  .top nav { gap:5px; font-size:11px; }
  .top .quiet { min-height:29px; font-size:11px; }
}
@media(max-width:460px) { .week { grid-template-columns:repeat(2,minmax(0,1fr)); } .day { min-height:105px; } }
@media(max-width:360px) { .shell { width:calc(100% - 22px); } .post-row { grid-template-columns:minmax(0,1fr) auto; } .post-row small { grid-row:2; } }
