*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f5f6f4;color:#202823;font-size:17px;line-height:1.65}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8cc4ac;outline-offset:3px}a{color:inherit;text-decoration:none}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:#23433b;color:#f0f5f1;display:flex;flex-direction:column;padding:32px 22px 22px;z-index:10}.brand{display:flex;gap:12px;align-items:center;letter-spacing:1.7px;font-weight:650;font-size:19px}.brand-mark{display:block;place-items:center;background:none;color:#172b27;border-radius:11px;width:44px;height:44px;font:700 28px Georgia;letter-spacing:-2px;padding-bottom:3px;padding:0;object-fit:contain;flex-shrink:0;filter:brightness(1.23) saturate(.96)}.brand small{display:block;font-size:13px;letter-spacing:.8px;color:#d0dfd5;line-height:1.4;margin-top:3px}.nav-caption{margin:40px 14px 14px;color:#c4d7cb;font-size:13px;letter-spacing:2px}nav button{border:0;background:none;color:#d7e5db;display:flex;align-items:center;gap:14px;width:100%;padding:13px 14px;border-radius:7px;margin-bottom:7px;text-align:left;font-size:16px}nav button span{width:18px;font-size:18px;line-height:1}nav button:hover{color:#f0f5f1;background:#30554a}nav button.active{background:#3b6356;color:#ffffff}.sidebar-bottom{margin-top:auto}.environment{font-size:14px;padding:18px 10px;border-bottom:1px solid #30443d}.environment i,.private-pill i,.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#89b798;margin-right:7px}.environment small{display:block;font-size:11px;letter-spacing:.6px;color:#c5d8cb;margin-top:6px}.account{display:flex;align-items:center;gap:10px;padding:22px 4px 0;font-size:15px}.avatar{display:grid;place-items:center;height:36px;width:36px;background:#3b5e50;border-radius:50%;color:#edf5ee}.account small{display:block;font-size:13px;color:#c8dbcd}.account form{margin-left:auto}.account button{border:0;color:#e0ebe2;background:none;font-size:20px}.app{margin-left:248px}.topbar{height:76px;border-bottom:1px solid #e2e6df;background:#fbfcfa;display:flex;align-items:center;justify-content:space-between;padding:0 42px}.breadcrumb{font-size:14px;color:#4b5e50}.breadcrumb span{color:#bec7bd;margin:0 15px}.topbar-right{display:flex;align-items:center;gap:16px;font-size:13px;color:#617360;font-variant-numeric:tabular-nums}.private-pill{color:#45644f;background:#edf2ec;border:1px solid #e1e7dc;padding:5px 10px;border-radius:4px}.refresh-button,.mobile-menu{border:0;background:none;color:#506a58;font-size:22px}.mobile-menu{display:none}main{padding:34px 38px;max-width:1620px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#748679;font-weight:650}h1{font-size:34px;font-weight:650;letter-spacing:-.8px;line-height:1.3;margin:0}h2,h3,p{margin:0}h2{font-size:20px;font-weight:620}h3{font-size:18px;font-weight:600}.page-heading p{font-size:12px;color:#819083;margin-top:10px}.heading-tag{text-align:right;font-size:9px;letter-spacing:1.6px;color:#758d7a}.heading-tag span{display:block;font-size:8px;letter-spacing:2px;color:#a1aea0;margin-top:7px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metric{background:#fff;border:1px solid #e3e8df;border-radius:9px;padding:21px 22px}.metric-label{font-size:15px;color:#52654f;display:flex;align-items:center;justify-content:space-between}.metric-label small{font-size:8px;letter-spacing:1px;color:#a3afa0}.metric-value{font-size:32px;font-weight:600;letter-spacing:-.8px;margin:10px 0 5px;font-variant-numeric:tabular-nums}.metric-value small{font-size:14px;color:#8ba08c;margin-left:6px;letter-spacing:0}.metric-note{font-size:13px;color:#64745e}.good{color:#315f45}.warn{color:#916c33}.bad{color:#ad514c}.muted{color:#63725f}.layout-two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr);gap:22px;margin-bottom:23px}.panel{background:#fff;border:1px solid #e2e7dd;border-radius:9px;overflow:hidden;margin-bottom:23px}.layout-two>.panel{margin-bottom:0}.panel-head{padding:22px 24px;border-bottom:1px solid #edf0e9;display:flex;justify-content:space-between;align-items:center}.panel-head small{display:block;font-size:13px;color:#63755e;margin-top:4px}.text-button{background:none;border:0;padding:0;font-size:14px;color:#3d6545}.panel-body{padding:23px 24px}.node-row{display:flex;align-items:center;gap:14px;padding:19px 0;border-bottom:1px solid #eef1e9}.node-row:last-child{border:0;padding-bottom:0}.node-row:first-child{padding-top:0}.node-icon{width:42px;height:42px;border:1px solid #e5ebdf;border-radius:8px;display:grid;place-items:center;font-size:20px;background:#f8faf5;color:#5e7d61}.node-label{flex:1}.node-label strong{font-weight:550;font-size:16px}.node-label small{display:block;font-size:13px;color:#62735c;margin-top:2px}.badge{font-size:13px;padding:3px 9px;border-radius:4px;white-space:nowrap;display:inline-block;border:1px solid #e5eade;background:#f3f6ee;color:#587454}.badge.good{background:#edf5ef;border-color:#dfebe0;color:#37614a}.badge.bad{background:#fbefee;border-color:#f3deda;color:#a05750}.badge.warn{background:#faf3e7;border-color:#efe2cb;color:#927442}.badge.muted{color:#60715c;background:#f4f5f2;border-color:#e7eae4}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:23px}.role-card{border:1px solid #e2e7dd;background:#fff;border-radius:9px;padding:23px;min-height:0}.role-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.role-id{font-size:10px;letter-spacing:1px;color:#899984}.role-card h3{font-size:24px;font-weight:550;letter-spacing:1px}.role-card p{font-size:11px;color:#859580;margin-top:10px}.role-line{display:flex;justify-content:space-between;border-top:1px solid #eff2e9;padding-top:13px;margin-top:17px;font-size:14px;color:#566c4e;gap:10px;flex-wrap:wrap;align-items:center}.signal{display:flex;gap:13px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #edf0e9}.signal:last-child{border:0}.signal-marker{height:8px;width:8px;border-radius:50%;background:#b99c69;margin-top:5px;flex-shrink:0}.signal strong{font-weight:520;font-size:15px}.signal small{display:block;color:#62755a;font-size:13px;margin-top:4px;overflow-wrap:anywhere}.empty{padding:25px;text-align:center;font-size:15px;color:#65765c}.readonly-note{display:flex;align-items:center;gap:10px;padding:14px 18px;border:1px solid #dde5d9;border-radius:7px;background:#eef3ea;font-size:14px;color:#476441;margin-bottom:23px;flex-wrap:wrap}.readonly-note strong{font-weight:550}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}th{text-align:left;background:#fafbf7;font-size:13px;letter-spacing:.4px;font-weight:600;color:#5b7052;padding:13px 24px;border-bottom:1px solid #e9ede3}td{padding:15px 24px;border-bottom:1px solid #edf0e7;color:#41583a}tr:last-child td{border:0}td strong{font-weight:500;color:#33482f}td small{display:block;color:#69795c;font-size:13px;margin-top:3px}.mono{font-family:"SFMono-Regular",Consolas,monospace;font-size:13px;font-variant-numeric:tabular-nums}.details-button{color:#426a39;border:0;background:none;padding:3px 0;font-size:14px}.section-label{font-size:14px;color:#556c48;margin:25px 0 14px;display:flex;justify-content:space-between}.node-detail{background:#fff;border:1px solid #e2e7dd;border-radius:9px;margin-bottom:22px;overflow:hidden}.resource-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:23px 24px;background:#fafbf7;border-top:1px solid #edf0e8}.resource-row span{font-size:14px;color:#5f7454}.resource-row strong{display:block;color:#4c6343;font-size:21px;font-weight:500;margin:5px 0}.bar{height:4px;background:#e8eede;border-radius:5px;overflow:hidden;margin-top:8px}.bar i{display:block;background:#a5b699;height:100%}.source-note{color:#627658;font-size:13px;padding:12px 24px;border-top:1px solid #edf0e8;overflow-wrap:anywhere}.audit-item{display:flex;gap:18px;padding:12px 0;font-size:14px;border-bottom:1px solid #edf0e8;flex-wrap:wrap}.audit-item time{color:#677d59;font-size:13px;min-width:105px}.audit-item p{color:#657d56}.search-row{display:flex;gap:12px;margin-bottom:17px}.search-row input{padding:9px 12px;border:1px solid #dce5d4;background:#fff;border-radius:6px;min-width:270px;font-size:15px}.search-row button{border:1px solid #dce5d4;border-radius:5px;background:#fff;color:#748969;padding:5px 12px;font-size:14px}.search-row button.active{background:#eaf1e5;border-color:#d5e0cc;color:#456c35}.loading{padding:70px;color:#8a9883;text-align:center}#notice{padding:13px 18px;background:#fcf4e8;border:1px solid #eadbc2;border-radius:6px;color:#946f39;font-size:15px;margin-bottom:20px}footer{display:flex;justify-content:space-between;border-top:1px solid #e0e7d7;margin-top:16px;padding-top:20px;font-size:9px;color:#9aa58f}footer span{letter-spacing:2px}dialog{width:min(880px,90vw);max-height:85vh;border:1px solid #d8e3d0;border-radius:11px;padding:0;color:#31472c;box-shadow:0 25px 80px #11241022}dialog::backdrop{background:#13261766}dialog header{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2eadb}dialog header small{font-size:12px;letter-spacing:2px;color:#8b9c80}dialog h2{margin-top:6px}dialog header button{border:0;background:none;font-size:26px;color:#819675}dialog pre{margin:0;max-height:65vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:25px;background:#f9fbf6;font:14px/1.8 Consolas,monospace}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fafbf8}.login-story{background:linear-gradient(135deg,#285950 0%,#3E786A 100%);color:#e5ece6;padding:55px 12%;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-story .eyebrow{color:#8baf9a}.login-story h1{font-size:47px;line-height:1.4;letter-spacing:-1px;margin:24px 0}.login-story p{color:#91af9e;font-size:14px;line-height:2}.login-story>small{font-size:9px;letter-spacing:2px;color:#698e77}.login-chain{display:flex;gap:19px;align-items:center;margin-top:45px;font-size:11px;color:#b9cfb8}.login-chain span{border:1px solid #3a5a46;border-radius:6px;padding:9px 14px}.login-chain i{font-style:normal;color:#547d62}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px;max-width:none}.login-form{width:340px}.login-form h2{font-size:27px;margin:14px 0;color:#243b25}.login-form>p{font-size:15px;color:#627653}.login-form form{margin-top:35px}.login-form label{display:block;font-size:16px;color:#5d7650;margin:18px 0 8px}.login-form input:not([type=hidden]){width:100%;padding:13px 14px;border:1px solid #dce5d6;border-radius:6px;background:#fff;font-size:16px;color:#3c5535}.login-form input::placeholder{color:#abb6a3}.login-form button{display:flex;justify-content:space-between;width:100%;padding:13px 16px;background:#284a32;color:#f2f6ed;border:0;border-radius:6px;margin-top:26px;font-size:16px}.login-form button:hover{background:#38613e}.login-foot{margin-top:25px;text-align:center;font-size:13px;color:#819974}.login-foot small{font-size:13px;line-height:2;color:#a0ae96}.login-error{color:#a2594c;background:#fcf0ec;border:1px solid #f3ddd4;border-radius:5px;padding:9px;margin-top:15px;font-size:14px}@media(min-width:1500px){main{padding:42px 55px}.topbar{padding:0 55px}.metric{padding:23px 26px}.metric-value{font-size:32px}.role-card{padding:26px}}@media(max-width:1100px){.sidebar{width:224px;padding-left:15px;padding-right:15px}.app{margin-left:224px}.topbar{padding:0 25px}main{padding:30px 25px}.layout-two{grid-template-columns:1fr}.role-grid{gap:11px}.role-card{padding:18px}.metrics{gap:11px}.metric{padding:17px}.metric-value{font-size:28px}}@media(max-width:760px){.sidebar{transform:translateX(-100%);width:248px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.app{margin:0}.mobile-menu{display:block}.topbar{height:63px;padding:0 18px;gap:10px}.topbar-right{gap:10px}#updated{display:none}.breadcrumb{margin-right:auto}.breadcrumb span{margin:0 6px}main{padding:26px 18px}.page-heading{align-items:start;margin-bottom:22px}h1{font-size:30px}.heading-tag{font-size:7px;margin-top:6px}.metrics{grid-template-columns:repeat(2,1fr)}.role-grid{grid-template-columns:1fr}.role-card{min-height:0}.role-top{margin-bottom:8px}.role-line{margin-top:12px}.layout-two{gap:18px}.panel-head,.panel-body{padding:18px}th,td{padding:12px 16px}.resource-row{gap:12px;padding:18px}.resource-row strong{font-size:18px}.search-row{flex-wrap:wrap}.search-row input{min-width:0;width:100%}footer{font-size:8px}footer span{display:none}.login-page{grid-template-columns:1fr}.login-story{min-height:220px;padding:25px;gap:25px}.login-story h1{font-size:27px;line-height:1.2;margin:15px 0}.login-story h1 br{display:none}.login-story p,.login-chain,.login-story>small{display:none}.login-form-wrap{padding:35px 25px}.login-form{width:100%;max-width:340px}}
/* Approved OCAR visual delta: login left panel only. */
.login-story .eyebrow,.login-story>small,.login-story .brand small{color:#e2ebdd}.login-story p,.login-story .login-chain{color:#eef1e5}.login-story .login-chain i{color:#d3e6d8}.login-story .login-chain span{border-color:#aac5b480}

/* Owner readability update: larger type, exact supplied mark, compact copy. */
.metric,.node-label,.role-card{min-width:0}.metric-value{overflow-wrap:anywhere}.panel-head{gap:18px}.panel-head>div{min-width:0}.role-line>.text-button{flex-shrink:0}.node-label strong,.node-label small{overflow-wrap:anywhere}.readonly-note>span{min-width:0}.table-wrap{max-width:100%}.topbar-right{flex-shrink:0}
@media(min-width:761px) and (max-width:1300px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.role-grid{grid-template-columns:1fr}.role-line{gap:12px}}
@media(max-width:760px){.topbar{padding:0 16px}.topbar-right{gap:8px}.breadcrumb{font-size:13px}.breadcrumb span{margin:0 5px}.private-pill{font-size:12px;padding:4px 7px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{padding:16px 14px}.metric-label{font-size:14px}.metric-value{font-size:clamp(23px,6.3vw,28px)}.metric-note{font-size:13px}.panel-head,.panel-body{padding:18px}.panel-head{gap:12px}.role-card{padding:20px}.role-line{font-size:14px}.node-label strong{font-size:15px}.node-label small{font-size:13px}.readonly-note{align-items:flex-start;gap:6px 9px}.readonly-note>span:last-child{flex-basis:100%}.resource-row{grid-template-columns:1fr;gap:14px}.resource-row>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.resource-row strong{margin:0}.source-note{padding:12px 18px}.login-form{max-width:380px}}

/* Desktop density: match the owner's approved 90% reference at browser 100%.
   Keep touch/tablet sizes and 1px boundaries unchanged. */
@media(min-width:1001px){
 body{font-size:15.3px}.login-page{font-size:17px}
 .sidebar{width:223.2px;padding:28.8px 19.8px 19.8px}.app{margin-left:223.2px}
 .sidebar .brand{gap:10.8px;font-size:17.1px;letter-spacing:1.53px}
 .sidebar .brand-mark{width:39.6px;height:39.6px;border-radius:9.9px}
 .sidebar .brand small{font-size:11.7px;letter-spacing:.72px;margin-top:2.7px}
 .nav-caption{margin:36px 12.6px 12.6px;font-size:11.7px;letter-spacing:1.8px}
 nav button{gap:12.6px;padding:11.7px 12.6px;border-radius:6.3px;margin-bottom:6.3px;font-size:14.4px}
 nav button span{width:16.2px;font-size:16.2px}
 .environment{font-size:12.6px;padding:16.2px 9px}
 .environment i,.private-pill i,.status-dot{width:5.4px;height:5.4px;margin-right:6.3px}
 .account{gap:9px;padding:19.8px 3.6px 0;font-size:13.5px}
 .avatar{width:32.4px;height:32.4px}.account small{font-size:11.7px}.account button{font-size:18px}
 .topbar{height:68.4px;padding:0 37.8px}.breadcrumb{font-size:12.6px}.breadcrumb span{margin:0 13.5px}
 .topbar-right{gap:14.4px;font-size:11.7px}.private-pill{padding:4.5px 9px;border-radius:3.6px}.refresh-button{font-size:19.8px}
 main{padding:30.6px 34.2px;max-width:1458px}.page-heading{margin-bottom:21.6px}
 main h1{font-size:30.6px;letter-spacing:-.72px}main h2{font-size:18px}main h3{font-size:16.2px}
 .metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14.4px;margin-bottom:20.7px}
 .metric{padding:18.9px 19.8px;border-radius:8.1px}.metric-label{font-size:13.5px}
 .metric-value{font-size:28.8px;letter-spacing:-.72px;margin:9px 0 4.5px}
 .metric-value small{font-size:12.6px;margin-left:5.4px}.metric-note{font-size:11.7px}
 .layout-two{grid-template-columns:minmax(0,1.35fr) minmax(279px,1fr);gap:19.8px;margin-bottom:20.7px}
 .panel{border-radius:8.1px;margin-bottom:20.7px}.layout-two>.panel{margin-bottom:0}
 .panel-head{padding:19.8px 21.6px;gap:16.2px}.panel-head small{font-size:11.7px;margin-top:3.6px}
 .text-button{font-size:12.6px}.panel-body{padding:20.7px 21.6px}
 .node-row{gap:12.6px;padding:17.1px 0}.node-row:first-child{padding-top:0}.node-row:last-child{padding-bottom:0}
 .node-icon{width:37.8px;height:37.8px;border-radius:7.2px;font-size:18px}
 .node-label strong{font-size:14.4px}.node-label small{font-size:11.7px;margin-top:1.8px}
 .badge{font-size:11.7px;padding:2.7px 8.1px;border-radius:3.6px}
 .role-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14.4px;margin-bottom:20.7px}
 .role-card{padding:20.7px;border-radius:8.1px}.role-top{margin-bottom:10.8px}
 .role-card h3{font-size:21.6px;letter-spacing:.9px}
 .role-line{padding-top:11.7px;margin-top:15.3px;font-size:12.6px;gap:9px}
 .signal{gap:11.7px;padding:12.6px 0}.signal-marker{width:7.2px;height:7.2px;margin-top:4.5px}
 .signal strong{font-size:13.5px}.signal small{font-size:11.7px;margin-top:3.6px}
 .empty{padding:22.5px;font-size:13.5px}
 .readonly-note{gap:9px;padding:12.6px 16.2px;border-radius:6.3px;font-size:12.6px;margin-bottom:20.7px}
 table{font-size:12.6px}th{font-size:11.7px;letter-spacing:.36px;padding:11.7px 21.6px}
 td{padding:13.5px 21.6px}td small{font-size:11.7px;margin-top:2.7px}.mono{font-size:11.7px}
 .details-button{padding:2.7px 0;font-size:12.6px}.section-label{font-size:12.6px;margin:22.5px 0 12.6px}
 .node-detail{border-radius:8.1px;margin-bottom:19.8px}
 .resource-row{gap:18px;padding:20.7px 21.6px}.resource-row span{font-size:12.6px}
 .resource-row strong{font-size:18.9px;margin:4.5px 0}.bar{height:3.6px;border-radius:4.5px;margin-top:7.2px}
 .source-note{font-size:11.7px;padding:10.8px 21.6px}
 .audit-item{gap:16.2px;padding:10.8px 0;font-size:12.6px}.audit-item time{font-size:11.7px;min-width:94.5px}
 .search-row{gap:10.8px;margin-bottom:15.3px}.search-row input{padding:8.1px 10.8px;border-radius:5.4px;min-width:243px;font-size:13.5px}
 .search-row button{padding:4.5px 10.8px;border-radius:4.5px;font-size:12.6px}
 .loading{padding:63px}#notice{padding:11.7px 16.2px;border-radius:5.4px;font-size:13.5px;margin-bottom:18px}
 dialog{width:min(792px,90vw);border-radius:9.9px}dialog header{padding:19.8px 23.4px}
 dialog header small{font-size:10.8px;letter-spacing:1.8px}dialog h2{margin-top:5.4px;font-size:18px}
 dialog header button{font-size:23.4px}dialog pre{padding:22.5px;font-size:12.6px}
}
@media(min-width:1001px) and (max-width:1170px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1350px){main{padding:37.8px 49.5px}.topbar{padding:0 49.5px}.metric{padding:20.7px 23.4px}.role-card{padding:23.4px}}

/* Owner-only dispatch control; inherit the approved desktop/mobile density. */
.dispatch-control{display:inline-flex;border:1px solid #98b2a3;border-radius:6px;overflow:hidden;flex-shrink:0}.dispatch-control button{font:inherit;line-height:1.35;padding:5px 11px;border:0;background:transparent;color:#355e4b}.dispatch-control button+button{border-left:1px solid #98b2a3}.dispatch-control button[aria-pressed=true]{background:#3b6356;color:#fff}.dispatch-control button:disabled{cursor:wait;opacity:.55}.dispatch-feedback{color:#3c5c45;overflow-wrap:anywhere}
