/* Standalone operations console: warm neutral surfaces, restrained green, dense evidence. */
:root { color-scheme: light; --canvas:#f3f5f3; --surface:#fcfdfb; --ink:#202c28; --muted:#627168; --line:#dbe2dc; --green:#146044; --soft-green:#e7f2eb; --red:#a03237; --amber:#835809; font:14px/1.65 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box; }
body { margin:0; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #529d7d; outline-offset:3px; }
a { color:var(--green); text-underline-offset:4px; }
h1,h2,h3,p { margin:0; }
h1 { font-size:28px; line-height:1.35; letter-spacing:-.6px; font-weight:680; }
h2 { font-size:18px; line-height:1.45; font-weight:650; }
h3 { font-size:15px; font-weight:650; }
small { font-size:12px; }
pre,code { font-family:ui-monospace,"SFMono-Regular",Consolas,monospace; font-size:12px; }
pre { overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; max-height:460px; background:#f0f3ef; border:1px solid var(--line); border-radius:8px; padding:14px; }
code { overflow-wrap:anywhere; }
hr { border:0; border-top:1px solid var(--line); margin:20px 0; }
dl { display:grid; grid-template-columns:minmax(100px,.22fr) 1fr; gap:9px 16px; margin:0; }
dt { color:var(--muted); } dd { margin:0; overflow-wrap:anywhere; }
.muted,.fine-print { color:var(--muted); } .fine-print { font-size:12px; }
.stack { display:flex; flex-direction:column; gap:16px; min-width:0; }
.row,.toolbar,.actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.toolbar { justify-content:space-between; }
.page-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.page-header p { color:var(--muted); margin-top:8px; max-width:760px; }
.page-heading { margin-bottom:24px; }
.page-heading > p { margin-top:9px; color:var(--muted); max-width:780px; }
.eyebrow { display:block; font-size:12px; font-weight:650; letter-spacing:1px; color:var(--green); margin-bottom:12px; }
.brand { display:flex; align-items:center; gap:11px; white-space:nowrap; }
.brand-mark { display:grid; place-items:center; width:38px; height:38px; border:1px solid #a5c6b2; color:var(--green); border-radius:10px; background:#edf4ed; font-size:22px; font-weight:750; }
.brand strong { display:block; font-size:17px; letter-spacing:.5px; }
.brand small { display:block; color:var(--muted); font-size:10px; letter-spacing:.8px; }
.app-shell { display:grid; grid-template-columns:224px minmax(0,1fr); min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; padding:30px 18px 22px; background:#eef2ed; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:16px; }
.sidebar .brand { padding:0 8px 25px; }
.nav-caption { padding:0 12px; color:var(--muted); font-size:11px; letter-spacing:1px; }
.sidebar nav { display:flex; flex-direction:column; gap:5px; }
.nav-link { display:flex; align-items:center; gap:12px; padding:11px 13px; border-radius:8px; color:#4d6053; text-decoration:none; }
.nav-link:hover { background:#e4ebe3; color:var(--ink); }
.nav-link.active { background:#dce9df; color:#134d36; font-weight:650; }
.nav-symbol { width:22px; height:22px; display:grid; place-items:center; font-size:11px; border:1px solid #b4c6b8; border-radius:5px; }
.sidebar-note { margin-top:auto; border-top:1px solid #d2ddd3; padding:20px 12px 0; font-size:11px; color:var(--muted); }
.sidebar-note strong { font-size:12px; color:#3e5747; }
.sidebar-note p { margin-top:8px; }
.workspace { min-width:0; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:76px; border-bottom:1px solid var(--line); padding:16px 36px; background:var(--surface); color:var(--muted); }
.session-info { display:flex; align-items:center; gap:10px; font-size:12px; }
.session-info strong { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink); }
.session-dot { width:7px; height:7px; background:#25835b; border-radius:50%; }
.role-label { color:var(--muted); }
.page-content { max-width:1320px; margin:0 auto; padding:32px 36px 60px; }
#global-error:not(:empty) { padding:16px 36px 0; }
.page-content > h1 { margin-bottom:8px; }
.page-content > p { margin-bottom:24px; }
.page-content > .card + .card,.page-content > section + section { margin-top:20px; }
.card { padding:24px; border:1px solid var(--line); background:var(--surface); border-radius:12px; box-shadow:0 2px 4px #294e3210; min-width:0; }
.card > h2,.card > h3 { margin-bottom:16px; }
.card > p { margin-bottom:16px; }
.card > .toolbar { margin-bottom:18px; }
.grid,.two-columns,.split-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 22px; }
.full-width,.span-2 { grid-column:1/-1; }
form { min-width:0; }
form > .actions,form > .toolbar { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.field label { font-weight:600; color:#3b4e42; font-size:12px; }
input,select,textarea { width:100%; min-height:42px; border:1px solid #bbc8be; border-radius:7px; padding:9px 11px; background:#fdfefb; color:var(--ink); }
input:hover,select:hover,textarea:hover { border-color:#819e8a; }
textarea { min-height:112px; resize:vertical; }
input[type=checkbox],input[type=radio] { width:17px; min-height:17px; height:17px; accent-color:var(--green); margin:0 7px 0 0; }
input:disabled,select:disabled,textarea:disabled,input[readonly] { background:#eef1ed; color:var(--muted); }
fieldset { border:1px solid var(--line); padding:16px; border-radius:8px; margin:0; min-width:0; }
.role-picker { display:flex; flex-wrap:wrap; gap:12px 20px; }
.role-picker label,.confirm-check { display:inline-flex; align-items:center; }
.role-picker input,.confirm-check input { flex-shrink:0; }
legend { font-size:12px; color:var(--muted); padding:0 5px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:8px 15px; border:1px solid #bdcbc0; border-radius:7px; background:#f8fbf6; color:#334c3c; cursor:pointer; text-decoration:none; font-size:13px; font-weight:600; line-height:1.45; transition:background .12s,border-color .12s; }
.button:hover { background:#eaf1e7; border-color:#85a590; }
.button.primary { background:var(--green); color:#f1f9f2; border-color:var(--green); }
.button.primary:hover { background:#0f4a34; }
.button.danger { color:var(--red); border-color:#d5a7a9; background:#fcf0ee; }
.button.danger:hover { background:#f9e1de; }
.button.quiet { border-color:transparent; background:transparent; font-weight:500; color:var(--muted); }
.button:disabled { opacity:.55; cursor:not-allowed; }
.button[aria-busy=true] { cursor:wait; }
.button[aria-busy=true]::after { content:'…'; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:9px; }
table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
th { background:#f0f4ee; color:#5b6f60; font-weight:600; font-size:11px; white-space:nowrap; }
th,td { padding:13px 15px; border-bottom:1px solid var(--line); vertical-align:top; }
tr:last-child td { border-bottom:0; }
tbody tr:hover { background:#f5f8f2; }
td { overflow-wrap:anywhere; max-width:420px; }
td .button { min-height:30px; padding:5px 9px; font-size:12px; }
.badge { display:inline-flex; align-self:flex-start; padding:3px 9px; border-radius:5px; border:1px solid transparent; font-size:11px; font-weight:600; white-space:nowrap; }
.badge.success { color:#206341; background:#e5f1e8; border-color:#c8dfce; }
.badge.warning { color:#825609; background:#fbf0d8; border-color:#ebd9ad; }
.badge.danger { color:#983e3f; background:#fae9e5; border-color:#ebc8c2; }
.badge.neutral { color:#637168; background:#edf0ec; border-color:#d9e0d7; }
.notice { padding:13px 15px; border:1px solid #cfded1; background:#eef5ef; border-radius:8px; color:#3d5a45; font-size:13px; overflow-wrap:anywhere; }
.notice small { display:block; margin-top:7px; }
.notice.error,.notice.danger { background:#fcf0ed; color:#953b3e; border-color:#e6c4c1; }
.notice.warning { background:#fcf5e6; color:#7d5c20; border-color:#e8d8b8; }
.notice.success { background:#e8f4e9; color:#275b37; }
.empty-state { text-align:center; padding:50px 22px; color:var(--muted); }
.empty-state h1,.empty-state h2 { color:var(--ink); margin-bottom:10px; }
.empty-state .button { margin-top:20px; }
details { border:1px solid var(--line); border-radius:8px; padding:14px; min-width:0; }
summary { cursor:pointer; font-weight:600; color:#3c5444; }
details[open] > summary { margin-bottom:16px; }
.timeline { list-style:none; padding:0; margin:0; }
.timeline li { padding:12px 0 12px 18px; border-left:2px solid #c7dbcd; }
.timeline li + li { margin-top:8px; }
.login-layout { display:grid; grid-template-columns:1.1fr 1fr; min-height:100vh; }
.login-card { max-width:590px; width:100%; justify-self:center; padding:64px 54px; align-self:center; }
.login-card .brand { margin-bottom:55px; }
.login-heading { margin-bottom:32px; }
.login-heading h1 { white-space:pre-line; font-size:32px; line-height:1.45; letter-spacing:-.8px; }
.login-heading p { margin-top:18px; }
.login-card .fine-print { margin-top:24px; }
.login-card .button { width:100%; min-height:44px; }
.login-card > .notice { margin-bottom:20px; }
.login-card [data-testid=login-error]:not(:empty) { margin-bottom:20px; }
.login-aside { display:flex; flex-direction:column; justify-content:center; background:#e5eee4; border-left:1px solid #cbdaca; padding:70px clamp(36px,7vw,110px); }
.login-aside h2 { white-space:pre-line; font-size:36px; letter-spacing:-.8px; line-height:1.45; color:#234c35; }
.process-list { list-style:none; padding:0; margin:44px 0 55px; display:flex; flex-direction:column; gap:30px; }
.process-list li { display:flex; gap:17px; }
.process-number { font-family:ui-monospace,monospace; font-size:12px; padding-top:2px; color:#568164; }
.process-list strong { font-size:15px; color:#2b5239; }
.process-list p { font-size:12px; color:#59755f; margin-top:5px; }
.boot { max-width:600px; margin:14vh auto; padding:35px; }
.skip-link { position:fixed; left:15px; top:-70px; z-index:20; background:var(--surface); padding:10px 20px; border:1px solid var(--line); }
.skip-link:focus { top:10px; }
[hidden] { display:none !important; }
@media (max-width:1000px) { .app-shell { grid-template-columns:190px minmax(0,1fr); } .sidebar { padding-inline:12px; } .topbar { padding-inline:22px; } .page-content { padding:26px 22px 45px; } .role-label { display:none; } .form-grid,.two-columns,.split-grid { grid-template-columns:1fr; } .span-2 { grid-column:auto; } }
@media (max-width:700px) { h1 { font-size:24px; } .app-shell { display:block; } .sidebar { position:static; width:100%; height:auto; padding:17px 16px 12px; border-right:0; border-bottom:1px solid var(--line); gap:12px; } .sidebar .brand { padding:0; } .sidebar nav { flex-direction:row; overflow-x:auto; gap:6px; } .nav-link { padding:9px 11px; white-space:nowrap; flex-shrink:0; font-size:12px; } .nav-symbol,.nav-caption,.sidebar-note { display:none; } .topbar { padding:12px 17px; min-height:58px; font-size:12px; } .session-info { gap:7px; } .session-info strong { max-width:110px; } .page-content { padding:22px 16px 35px; } #global-error:not(:empty) { padding:14px 16px 0; } .card { padding:18px 15px; } .grid { grid-template-columns:1fr; } .login-layout { display:block; } .login-card { padding:38px 25px; max-width:500px; } .login-card .brand { margin-bottom:38px; } .login-heading h1 { font-size:29px; } .login-aside { border-left:0; border-top:1px solid #cbdaca; padding:34px 25px; } .login-aside h2 { font-size:27px; } .process-list { margin:25px 0; gap:22px; } .page-header { margin-bottom:20px; } dl { grid-template-columns:1fr; gap:4px; } dd { margin-bottom:10px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; scroll-behavior:auto !important; } }
