:root{--bg:#f5f7fb;--panel:#fff;--ink:#172033;--muted:#687385;--line:#dfe5ee;--soft:#eef4fb;--brand:#2563eb;--brand-dark:#1d4ed8;--green:#16a34a;--amber:#d97706;--red:#dc2626;--shadow:0 16px 40px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#111827;color:#dbeafe;padding:22px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;color:white;text-decoration:none;font-weight:800;line-height:1.05}.brand small{color:#93c5fd;font-weight:650}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#06b6d4);font-size:22px}.side-nav{display:grid;gap:8px}.nav-item{color:#cbd5e1;text-decoration:none;padding:12px 14px;border-radius:12px;font-weight:650}.nav-item:hover,.nav-item.strong{background:#1f2937;color:white}.logout{margin-top:auto}.logout button{width:100%;background:#1f2937;color:#cbd5e1}.workspace{min-width:0}.topbar{height:94px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:2}.topbar h1{margin:2px 0 0;font-size:28px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:12px;font-weight:800;margin:0}.top-actions{display:flex;gap:10px}main{padding:30px;max-width:1420px}.panel,.stat,.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.panel{padding:22px;margin-bottom:22px}.panel-head,.calendar-head,.row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.panel h2,.calendar-head h2{margin:2px 0 0;font-size:24px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px;margin-bottom:22px}.stat{padding:18px}.stat span{display:block;color:var(--muted);font-weight:700}.stat strong{font-size:34px}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}.split.wide-left{grid-template-columns:minmax(0,1fr) 360px}.button,button{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:white;color:var(--ink);text-decoration:none;font-weight:750;cursor:pointer}.primary{background:var(--brand);border-color:var(--brand);color:white}.primary:hover{background:var(--brand-dark)}.ghost{background:var(--soft)}.wide{width:100%;text-align:center}label{display:grid;gap:7px;color:var(--muted);font-weight:750}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;background:white;padding:11px 12px;color:var(--ink);font:inherit}textarea{min-height:92px}.stack{display:grid;gap:13px}.quickbar,.library-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}.library-tools{grid-template-columns:minmax(260px,1fr) 180px 110px}.plan-row,.table-row,.library-row,.mini-plan,.song-tile{color:var(--ink);text-decoration:none}.plan-row{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;padding:13px;border-top:1px solid var(--line);border-radius:14px}.plan-row:hover,.library-row:hover,.table-row:hover,.song-tile:hover{background:var(--soft)}.date-badge{width:48px;height:48px;border-radius:14px;background:#dbeafe;color:#1d4ed8;display:grid;place-items:center;line-height:1}.date-badge small{font-size:11px}.plan-row small,.song-tile small,.mini-plan small,.table-row small{display:block;color:var(--muted);margin-top:3px}.song-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.song-tile{border:1px solid var(--line);border-radius:16px;padding:15px}.song-tile span,.tags{color:var(--muted);font-size:13px}.table-list,.library-list{display:grid}.table-row{display:grid;grid-template-columns:1fr 130px 90px 100px;gap:12px;align-items:center;padding:14px;border-top:1px solid var(--line)}.library-row{display:grid;grid-template-columns:minmax(220px,1fr) 80px 130px 80px minmax(120px,1fr);gap:12px;align-items:center;padding:14px;border-top:1px solid var(--line)}.status,.key-chip,.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#e0f2fe;color:#0369a1;padding:5px 10px;font-weight:800;font-size:12px}.status.big{font-size:14px}.key-chip{background:#ede9fe;color:#6d28d9}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}.day-names{background:transparent;border:0;margin-top:18px}.day-names span{padding:8px;color:var(--muted);font-weight:800;text-align:center}.cal-day{background:white;min-height:140px;padding:10px}.cal-day.dim{background:#f8fafc;color:#94a3b8}.cal-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.day-number{font-weight:850;margin-bottom:8px}.cal-event{display:block;text-decoration:none;background:#eff6ff;border-left:4px solid var(--brand);border-radius:10px;padding:8px;margin:6px 0;color:#1e3a8a}.cal-event small{display:block;color:#64748b}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.lyrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.music,.musicbox{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap}.musicbox{background:#0f172a;color:#e2e8f0;border-radius:16px;padding:16px;overflow:auto;min-height:120px}.meta-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);margin:12px 0 20px}.plan-item{border:1px solid var(--line);border-radius:18px;padding:16px;margin:12px 0}.plan-item-head{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center}.position{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e0f2fe;color:#0369a1;font-weight:900}.danger{background:#fee2e2;border-color:#fecaca;color:#991b1b}.empty,.muted{color:var(--muted)}.error{background:#fee2e2;color:#991b1b;border-radius:12px;padding:10px}.login-card{display:grid;place-items:center;min-height:70vh}.login-panel{max-width:470px;padding:34px}.login-panel h2{font-size:32px;margin:14px 0 8px}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.side-nav{grid-template-columns:repeat(2,1fr)}.topbar{height:auto;padding:18px;align-items:flex-start}.split,.split.wide-left,.lyrics-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}main{padding:16px}.table-row,.library-row{grid-template-columns:1fr}.calendar-grid{font-size:13px}.cal-day{min-height:110px}}

/* Song sheet display controls */
.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:24px 0 12px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}
.chart-toolbar h3{margin:2px 0 0}.chart-toolbar.compact{margin:12px 0;background:#f8fafc}.segmented-control{display:flex;gap:6px;padding:5px;border-radius:999px;background:#e2e8f0}.segmented-control button{border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:800;padding:9px 13px;box-shadow:none}.segmented-control button.active{background:var(--brand);color:white}.song-chart{display:grid;gap:14px}.chart-section{border:1px solid var(--line);border-radius:18px;background:#fbfdff;overflow:hidden}.section-label{padding:10px 14px;border-bottom:1px solid var(--line);background:#f8fafc;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.chartbox{border:0;border-radius:0;margin:0;box-shadow:none;background:white;min-height:80px}.song-chart[data-mode="lyrics"] .chord-section{display:none}.song-chart[data-mode="lyrics"] .lyric-section .section-label::after{content:" only"}.plan-chart{margin-top:10px}.song-in-plan summary{cursor:pointer;font-weight:800;color:var(--brand);padding:10px 0}.song-notes{white-space:pre-wrap}.top-actions form{margin:0}@media(max-width:720px){.chart-toolbar{align-items:stretch}.segmented-control{width:100%;display:grid;grid-template-columns:1fr 1fr}.segmented-control button{width:100%}.chartbox{font-size:15px;line-height:1.55}}


/* PDF-first song sheet */
.pdf-toolbar{margin-top:24px}.pdf-frame-wrap{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#0f172a;box-shadow:var(--shadow);height:min(78vh,900px);min-height:620px}.pdf-frame{width:100%;height:100%;border:0;background:white}.plan-pdf{height:720px;min-height:560px;margin-top:12px}.pdf-action-row{display:flex;justify-content:flex-end;margin:10px 0}.pdf-empty{padding:28px}.extracted-text{margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#f8fafc}.extracted-text summary{cursor:pointer;font-weight:800;color:var(--brand)}@media(max-width:720px){.pdf-frame-wrap{height:72vh;min-height:520px;border-radius:14px}.plan-pdf{height:68vh;min-height:480px}.pdf-action-row{justify-content:stretch}.pdf-action-row .button{width:100%;text-align:center}}


/* Dashboard/plans simplification */
.mini-calendar{display:grid;gap:6px}.mini-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.mini-week.head span{text-align:center;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.mini-day{min-height:72px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;padding:9px;display:flex;flex-direction:column;gap:6px}.mini-day:hover{border-color:var(--brand);box-shadow:0 8px 20px rgba(37,99,235,.12)}.mini-day.muted{opacity:.45}.mini-day.today{outline:2px solid var(--brand)}.mini-day.has-plan{background:#eff6ff}.mini-day small{color:var(--brand);font-weight:800}.action-row{display:flex;align-items:center;gap:10px}.row-main{flex:1;display:grid;grid-template-columns:2fr 1fr 1fr auto 1fr;gap:14px;align-items:center;color:inherit;text-decoration:none}.library-row.action-row{display:flex}.library-row .row-main{grid-template-columns:2fr auto auto auto 1fr}.table-row.action-row{grid-template-columns:none}.danger{background:var(--red)!important;color:#fff!important}.form-pdf{height:620px;min-height:520px;margin:12px 0 18px}@media(max-width:900px){.row-main,.library-row .row-main{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.action-row{align-items:stretch;flex-direction:column}.mini-day{min-height:58px;padding:7px}.mini-day small{font-size:11px}.form-pdf{height:60vh;min-height:420px}}
