:root { --ink:#202b28; --muted:#697770; --accent:#18715a; --line:#dde5df; --paper:#f6f8f6; --bs-primary:#18715a; --bs-link-color:#18715a; --bs-link-hover-color:#104c3c; }
* { box-sizing:border-box; letter-spacing:0; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px; }
a { text-decoration:none; }
.workspace { display:grid; grid-template-columns:232px minmax(0,1fr); min-height:100vh; }
.sidebar { background:#fff; border-right:1px solid var(--line); padding:26px 16px 20px; }
.brand-row { padding:0 9px 32px; }
.brand { display:flex; gap:11px; align-items:center; color:var(--ink); font-size:26px; font-weight:750; overflow-wrap:anywhere; }
.brand-mark { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; color:var(--accent); font-size:29px; }
.brand-dot { width:6px; height:6px; background:#d7a128; border-radius:50%; align-self:flex-end; margin-bottom:8px; }
.navigation { display:block !important; }
.nav-label { display:block; color:#77847e; font-size:10px; font-weight:700; padding:0 14px 12px; }
.nav-item { display:flex; align-items:center; gap:12px; padding:11px 13px; margin-bottom:4px; border-radius:5px; color:#5b6962; font-weight:550; overflow-wrap:anywhere; }
.nav-item i { font-size:17px; width:20px; flex-shrink:0; text-align:center; }
.nav-item:hover { background:#f1f5f2; color:#183a2c; }
.nav-item.active { background:#e8f1eb; color:#155e49; }
.sidebar-bottom { border-top:1px solid var(--line); margin:35px 12px 0; padding-top:20px; display:flex; flex-direction:column; gap:4px; }
.version-label { font-size:12px; font-weight:650; }
.main-shell { min-width:0; display:flex; flex-direction:column; }
.topbar { min-height:73px; padding:16px 40px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:12px; color:var(--muted); }
.topbar-login { display:flex; gap:8px; align-items:center; color:var(--ink); font-weight:600; }
.tiny { font-size:6px; vertical-align:middle; margin-right:8px; }
main { padding:36px 40px 48px; width:100%; max-width:1400px; margin:0 auto; flex:1; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:30px; }
.eyebrow { font-size:10px; font-weight:650; color:var(--muted); margin-bottom:8px; }
h1 { font-size:28px; font-weight:670; margin:0; overflow-wrap:anywhere; }
h2 { font-size:17px; font-weight:650; margin:0 0 20px; }
h3 { font-size:15px; font-weight:650; }
.environment-badge { border:1px solid #d9c889; background:#fcf8e7; color:#786327; font-size:10px; font-weight:700; padding:4px 8px; border-radius:4px; flex-shrink:0; }
.status-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line); background:#fff; margin-bottom:34px; }
.status-cell { padding:22px 24px; min-width:0; border-right:1px solid var(--line); }
.status-cell:last-child { border:0; }
.status-cell label,.metric-label { display:block; font-size:12px; color:var(--muted); margin-bottom:9px; }
.status-value { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:650; overflow-wrap:anywhere; }
.status-value i { color:var(--accent); }
.section-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.section-heading h2 { margin:0; }
.table-surface { background:#fff; border-block:1px solid var(--line); margin-bottom:28px; }
.table { margin:0; --bs-table-color:var(--ink); font-size:13px; }
.table th { background:#f0f4f1; color:#6b7870; font-size:11px; font-weight:600; padding:13px 18px; border-bottom:1px solid var(--line); white-space:nowrap; }
.table td { padding:16px 18px; vertical-align:middle; border-color:#edf0ed; max-width:440px; overflow-wrap:anywhere; }
.table tbody tr:last-child td { border-bottom:0; }
.module-name { display:flex; align-items:center; gap:12px; font-weight:600; min-width:165px; }
.module-icon { width:33px; height:33px; border-radius:6px; background:#e8f1eb; color:#18715a; display:grid; place-items:center; font-size:16px; flex-shrink:0; }
.module-icon.gold { background:#faf1d9; color:#896d24; }
.module-icon.blue { background:#eaf0f9; color:#496b9c; }
.module-icon.red { background:#f6e9e7; color:#a05b51; }
.state { display:inline-flex; align-items:center; gap:6px; font-size:11px; white-space:nowrap; color:#577164; }
.state::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
.state.waiting { color:#987732; }
.state.off { color:#88938d; }
.btn { font-size:13px; border-radius:5px; font-weight:550; padding:8px 13px; }
.btn i { margin-right:5px; }
.btn-primary { --bs-btn-bg:#18715a; --bs-btn-border-color:#18715a; --bs-btn-hover-bg:#115b47; --bs-btn-hover-border-color:#115b47; --bs-btn-active-bg:#104c3c; --bs-btn-active-border-color:#104c3c; }
.btn-outline-secondary { --bs-btn-color:#5e6a63; --bs-btn-border-color:#cfd8d1; --bs-btn-hover-bg:#edf2ee; --bs-btn-hover-color:#273b2d; --bs-btn-hover-border-color:#aebdb3; }
.icon-button { width:34px; height:34px; display:inline-grid; place-items:center; padding:0; }
.icon-button i { margin:0; }
.form-label { font-size:12px; font-weight:600; margin-bottom:7px; }
.form-control,.form-select { font-size:14px; border-radius:5px; border-color:#cdd8d0; min-height:40px; }
.form-control:focus,.form-select:focus { border-color:#5e9f87; box-shadow:0 0 0 3px #18715a18; }
textarea.form-control { resize:vertical; }
.form-area { max-width:660px; }
.form-area.narrow { max-width:430px; }
.form-section { border-top:1px solid var(--line); padding-top:24px; margin-top:28px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:24px; }
.quiet-link { font-size:12px; }
.split-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; }
.result-panel { border:1px solid var(--line); background:white; border-radius:6px; padding:24px; }
.result-panel dl { margin:0; }
.result-panel dt { color:var(--muted); font-size:12px; font-weight:500; margin-bottom:6px; }
.result-panel dd { font-size:19px; font-weight:650; padding-bottom:15px; margin-bottom:15px; border-bottom:1px solid var(--line); }
.result-panel dd:last-child { margin-bottom:0; padding-bottom:0; border:0; }
.empty-state { padding:48px 20px; text-align:center; color:var(--muted); }
.empty-state i { display:block; font-size:27px; color:#9aaa9f; margin-bottom:12px; }
.empty-state strong { color:#4f6356; display:block; font-size:14px; margin-bottom:7px; }
.empty-state p { font-size:12px; margin:0; }
.alert { border-radius:5px; font-size:13px; }
.site-footer { display:flex; justify-content:space-between; gap:16px; padding:18px 40px; border-top:1px solid var(--line); font-size:11px; color:#819087; }
.menu-toggle { display:none; }
.pagination-row { display:flex; justify-content:space-between; align-items:center; font-size:12px; margin-block:20px; }
.users-search { display:flex; align-items:end; gap:12px; max-width:660px; }
.users-search-field { flex:1; min-width:0; }
.users-table { min-width:680px; }
.form-control.sql-editor { font:13px/1.7 Consolas,monospace; min-height:240px; }
.confirmation-dialog { width:min(440px,calc(100% - 32px)); border:1px solid var(--line); border-radius:6px; padding:26px; color:var(--ink); }
.confirmation-dialog::backdrop { background:rgb(25 38 30 / 35%); }
.confirmation-dialog p { line-height:1.6; overflow-wrap:anywhere; }
.chart { display:flex; align-items:end; gap:6px; height:150px; padding:16px 0; overflow-x:auto; border-bottom:1px solid var(--line); margin-bottom:16px; }
.chart progress { width:18px; height:112px; writing-mode:vertical-lr; transform:rotate(180deg); accent-color:var(--accent); }
.chart-day { flex:1; min-width:22px; text-align:center; }
.chart-day span { font-size:9px; color:var(--muted); display:block; margin-top:5px; }
.skip-link:focus { position:absolute; background:white; padding:12px; z-index:100; }
code { color:#536b5c; font-size:12px; overflow-wrap:anywhere; }
@media (min-width:1600px) { main { padding-top:45px; } }
@media (max-width:1000px) { .workspace { grid-template-columns:205px minmax(0,1fr); } main { padding:28px 24px; } .topbar,.site-footer { padding-inline:24px; } .split-content { grid-template-columns:1fr; gap:26px; } .status-cell { padding:20px 15px; } .status-value { font-size:16px; } }
@media (max-width:720px) { .workspace { display:block; } .sidebar { padding:12px 18px; border-right:0; border-bottom:1px solid var(--line); } .brand-row { padding:0; display:flex; align-items:center; justify-content:space-between; gap:10px; } .brand { font-size:23px; } .menu-toggle { display:grid; } .navigation:not(.show) { display:none !important; } .navigation { padding-top:24px; } .sidebar-bottom { display:none; } .topbar { min-height:54px; padding:10px 20px; } main { padding:26px 20px; } h1 { font-size:24px; } .page-heading { margin-bottom:24px; } .status-strip { grid-template-columns:1fr; } .status-cell { display:flex; align-items:center; justify-content:space-between; gap:14px; border-right:0; border-bottom:1px solid var(--line); padding:15px 18px; } .status-cell label { margin:0; } .status-value { font-size:15px; } .form-grid { grid-template-columns:1fr; } .table td,.table th { padding:12px; } .site-footer { padding:16px 20px; } .environment-badge { display:none; } }
