:root{
  --navy-canvas: #081221;
  --navy-sidebar: #0a1526;
  --navy-bar: #0b192c;
  --navy-raised: #10243d;
  --navy-line: rgba(151, 179, 219, 0.18);
  --navy-line-strong: rgba(151, 179, 219, 0.32);
  --navy-ink: #eef3fb;
  --navy-ink-muted: #a8bad4;
  --surface: #ffffff;
  --surface-muted: #f4f7fb;
  --surface-line: #e2e8f1;
  --ink: #0d1a2b;
  --ink-soft: #3c4f66;
  --ink-muted: #55697f;
  --brand: #3d82f6;
  --brand-strong: #1d4ed8;
  --brand-ink: #1749b0;
  --brand-soft: #e8f0ff;
  --brand-line: #c3d8fb;
  --ok-ink: #0d6b45;
  --ok-soft: #e4f5ec;
  --ok-line: #b7e2cc;
  --warn-ink: #8a5206;
  --warn-soft: #fcf0dc;
  --warn-line: #f0d5a8;
  --danger-ink: #9d1c1c;
  --danger-soft: #fbe9e9;
  --danger-line: #f0c2c2;
  --neutral-ink: #45566c;
  --neutral-soft: #eef2f7;
  --neutral-line: #dbe3ed;
  --ok-on-dark: #4fd193;
  --warn-on-dark: #f0be5e;
  --danger-on-dark: #f2856c;
  --neutral-on-dark: #a8bad4;
  --focus: #7ab0ff;
  --radius: 10px;
  --radius-sm: 8px;
  --radius-pill: 999px;
  --shadow-card: 0 1px 2px rgba(3, 10, 22, 0.55), 0 8px 24px -16px rgba(3, 10, 22, 0.7);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 15px;
  --text-lg: 22px;
  --text-xl: 26px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 14px;
  --space-4: 20px;
  --space-5: 28px;
  --sidebar-width: 264px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--surface-muted);color:var(--ink);
font:var(--text-base)/1.6 var(--font)}
a{color:var(--brand-ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}
.skip{position:absolute;left:-9999px;top:0;background:var(--brand);color:#04101f;
padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-weight:600;z-index:10}
.skip:focus{left:var(--space-3);top:var(--space-3)}
.book-band{background:var(--navy-canvas);color:var(--navy-ink);
padding:var(--space-4) var(--space-4) 52px}
.book-band .brand{display:flex;align-items:center;gap:var(--space-2);
font-weight:700;letter-spacing:.02em;max-width:720px;margin:0 auto}
.book-shell{max-width:720px;margin:-36px auto var(--space-5);padding:0 var(--space-3)}
.book-card{background:var(--surface);border:1px solid var(--surface-line);
border-radius:14px;padding:var(--space-5);
box-shadow:0 1px 2px rgba(13,26,43,.06),0 12px 32px -20px rgba(13,26,43,.25)}
.book-card h1{margin:0 0 6px;font-size:var(--text-xl)}
.book-card h2{margin:var(--space-4) 0 6px;font-size:var(--text-lg)}
.book-sub{color:var(--ink-muted);margin:0 0 var(--space-4)}
.book-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-4);
color:var(--ink-soft);font-size:var(--text-sm);align-items:center}
.book-pill{display:inline-flex;align-items:center;gap:6px;
border:1px solid var(--surface-line);border-radius:var(--radius-pill);
padding:4px var(--space-3);background:var(--surface-muted)}
.cal-head{display:flex;justify-content:space-between;align-items:center;
margin:0 0 var(--space-3)}
.cal-title{font-weight:600}
.cal-nav{display:inline-block;padding:6px var(--space-3);border-radius:var(--radius-sm);
border:1px solid var(--surface-line);color:var(--brand-ink);text-decoration:none;
font-size:var(--text-sm)}
.cal-nav.disabled{color:var(--ink-muted);border-style:dashed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;list-style:none;
margin:0;padding:0}
.cal-dow{color:var(--ink-muted);font-size:var(--text-xs);text-transform:uppercase;
letter-spacing:.05em;text-align:center;padding:4px 0}
.cal-day{min-height:44px;display:flex;align-items:center;justify-content:center;
border-radius:var(--radius-sm);color:var(--ink-muted);font-size:var(--text-sm)}
.cal-day a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
min-height:44px;border:1px solid var(--brand-line);border-radius:var(--radius-sm);
background:var(--brand-soft);color:var(--brand-ink);font-weight:600;text-decoration:none}
.cal-day a:hover{background:var(--brand);color:#ffffff;border-color:var(--brand)}
.slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
gap:var(--space-2);list-style:none;margin:0;padding:0}
.slot-list a{display:block;text-align:center;padding:12px var(--space-2);
border:1px solid var(--brand-line);border-radius:var(--radius-sm);
background:var(--brand-soft);color:var(--brand-ink);font-weight:600;text-decoration:none}
.slot-list a:hover{background:var(--brand);color:#ffffff;border-color:var(--brand)}
.book-form label{display:block;margin:var(--space-3) 0 5px;color:var(--ink-soft);
font-size:var(--text-sm);font-weight:600}
.book-form input,.book-form textarea{width:100%;padding:11px 12px;border-radius:var(--radius-sm);
border:1px solid var(--surface-line);background:var(--surface);color:var(--ink);font:inherit}
.book-form .field-hint{color:var(--ink-muted);font-size:var(--text-sm);margin:0 0 var(--space-1)}
.book-form .field-error{color:var(--danger-ink);font-size:var(--text-sm);margin:var(--space-1) 0 0}
.book-form button{font:inherit;background:var(--brand-strong);color:#ffffff;border:0;
border-radius:var(--radius-sm);padding:12px var(--space-4);cursor:pointer;font-weight:600;
margin-top:var(--space-4);width:100%}
.book-form button:hover{background:var(--brand-ink)}
.book-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0 0}
.book-actions a{display:inline-block;padding:10px var(--space-3);
border:1px solid var(--surface-line);border-radius:var(--radius-sm);color:var(--brand-ink);
text-decoration:none;font-weight:600;font-size:var(--text-sm)}
.book-facts{margin:0 0 var(--space-3);padding:0;border:1px solid var(--surface-line);
border-radius:var(--radius);overflow:hidden}
.book-facts div{display:flex;justify-content:space-between;gap:var(--space-3);
padding:10px var(--space-3);border-bottom:1px solid var(--surface-line)}
.book-facts div:last-child{border-bottom:none}
.book-facts dt{color:var(--ink-muted);font-size:var(--text-sm);margin:0}
.book-facts dd{margin:0;font-weight:600;text-align:right}
.book-note{color:var(--ink-muted);font-size:var(--text-sm);margin-top:var(--space-3)}
.book-alert{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-ink);
padding:10px 12px;border-radius:var(--radius-sm);margin:0 0 var(--space-3);font-size:14px}
.book-ok{display:inline-flex;align-items:center;gap:8px;color:var(--ok-ink);
background:var(--ok-soft);border:1px solid var(--ok-line);border-radius:var(--radius-pill);
padding:6px var(--space-3);font-weight:600;margin:0 0 var(--space-3)}
.book-empty{border:1px dashed var(--surface-line);border-radius:var(--radius);
padding:var(--space-4);color:var(--ink-muted);text-align:center}
@media (max-width: 620px){
.book-card{padding:var(--space-4)}
.slot-list{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
}