:root{--cream:#fff7ec;--paper:#fff;--peach:#ffe0c2;--brick:#b8432a;--brick-dark:#8f3220;--ink:#4a2e1f;--ink-soft:#6e5244;--line:#f0dcc6;--green:#2f7a4f;--green-bg:#e3f3e8;--blue:#2d5c8f;--blue-bg:#e2ecf8;--grey-bg:#efe8df;--radius:16px;--shadow:0 10px 24px #5a2d0a1a}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);margin:0;font:400 15px/1.55 Nunito,Segoe UI,system-ui,sans-serif}h1,h2,h3{margin:0;font-family:"Baloo 2",Nunito,sans-serif;line-height:1.15}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--brick);outline-offset:2px;border-radius:6px}.topbar{background:var(--paper);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:24px;padding:12px max(16px,50% - 590px);display:flex;position:sticky;top:0}.brand{color:var(--brick);align-items:center;gap:10px;font:800 22px/1 "Baloo 2",sans-serif;display:flex}.brand img{border-radius:10px;width:36px;height:36px}.tabs{flex:1;gap:4px;display:flex}.tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 14px;font-weight:800}.tab[aria-selected=true]{background:var(--peach);color:var(--ink)}main{width:min(1180px,100% - 32px);margin:24px auto 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;display:flex}.page-head h1{color:var(--brick);font-size:30px}.muted{color:var(--ink-soft)}.small{font-size:13px}.btn{cursor:pointer;background:var(--brick);color:#fff;white-space:nowrap;border:0;border-radius:999px;padding:8px 16px;font-weight:800}.btn:hover{background:var(--brick-dark)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{color:var(--brick);box-shadow:inset 0 0 0 1.5px var(--brick);background:0 0}.btn.ghost:hover{background:var(--peach)}.btn.danger{color:#a0261b;background:0 0;box-shadow:inset 0 0 0 1.5px #d9a39b}.btn.danger:hover{background:#fbe4e1}.input{border:1.5px solid var(--line);background:var(--paper);border-radius:12px;min-width:0;padding:8px 12px}.input:focus{border-color:var(--brick);outline:none}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);background:#fffaf3;font-size:12px}tr:last-child td{border-bottom:0}td.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.badge{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-block}.badge.live{background:var(--green-bg);color:var(--green)}.badge.scheduled{background:var(--blue-bg);color:var(--blue)}.badge.unpublished,.badge.free{background:var(--grey-bg);color:var(--ink-soft)}.badge.play{background:var(--peach);color:var(--brick-dark)}.badge.admin{background:var(--green-bg);color:var(--green)}.badge.reviewer{background:var(--blue-bg);color:var(--blue)}.pager{justify-content:flex-end;align-items:center;gap:12px;padding:12px 14px;display:flex}.error{color:#a0261b;font-weight:700}.notice{color:var(--green);font-weight:700}.login{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login .card{gap:14px;width:min(400px,100%);padding:28px;display:grid}.login h1{color:var(--brick);font-size:28px}.field{gap:6px;font-weight:700;display:grid}.books{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;display:grid}.book{grid-template-columns:96px 1fr;gap:14px;padding:14px;display:grid}.book img,.book .no-cover{object-fit:cover;background:var(--peach);border-radius:10px;width:96px;height:128px}.book h3{font-size:19px}.book .meta{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:4px 0 10px;display:flex}.book .when{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.book .when .input{padding:6px 10px}.book .row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.modal-backdrop{z-index:10;background:#4a2e1f59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{gap:14px;width:min(460px,100%);padding:24px;display:grid}.modal h2{color:var(--brick);font-size:22px}.modal .row{justify-content:flex-end;gap:8px;display:flex}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px 16px}.books{grid-template-columns:1fr}}
