@import url("admin-polish.css");
@import url("admin-responsive.css");
[hidden] { display: none !important; }
:root { --admin-bg:#f6f7f9; --admin-surface:#ffffff; --admin-text:#172033; --admin-muted:#6b7689; --admin-border:#d8dee8; --admin-primary:#2563eb; --admin-primary-soft:#eef4ff; --admin-success:#16a34a; --admin-warning:#f59e0b; --admin-danger:#dc2626; --admin-nav:#172033; --admin-nav-text:#edf1f6; --admin-shadow:0 12px 32px rgba(23,32,51,.08); --admin-radius:10px; --admin-font-sans:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif; --admin-font-mono:"Cascadia Mono",ui-monospace,Menlo,monospace; --admin-leading-tight:1.25; --admin-leading-body:1.5; --admin-leading-relaxed:1.6; }
* { box-sizing:border-box; } body { margin:0; background:var(--admin-bg); color:var(--admin-text); font:14px/var(--admin-leading-body) var(--admin-font-sans); } button,input,select,textarea { font:inherit; } p { line-height:var(--admin-leading-body); } button { cursor:pointer; } button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible { outline:3px solid rgba(37,99,235,.28); outline-offset:2px; }
.admin-shell { display:grid; min-height:100vh; grid-template-columns:236px 1fr; }.sidebar { display:flex; position:sticky; top:0; height:100vh; flex-direction:column; padding:24px 14px; background:var(--admin-nav); color:var(--admin-nav-text); }.brand { padding:0 10px 24px; border-bottom:1px solid rgba(255,255,255,.13); color:#fff; font-size:17px; font-weight:700; }.brand small { display:block; margin-top:4px; color:#93a7c0; font-size:11px; font-weight:400; }.side-nav { display:grid; gap:4px; margin-top:22px; }.side-nav a { display:flex; align-items:center; gap:10px; min-height:42px; padding:0 10px; border-radius:7px; color:inherit; text-decoration:none; }.side-nav a:hover,.side-nav a.active { background:#1e3c61; color:#fff; }.side-nav svg,.utility svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }.side-footer { margin-top:auto; padding:14px 10px 0; border-top:1px solid rgba(255,255,255,.13); color:#93a7c0; font-size:12px; }.workspace { min-width:0; }.topbar { display:flex; height:68px; align-items:center; gap:18px; padding:0 32px; border-bottom:1px solid var(--admin-border); background:var(--admin-surface); }.crumb { color:var(--admin-muted); }.project-picker { margin-right:auto; color:var(--admin-text); font-weight:600; }.utility { display:flex; align-items:center; gap:12px; }.utility button { display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--admin-border); border-radius:7px; background:#fff; color:var(--admin-text); }.user { display:flex; align-items:center; gap:8px; font-size:13px; }.avatar { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:var(--admin-primary-soft); color:var(--admin-primary); font-weight:700; }.main { width:100%; max-width:none; padding:30px 32px 48px; }.page-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }.page-head h1 { margin:0; font-size:28px; letter-spacing:0; }.page-head p { margin:6px 0 0; color:var(--admin-muted); }.primary,.secondary { min-height:40px; padding:0 15px; border:1px solid var(--admin-primary); border-radius:7px; background:var(--admin-primary); color:#fff; font-weight:600; }.secondary { border-color:var(--admin-border); background:#fff; color:var(--admin-text); }.primary:hover { background:#1d4ed8; }.card { border:1px solid var(--admin-border); border-radius:var(--admin-radius); background:var(--admin-surface); box-shadow:var(--admin-shadow); }.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.metric { padding:18px; }.metric span { color:var(--admin-muted); font-size:12px; }.metric strong { display:block; margin-top:8px; font-size:30px; font-variant-numeric:tabular-nums; }.metric em { display:block; margin-top:5px; color:var(--admin-muted); font-size:12px; font-style:normal; }.metric.warning strong { color:var(--admin-warning); }.metric.danger strong { color:var(--admin-danger); }.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.9fr); gap:18px; margin-top:18px; }.card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px; border-bottom:1px solid var(--admin-border); }.card-head h2 { margin:0; font-size:16px; }.card-head a { color:var(--admin-primary); font-size:13px; text-decoration:none; }.table { width:100%; border-collapse:collapse; text-align:left; }.table th { padding:10px 18px; color:var(--admin-muted); font-size:12px; font-weight:500; }.table td { padding:14px 18px; border-top:1px solid var(--admin-border); }.table tr:hover td { background:#f9fbff; }.table a { color:var(--admin-text); font-weight:600; text-decoration:none; }.status { display:inline-flex; align-items:center; min-height:23px; padding:0 8px; border-radius:999px; font-size:12px; font-weight:600; }.status.doing { background:#eaf1ff; color:#245ac4; }.status.warn { background:#fff4dc; color:#9a6500; }.status.done { background:#e7f7ed; color:#14713f; }.status.danger { background:#fce9e7; color:#ad302a; }.risk-list { padding:4px 18px 14px; }.risk { padding:14px 0; border-bottom:1px solid var(--admin-border); }.risk:last-child { border-bottom:0; }.risk strong { display:block; font-size:13px; }.risk p { margin:4px 0 0; color:var(--admin-muted); font-size:12px; }.risk .status { margin-top:8px; }.chart { display:grid; grid-template-columns:repeat(7,1fr); align-items:end; height:170px; gap:12px; padding:18px; }.bar { position:relative; min-height:18px; border-radius:5px 5px 0 0; background:var(--admin-primary); }.bar span { position:absolute; top:calc(100% + 6px); left:50%; color:var(--admin-muted); font-size:11px; transform:translateX(-50%); }.filters { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 16px; }.filters input,.filters select { height:40px; padding:0 11px; border:1px solid var(--admin-border); border-radius:7px; background:#fff; color:var(--admin-text); }.filters input { width:280px; }.filters button { min-height:40px; padding:0 13px; border:1px solid var(--admin-border); border-radius:7px; background:#fff; color:var(--admin-text); }.filters button.active { border-color:var(--admin-primary); background:var(--admin-primary-soft); color:var(--admin-primary); font-weight:600; }.table-wrap { overflow:hidden; }.row-actions { display:flex; gap:8px; }.text-button { border:0; background:none; color:var(--admin-primary); font-size:13px; }.empty-row[hidden] { display:none; }.empty-row td { padding:32px; color:var(--admin-muted); text-align:center; }.knowledge-layout { display:grid; grid-template-columns:260px 1fr; gap:18px; }.folder-list { padding:8px; }.folder-list button { display:flex; width:100%; min-height:40px; align-items:center; border:0; border-radius:6px; background:transparent; color:var(--admin-text); text-align:left; }.folder-list button.active,.folder-list button:hover { background:var(--admin-primary-soft); color:var(--admin-primary); }.detail-panel { padding:18px; }.detail-panel h2 { margin:0; font-size:18px; }.detail-panel p { color:var(--admin-muted); }.notice { margin:14px 0; padding:12px; border-left:3px solid var(--admin-warning); background:#fff8e8; color:#725100; font-size:13px; }.toast { position:fixed; right:28px; bottom:28px; z-index:5; padding:11px 14px; border-radius:7px; background:var(--admin-text); color:#fff; opacity:0; pointer-events:none; transform:translateY(8px); transition:.18s ease; }.toast.show { opacity:1; transform:translateY(0); }

/* Shared typography rhythm for every management page. */
h1, h2, h3 { font-family:var(--admin-font-sans); line-height:var(--admin-leading-tight); }

.ledger-detail-dialog { width:min(620px,calc(100vw - 32px)); padding:0; border:1px solid var(--admin-border); border-radius:var(--admin-radius); color:var(--admin-text); background:var(--admin-surface); box-shadow:0 24px 64px rgba(23,32,51,.24); }.ledger-detail-dialog::backdrop { background:rgba(23,32,51,.42); }.ledger-detail-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 22px; border-bottom:1px solid var(--admin-border); background:var(--admin-primary-soft); }.ledger-detail-dialog-head span { color:var(--admin-primary); font-size:12px; font-weight:700; }.ledger-detail-dialog-head h2 { margin:4px 0 0; font-size:19px; }.icon-close { display:grid; width:32px; height:32px; place-items:center; border:0; border-radius:6px; background:transparent; color:var(--admin-muted); font-size:22px; line-height:1; }.icon-close:hover { background:rgba(37,99,235,.1); color:var(--admin-primary); }.ledger-detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; padding:4px 22px; }.ledger-detail-list div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:10px; min-height:48px; align-items:center; border-bottom:1px solid var(--admin-border); }.ledger-detail-list div:nth-last-child(1) { grid-column:1 / -1; }.ledger-detail-list dt { color:var(--admin-muted); font-size:13px; }.ledger-detail-list dd { margin:0; overflow-wrap:anywhere; font-weight:600; }.ledger-detail-dialog-actions { display:flex; justify-content:flex-end; padding:16px 22px; }


/* Runtime project context shared by all project-scoped pages. */
.project-picker.runtime-project-switcher { min-width:220px; max-width:min(360px,36vw); }
.project-picker.runtime-project-switcher select { width:100%; height:38px; padding:0 34px 0 11px; border:1px solid var(--admin-border); border-radius:7px; background:var(--admin-surface); color:var(--admin-text); font-weight:600; text-overflow:ellipsis; }
.side-nav a.project-nav-disabled { opacity:.45; cursor:not-allowed; }
.runtime-project-required { display:grid; min-height:220px; place-content:center; gap:8px; border:1px dashed var(--admin-border); border-radius:8px; background:var(--admin-surface); color:var(--admin-muted); text-align:center; }
.runtime-project-required strong { color:var(--admin-text); font-size:18px; }
@media (max-width:720px) {
  .admin-shell, .sidebar, .workspace, .topbar, .main { min-width:0; max-width:100%; }
  .sidebar { width:100%; overflow:hidden; }
  .side-nav { width:100%; min-width:0; }
  .project-picker.runtime-project-switcher { min-width:0; max-width:calc(100vw - 170px); }
}
