:root{--og-dark: #2d4a2d;--og-mid: #3d6b3d;--og-light: #5a8f5a;--og-pale: #e8f0e8;--og-cream: #f2f6f2;--og-border: #c2d4c2;--og-accent: #8fbf3f;--og-gold: #c9a227;--og-warn: #c87000;--og-danger: #c9382a;--og-blue: #1a4f7a;--og-mist: #6a7a6a;--ink: #0f0f0f;--white: #ffffff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--og-cream);color:var(--ink);font-family:Instrument Sans,sans-serif;font-size:14px;line-height:1.6}#root{height:100%}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--og-dark);display:flex;flex-direction:column;overflow-y:auto}.main{flex:1;overflow-y:auto;min-width:0}.page{padding:32px 32px 80px;width:100%}.brand{padding:22px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px}.brand-dot{width:28px;height:28px;background:var(--og-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--og-dark)}.brand-title{font-family:"DM Serif Display",serif;font-size:16px;color:#fff;line-height:1.2}.brand-title em{font-style:italic;color:#c8e0a0}.brand-sub{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#ffffff4d}.nav{flex:1;padding:10px 0}.nav-section{padding:14px 20px 5px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff38}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;cursor:pointer;color:#ffffff8c;font-size:13px;font-weight:500;border-left:3px solid transparent;transition:all .15s;text-decoration:none}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:#fff;background:#ffffff1f;border-left-color:var(--og-accent)}.nav-item .ni{font-size:14px;width:18px;text-align:center}.sidebar-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);font-family:DM Mono,monospace;font-size:9px;color:#ffffff38;display:flex;justify-content:space-between;align-items:center}.sidebar-footer button{background:none;border:none;color:#ffffff59;cursor:pointer;font-size:11px;font-family:DM Mono,monospace}.sidebar-footer button:hover{color:#fff}.page-header{margin-bottom:26px}.page-title{font-family:"DM Serif Display",serif;font-size:32px;font-weight:400;color:var(--og-dark)}.page-title em{font-style:italic;color:var(--og-light)}.page-desc{color:var(--og-mist);font-size:13.5px;margin-top:5px;max-width:600px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin-bottom:24px}.stat{background:var(--white);border:1px solid var(--og-border);padding:15px 17px;border-radius:6px}.stat.danger{border-left:3px solid var(--og-danger)}.stat.warning{border-left:3px solid var(--og-warn)}.stat.ok{border-left:3px solid var(--og-light)}.stat.blue{border-left:3px solid var(--og-blue)}.stat label{display:block;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--og-mist);margin-bottom:6px}.stat .val{font-size:26px;font-weight:700;color:var(--og-dark);line-height:1}.stat .sub{font-size:11px;color:var(--og-mist);margin-top:3px}.sh{display:flex;align-items:center;justify-content:space-between;margin:26px 0 13px}.sh h2{font-family:"DM Serif Display",serif;font-size:19px;font-weight:400;color:var(--og-dark)}.sh-line{flex:1;height:1px;background:var(--og-border);margin-left:13px}.tbl-wrap{overflow-x:auto;border:1px solid var(--og-border);border-radius:7px;background:var(--white);width:100%}table{width:100%;border-collapse:collapse}thead{background:var(--og-pale)}th{padding:9px 11px;text-align:left;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--og-mist);font-weight:500;white-space:nowrap}td{padding:9px 11px;border-top:1px solid var(--og-border);font-size:13px;vertical-align:middle}tbody tr:nth-child(2n){background:var(--og-pale)}tbody tr:hover{background:#dce8dc}.tag{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:600;font-family:DM Mono,monospace;white-space:nowrap}.t-ok{background:#d4ede0;color:#1a5c38}.t-warn{background:#faeeda;color:#633806}.t-hold{background:#ede8f5;color:#3d1f7a}.t-off{background:#e8ece8;color:var(--og-mist)}.t-bad{background:#f9e0de;color:var(--og-danger)}.t-green{background:#d4ede0;color:#1a5c38}.t-blue{background:#d4e5f5;color:var(--og-blue)}.t-monthly{background:#e8f5e0;color:var(--og-mid)}.t-yearly{background:#e0eaf8;color:var(--og-blue)}.t-onetime{background:#f5eee0;color:var(--og-warn)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:5px;border:1px solid var(--og-border);background:var(--white);color:var(--og-dark);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s}.btn:hover{background:var(--og-pale);border-color:var(--og-mid)}.btn.primary{background:var(--og-mid);color:#fff;border-color:var(--og-mid)}.btn.primary:hover{background:var(--og-dark)}.btn.danger{background:#fdf0f0;color:var(--og-danger);border-color:#f5c6c3}.btn.danger:hover{background:var(--og-danger);color:#fff}.btn-icon{background:none;border:none;cursor:pointer;font-size:14px;padding:3px 6px;border-radius:4px;opacity:.6;transition:opacity .15s}.btn-icon:hover{opacity:1;background:var(--og-pale)}.btn:disabled{opacity:.4;cursor:not-allowed}.alert{padding:10px 14px;border-radius:5px;font-size:12.5px;margin-bottom:18px}.alert.warn{background:#fdf3e7;border:1px solid #f5d89a;color:#633806}.alert.info{background:#e8f0fb;border:1px solid #a8c4e8;color:var(--og-blue)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--white);border-radius:10px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.modal-head{padding:18px 22px;border-bottom:1px solid var(--og-border);display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-family:"DM Serif Display",serif;font-size:18px;color:var(--og-dark)}.modal-body{padding:22px;overflow-y:auto;flex:1}.modal-foot{padding:14px 22px;border-top:1px solid var(--og-border);display:flex;justify-content:flex-end;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-row label{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--og-dark);font-weight:500}.form-row input,.form-row select,.form-row textarea{padding:8px 10px;border:1px solid var(--og-border);border-radius:4px;font-size:13px;font-family:Instrument Sans,sans-serif;outline:none;transition:border .15s;background:var(--white);width:100%}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--og-mid)}.form-row textarea{resize:vertical;min-height:72px}.toast{position:fixed;bottom:28px;right:28px;background:var(--og-dark);color:#fff;padding:10px 18px;border-radius:6px;font-size:13px;font-weight:600;z-index:2000;pointer-events:none;transform:translateY(60px);opacity:0;transition:all .25s}.toast.show{transform:translateY(0);opacity:1}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--og-dark)}.login-card{background:var(--white);border-radius:12px;padding:44px 40px;width:100%;max-width:400px;box-shadow:0 24px 64px #0000004d}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:28px}.login-dot{width:36px;height:36px;background:var(--og-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--og-dark)}.login-title{font-family:"DM Serif Display",serif;font-size:22px;color:var(--og-dark)}.login-sub{color:var(--og-mist);font-size:13px;margin-bottom:28px}.login-err{background:#fdf0f0;border:1px solid #f5c6c3;color:var(--og-danger);padding:10px 14px;border-radius:5px;font-size:13px;margin-bottom:16px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px}.kpi-card{background:var(--white);border:1px solid var(--og-border);border-radius:8px;padding:18px 20px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--og-light)}.kpi-card.red:before{background:var(--og-danger)}.kpi-card.amber:before{background:var(--og-warn)}.kpi-card.blue:before{background:var(--og-blue)}.kpi-card.gold:before{background:var(--og-gold)}.kpi-label{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--og-mist);margin-bottom:8px}.kpi-val{font-size:36px;font-weight:700;color:var(--og-dark);line-height:1}.kpi-sub{font-size:11px;color:var(--og-mist);margin-top:4px}.kpi-bar{height:4px;background:var(--og-pale);border-radius:2px;margin-top:10px}.kpi-fill{height:100%;background:var(--og-light);border-radius:2px;transition:width .6s ease}.kpi-card.red .kpi-fill{background:var(--og-danger)}.kpi-card.amber .kpi-fill{background:var(--og-warn)}.kpi-card.blue .kpi-fill{background:var(--og-blue)}.obs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:24px}.obs-card{background:var(--white);border:1px solid var(--og-border);border-radius:6px;padding:16px 18px;display:flex;gap:14px}.obs-icon{font-size:22px;flex-shrink:0}.obs-body strong{font-size:13px;color:var(--og-dark);display:block;margin-bottom:4px}.obs-body p{font-size:12px;color:var(--og-mist);line-height:1.55}.pri-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.pri-box{background:var(--white);border:1px solid var(--og-border);border-radius:6px;padding:16px 18px}.pri-box h4{font-family:"DM Serif Display",serif;font-size:14px;color:var(--og-danger);margin-bottom:10px}.pri-box.green h4{color:var(--og-light)}.pri-item{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;font-size:12.5px;color:var(--og-mist)}.pri-num{width:20px;height:20px;border-radius:50%;background:#f9e0de;color:var(--og-danger);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.green .pri-num{background:#dfeee8;color:var(--og-light)}.prog-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.prog-label{font-size:12px;color:var(--og-mist);width:100px;flex-shrink:0}.prog-track{flex:1;height:8px;background:var(--og-pale);border-radius:4px}.prog-fill{height:100%;border-radius:4px;transition:width .6s ease}.prog-val{font-family:DM Mono,monospace;font-size:11px;color:var(--og-mist);width:48px;text-align:right;flex-shrink:0}.infra-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.infra-card{background:var(--white);border:1px solid var(--og-border);border-radius:6px;padding:16px 18px}.infra-card h4{font-family:"DM Serif Display",serif;font-size:14px;color:var(--og-dark);margin-bottom:10px}.infra-card ul{list-style:none}.infra-card li{font-size:12.5px;color:var(--og-mist);padding:3px 0;border-bottom:1px solid var(--og-border)}.infra-card li:last-child{border:none}.sso-panel{background:var(--white);border:1px solid var(--og-border);border-radius:8px;overflow:hidden;margin-bottom:24px}.sso-head{padding:12px 18px;background:var(--og-pale);border-bottom:1px solid var(--og-border);font-size:12px;color:var(--og-mist);font-family:DM Mono,monospace}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.step-box{background:var(--white);border:1px solid var(--og-border);border-radius:6px;padding:18px}.step-box h3{font-family:"DM Serif Display",serif;font-size:15px;color:var(--og-dark);margin-bottom:4px}.hor{display:inline-block;font-family:DM Mono,monospace;font-size:10px;background:var(--og-pale);color:var(--og-mist);padding:2px 8px;border-radius:3px;margin-bottom:10px}.step-box ul{list-style:none}.step-box li{font-size:12.5px;color:var(--og-mist);padding:4px 0;border-bottom:1px solid var(--og-border)}.step-box li:last-child{border:none}.step-box li:before{content:"▸ ";color:var(--og-accent)}.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.risk-box{background:var(--white);border:1px solid var(--og-border);border-radius:6px;padding:16px 18px}.risk-box h4{font-family:"DM Serif Display",serif;font-size:14px;margin-bottom:10px;color:var(--og-danger)}.risk-box.finance h4{color:var(--og-light)}.risk-box.governance h4{color:var(--og-blue)}.risk-box ul{list-style:none}.risk-box li{font-size:12.5px;color:var(--og-mist);padding:4px 0;border-bottom:1px solid var(--og-border)}.risk-box li:last-child{border:none}.risk-box li:before{content:"• ";color:var(--og-danger)}.risk-box.finance li:before{color:var(--og-warn)}.risk-box.governance li:before{color:var(--og-blue)}.net-container{background:var(--white);border:1px solid var(--og-border);border-radius:8px;overflow:hidden;margin-bottom:24px}.net-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--og-pale);border-bottom:1px solid var(--og-border);font-size:12px;color:var(--og-mist);font-family:DM Mono,monospace}.net-zoom{display:flex;gap:6px}.net-scroll{overflow:auto;padding:20px;max-height:520px;display:flex;align-items:center;justify-content:center}.net-img{transform-origin:center;transition:transform .2s}.empty-row td{text-align:center;color:var(--og-mist);padding:40px!important;font-size:13px}.spinner-wrap{display:flex;align-items:center;justify-content:center;height:200px}.spinner{width:32px;height:32px;border:3px solid var(--og-border);border-top-color:var(--og-mid);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.blurb{background:var(--white);border:1px solid var(--og-border);border-left:3px solid var(--og-light);border-radius:6px;padding:16px 18px;margin-bottom:20px;font-size:13px;color:var(--og-mist);line-height:1.65}.user-badge{font-size:11px;color:#ffffff80}.role-pill{display:inline-block;padding:1px 6px;border-radius:3px;font-family:DM Mono,monospace;font-size:9px;font-weight:600;text-transform:uppercase}.role-admin{background:var(--og-accent);color:var(--og-dark)}.role-editor{background:#4a7aaa;color:#fff}.role-viewer{background:#ffffff26;color:#fff9}
