:root{--bg:#0a0d13;--surface-0:#0e1219;--surface-1:#141922;--surface-2:#1b212c;--surface-3:#232a37;--border:#ffffff14;--border-strong:#ffffff24;--text-primary:#e9edf4;--text-secondary:#8b93a3;--text-tertiary:#5b6272;--accent:#4d8dff;--accent-dim:#4d8dff24;--accent-strong:#6fa3ff;--success:#34c98c;--success-dim:#34c98c24;--warning:#f0b429;--warning-dim:#f0b42924;--danger:#f2626a;--danger-dim:#f2626a24;--radius-s:8px;--radius-m:12px;--radius-l:16px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:20px;--space-5:32px;--space-6:48px;--font-display:"Manrope", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"IBM Plex Mono", monospace;--sidebar-width:248px;--shadow-modal:0 24px 60px #00000080}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0}p{margin:0}a{color:var(--accent-strong)}.mono{font-family:var(--font-mono)}button,input,select,textarea{color:var(--text-primary);font-family:inherit;font-size:14px}button{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-s);cursor:pointer;padding:8px 14px;transition:background .12s,border-color .12s}button:hover{background:var(--surface-3)}button:active{transform:translateY(.5px)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}button.danger:hover{background:var(--danger-dim)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-2)}input,select,textarea{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-s);width:100%;padding:9px 12px}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}textarea{resize:vertical;min-height:72px}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface-0);border-right:1px solid var(--border);height:100vh;padding:var(--space-4) var(--space-3);gap:var(--space-4);flex-direction:column;display:flex;position:sticky;top:0}.sidebar__brand{padding:0 var(--space-2);align-items:center;gap:10px;display:flex}.sidebar__brand-mark{border-radius:var(--radius-s);background:linear-gradient(135deg, var(--accent), #2a5fd6);width:34px;height:34px;font-family:var(--font-display);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:flex}.sidebar__brand-name{font-family:var(--font-display);font-size:15.5px;font-weight:700;line-height:1.2}.sidebar__brand-sub{color:var(--text-secondary);font-size:11.5px}.sidebar__close{margin-left:auto;padding:6px;display:none}.sidebar__nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__item{color:var(--text-secondary);border-radius:var(--radius-s);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:11px;width:100%;padding:10px 12px;font-size:13.8px;display:flex}.sidebar__item:hover{background:var(--surface-1);color:var(--text-primary)}.sidebar__item--active{background:var(--accent-dim);color:var(--accent-strong);font-weight:600}.sidebar__logout{color:var(--text-secondary);justify-content:flex-start;align-items:center;gap:10px;font-size:13px;display:flex}.sidebar-scrim,.topbar{display:none}.page{padding:var(--space-5) var(--space-6);max-width:1280px}.page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page__title{font-size:25px;font-weight:700}.page__subtitle{color:var(--text-secondary);margin-top:4px;font-size:13.5px}@media (width<=900px){.app-shell{grid-template-columns:1fr}.topbar{z-index:15;background:var(--surface-0);border-bottom:1px solid var(--border);padding:14px var(--space-4);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar__title{font-family:var(--font-display);font-size:15px;font-weight:700}.sidebar{z-index:30;width:260px;transition:transform .2s;position:fixed;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0);box-shadow:30px 0 60px #00000080}.sidebar__close{display:inline-flex}.sidebar-scrim{z-index:25;background:#00000080;display:block;position:fixed;inset:0}.page{padding:var(--space-4)}.page__title{font-size:21px}}.status{white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.status__dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 0 3px #0000}.status--published .status__dot{background:var(--success);box-shadow:0 0 0 3px var(--success-dim)}.status--on_review .status__dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);animation:1.8s infinite pulse}.status--needs_revision .status__dot{background:var(--warning);box-shadow:0 0 0 3px var(--warning-dim)}.status--rejected .status__dot{background:var(--danger);box-shadow:0 0 0 3px var(--danger-dim)}.status--active .status__dot{background:var(--success);box-shadow:0 0 0 3px var(--success-dim)}.status--banned .status__dot{background:var(--danger);box-shadow:0 0 0 3px var(--danger-dim)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.stat-grid{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-m);padding:var(--space-4)}.stat-card__label{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.stat-card__value{font-family:var(--font-mono);font-size:26px;font-weight:500}.stat-card__value.accent{color:var(--accent-strong)}.stat-card__value.warning{color:var(--warning)}.stat-card__value.danger{color:var(--danger)}.stat-card__hint{color:var(--text-tertiary);margin-top:4px;font-size:11.5px}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-m);margin-bottom:var(--space-4);overflow:hidden}.panel__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;font-size:14px;font-weight:600;display:flex}.panel__body{padding:var(--space-4)}.data-table-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:13.3px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11px}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.data-table tbody tr{cursor:pointer;transition:background .1s}.data-table tbody tr:hover{background:var(--surface-2)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .num{font-family:var(--font-mono);color:var(--text-secondary)}.data-table .id-cell{font-family:var(--font-mono);color:var(--text-tertiary);font-size:12px}.toolbar{margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-input{flex:1;min-width:220px;position:relative}.search-input svg{color:var(--text-tertiary);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input input{padding-left:36px}.chip-select{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-s);gap:4px;padding:3px;display:flex}.chip-select button{color:var(--text-secondary);background:0 0;border:none;padding:6px 12px;font-size:12.8px}.chip-select button.active{background:var(--accent);color:#fff;font-weight:600}.tag-pill{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);margin:2px 4px 2px 0;padding:3px 10px;font-size:11.5px;display:inline-block}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--text-secondary)}.empty-state__title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:6px;font-size:16px}.spinner{border:2.5px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{padding:var(--space-6) 0;justify-content:center;align-items:center;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#04060a99;justify-content:flex-end;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface-0);border-left:1px solid var(--border);width:min(560px,100vw);height:100vh;box-shadow:var(--shadow-modal);flex-direction:column;animation:.18s slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.modal-panel__header{padding:var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-panel__body{padding:var(--space-4);flex:1;overflow-y:auto}.modal-panel__footer{padding:var(--space-4);border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;display:flex}.confirm-overlay{z-index:60;padding:var(--space-4);background:#04060a99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-card{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-m);padding:var(--space-4);width:100%;max-width:380px;box-shadow:var(--shadow-modal)}.confirm-card__title{font-family:var(--font-display);margin-bottom:8px;font-size:16px;font-weight:700}.confirm-card__body{color:var(--text-secondary);margin-bottom:var(--space-4);font-size:13.5px}.confirm-card__actions{justify-content:flex-end;gap:10px;display:flex}.field{margin-bottom:var(--space-3)}.field label{color:var(--text-secondary);margin-bottom:5px;font-size:12px;display:block}.form-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.form-grid{grid-template-columns:1fr}}.error-banner{background:var(--danger-dim);color:var(--danger);border-radius:var(--radius-s);margin-bottom:var(--space-3);border:1px solid #f2626a4d;padding:10px 14px;font-size:13px}
