*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:#f2eee3;color:#2b2620;font-family:DM Sans,system-ui,sans-serif}.admin-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.admin-sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:24px;border-right:1px solid #e3dac6;background:#fffdf9}.admin-brand{margin:0 0 24px;font-family:Newsreader,Georgia,serif;font-size:30px;font-weight:600}.admin-sidebar nav{display:grid;grid-gap:8px;gap:8px}.admin-sidebar a{border-radius:12px;color:#5c5448;font-weight:700;padding:11px 12px;text-decoration:none}.admin-sidebar a.active{background:#e6ede2;color:#3c5638}.admin-main{padding:28px}.admin-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.admin-title h1{margin:0;font-family:Newsreader,Georgia,serif;font-size:42px;font-weight:600}.admin-title p,.muted{color:#6f6657}.signed-in{margin:8px 0 0;font-family:DM Sans,system-ui,sans-serif;font-size:12px;text-transform:uppercase}.search{width:min(420px,100%);border:1px solid #dcd3c0;border-radius:12px;background:#fff;padding:12px 14px}.admin-grid,.metric-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.metric,.panel{border:1px solid #e3dac6;border-radius:14px;background:#fffdf9;box-shadow:0 8px 24px rgba(60,50,30,.05)}.metric{padding:18px}.metric span{color:#8a8071;font-family:DM Sans,system-ui,sans-serif;font-size:11px;text-transform:uppercase}.metric strong{display:block;margin-top:8px;font-family:Newsreader,Georgia,serif;font-size:34px;font-weight:600}.panel{margin-top:18px;overflow:hidden}.panel header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #efe8da}.panel h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:24px;font-weight:600}table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid #f1ebde;padding:12px 18px;text-align:left;vertical-align:top}th{color:#8a8071;font-weight:500}.badge,th{font-family:DM Sans,system-ui,sans-serif;font-size:11px;text-transform:uppercase}.badge{display:inline-flex;border-radius:999px;background:#e6ede2;color:#3c5638;padding:5px 9px}.badge.warn{background:#f0eadd;color:#6f6657}.badge.danger{background:#f7e4df;color:#9f3f33}.action-row{display:flex;gap:8px;flex-wrap:wrap}button{border:1px solid #dcd3c0;border-radius:10px;background:#fff;color:#3a352d;cursor:pointer;font-weight:700;min-height:34px;padding:0 10px}button.primary{border-color:#4e6e4a;background:#4e6e4a;color:#fff}button:disabled{cursor:not-allowed;opacity:.55}.admin-login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(78,110,74,.12),rgba(255,253,249,.86)),#f2eee3}.admin-login-panel{display:grid;grid-gap:22px;gap:22px;width:min(640px,100%);border:1px solid #e3dac6;border-radius:18px;background:#fffdf9;box-shadow:0 18px 48px rgba(60,50,30,.1);padding:clamp(22px,5vw,36px)}.admin-login-panel h1{margin:0;font-family:Newsreader,Georgia,serif;font-size:clamp(38px,6vw,58px);font-weight:600;line-height:1}.admin-login-panel p{color:#5c5448;line-height:1.55}.eyebrow{margin:0 0 10px;color:#4e6e4a;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.eyebrow,.meta{font-family:DM Sans,system-ui,sans-serif}.meta{color:#8a8071;font-size:11px}.auth-provider-grid{display:grid;grid-gap:12px;gap:12px}.auth-provider-button,.dev-login-panel button{min-height:52px;border-radius:14px;font-weight:800}.auth-provider-button:first-child,.dev-login-panel button{border-color:#4e6e4a;background:#4e6e4a;color:#fff}.dev-login-panel{display:grid;grid-gap:14px;gap:14px;border:1px solid #efe8da;border-radius:16px;background:#f6f0e6;padding:18px}.dev-login-panel h2{margin:0 0 6px;font-family:Newsreader,Georgia,serif;font-size:28px;font-weight:600}.dev-login-panel label{display:grid;grid-gap:7px;gap:7px}.dev-login-panel input{width:100%;border:1px solid #dcd3c0;border-radius:12px;background:#fff;color:#2b2620;padding:13px 14px}@media (max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}}