:root{--bg: #f3f1ec;--bg-elevated: #fffcf7;--ink: #1c2430;--muted: #5b6675;--line: #d7d2c8;--accent: #0f6b5c;--accent-ink: #07352e;--danger: #9b2c2c;--warn: #8a6d1d;--ok: #1f6b3a;--shadow: 0 12px 40px rgba(28, 36, 48, .08);font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(15,107,92,.08),transparent 40%),linear-gradient(180deg,#f7f4ee 0%,var(--bg) 100%);line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}h1,h2,.brand{font-family:"IBM Plex Serif",Georgia,serif;font-weight:600;letter-spacing:-.02em}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--accent)}.app-shell{max-width:1100px;margin:0 auto;padding:1.5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.brand{font-size:1.5rem;margin:0}.nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav button,.btn{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);border-radius:10px;padding:.55rem .9rem}.nav button.active,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.btn:disabled{opacity:.55;cursor:not-allowed}.panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:1.25rem}.panel+.panel{margin-top:1rem}.panel h2{margin:0 0 1rem;font-size:1.25rem}.grid-form{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}label{display:grid;gap:.35rem;font-size:.92rem;color:var(--muted)}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:#fff;color:var(--ink)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:.85rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.78rem;border:1px solid var(--line)}.badge.published{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.badge.draft,.badge.status-pending{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}.badge.status-approved{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.badge.status-rejected{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0 0}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%)}.login-card form{display:grid;gap:.9rem}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.checkbox-row{display:flex;align-items:center;gap:.55rem;grid-column:1 / -1}.checkbox-row input{width:auto}.update-panel{border-color:color-mix(in srgb,var(--accent, #e8a54b) 35%,var(--line))}.stack{display:grid;gap:.75rem}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.stats-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem}.stat-label{margin:0;font-size:.85rem;color:var(--muted)}.stat-value{margin:.35rem 0 0;font-family:"IBM Plex Serif",Georgia,serif;font-size:2.15rem;line-height:1.1;letter-spacing:-.03em;color:var(--accent-ink)}.stat-hint{margin:.4rem 0 0;font-size:.8rem}.stats-meta{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line)}
