:root{--bg:#0b0b11;--bg-elevated:#13131c;--bg-elevated-2:#181822;--border-subtle:#272733;--accent:#2dd4bf;--accent-soft:#2dd4bf17;--accent-strong:#14b8a6;--text-main:#f9fafb;--text-muted:#9ca3af;--text-soft:#6b7280;--danger:#fb7185;--shadow-elevated:0 18px 45px #0f172abf}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--bg);color:var(--text-main);margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif}body,#root{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border-subtle);background:radial-gradient(circle at 0 0,#1f2937 0%,#020617 55%);justify-content:space-between;align-items:center;padding:1.25rem 1.75rem;display:flex}.app-title{align-items:center;gap:.75rem;display:flex}.app-logo-dot{background:radial-gradient(circle at 30% 30%,#22c55e 0%,#0f172a 52%);border-radius:999px;width:28px;height:28px;box-shadow:0 0 0 1px #0f172a99,0 10px 30px #2dd4bfa6}.app-title-main{letter-spacing:.06em;text-transform:uppercase;font-size:1.25rem;font-weight:600}.app-title-sub{color:var(--text-soft);font-size:.85rem}.app-header-right{align-items:center;gap:1.5rem;display:flex}.app-node{color:var(--text-muted);font-size:.85rem}.app-node-name{color:var(--accent);font-weight:500}.app-user{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.app-user-avatar{background:linear-gradient(135deg,#22c55e,#0ea5e9);border-radius:999px;width:28px;height:28px}.app-body{grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 64px);display:grid}.app-sidebar{border-right:1px solid var(--border-subtle);background:radial-gradient(circle at top,#020617 0% 55%);padding:1.25rem 1.25rem 1.75rem}.sidebar-nav{flex-direction:column;gap:.5rem;display:flex}.sidebar-section{text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);margin-top:.5rem;margin-bottom:.25rem;font-size:.8rem}.sidebar-item{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.55rem;justify-content:flex-start;align-items:center;padding:.45rem .7rem;font-size:.9rem;transition:background .16s ease-out,color .16s ease-out,transform .12s ease-out;display:flex}.sidebar-item:hover{color:var(--text-main);background:#1f2937e6;transform:translate(2px)}.sidebar-item-active{background:var(--accent-soft);color:var(--accent)}.app-main{background:radial-gradient(circle at 0 0,#2563eb29 0%,#0000 45%),radial-gradient(circle at 100% 100%,#2dd4bf2e 0%,#0000 55%),#020617;padding:1.5rem 1.75rem 2rem}.section{margin-bottom:1.5rem}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.section-header h2,.section-header h3{margin:0;font-size:1rem;font-weight:500}.section-actions{gap:.5rem;display:flex}.section-content{background:var(--bg-elevated);box-shadow:var(--shadow-elevated);border:1px solid #94a3b84d;border-radius:.75rem;padding:.75rem .9rem}.btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #94a3b880;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;transition:background .16s ease-out,color .16s ease-out,border-color .16s ease-out}.btn-outline:hover{color:var(--text-main);background:#f8fafc0f}.btn-active{border-color:var(--accent-strong);color:var(--accent)}.section-kpis .section-content{padding:.85rem .9rem .95rem}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.kpi-card{background:linear-gradient(135deg,#0b1120,#020617);border:1px solid #94a3b866;border-radius:.75rem;padding:.7rem .8rem}.kpi-label{color:var(--text-soft);font-size:.8rem}.kpi-value{margin-top:.35rem;font-size:1.1rem;font-weight:600}.kpi-trend{color:var(--accent);margin-top:.25rem;font-size:.75rem}.section-grid-two{grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr);gap:.9rem;display:grid}.panel{background:var(--bg-elevated-2);border:1px solid #94a3b859;border-radius:.75rem;padding:.75rem .8rem}.panel-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.panel-header h3{margin:0;font-size:.95rem}.panel-meta{color:var(--text-soft);font-size:.75rem}.panel-body{font-size:.8rem}.panel-body-chart{padding-top:.25rem}.chart-placeholder{flex-direction:column;gap:.4rem;display:flex}.chart-row{grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:.4rem;display:grid}.chart-bar{background:#94a3b840;border-radius:999px;height:.4rem;position:relative;overflow:hidden}.chart-bar:after{content:"";border-radius:inherit;background:linear-gradient(90deg, var(--accent-strong), #22c55e);position:absolute;inset:0}.chart-bar-pci:after{width:84%}.chart-bar-oec:after{width:78%}.chart-bar-psi:after{width:79%}.chart-bar-bhi:after{width:77%}.chart-value{text-align:right;font-variant-numeric:tabular-nums}.rule-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.rule-item{background:#0f172ae6;border:1px solid #94a3b866;border-radius:.6rem;padding:.55rem .6rem}.rule-tag{justify-content:space-between;align-items:baseline;display:flex}.rule-tag-label{font-size:.8rem;font-weight:500}.rule-status{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.rule-meta{color:var(--text-soft);flex-direction:column;gap:.1rem;margin-top:.25rem;font-size:.75rem;display:flex}.table-wrapper{border:1px solid #94a3b859;border-radius:.65rem;overflow:hidden}.table{border-collapse:collapse;width:100%;font-size:.8rem}.table thead{background:#0f172ae6}.table th,.table td{border-bottom:1px solid #1f2937e6;padding:.45rem .6rem}.table th{text-align:left;color:var(--text-soft);font-weight:500}.table tbody tr:nth-child(2n){background:#0f172ab3}.panel-state{color:var(--text-muted);margin-bottom:.75rem;font-size:.9rem}.panel-state-muted{color:var(--text-soft)}.panel-state-error{color:var(--danger)}.intake-progress{background:#94a3b840;border-radius:999px;height:.4rem;margin-bottom:.75rem;overflow:hidden}.intake-progress-bar{border-radius:inherit;background:linear-gradient(90deg, var(--accent-strong), #22c55e);height:100%;transition:width .16s ease-out}.intake-note{color:var(--text-soft);margin:0;font-size:.78rem;line-height:1.5}.intake-panel{background:0 0;border:none;padding:0}.intake-card-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.intake-card{background:#0f172ae6;border:1px solid #94a3b866;border-radius:.7rem;padding:.7rem .75rem}.intake-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.6rem;display:flex}.intake-card-title{margin:0;font-size:.9rem;font-weight:500}.intake-card-meta{flex-wrap:wrap;gap:.35rem;display:flex}.intake-chip{color:var(--text-soft);border:1px solid #94a3b866;border-radius:999px;padding:.1rem .45rem;font-size:.7rem}.intake-chip-soft{background:#94a3b81f;border-color:#0000}.intake-card-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.55rem;display:grid}.intake-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.intake-label{flex-direction:column;gap:.05rem;display:flex}.intake-label-main{color:var(--text-muted);font-size:.78rem}.intake-label-code{color:var(--text-soft);word-break:break-all;font-size:.68rem}.intake-input{width:100%;min-height:2.5rem;color:var(--text-main);font:inherit;background:#020617d9;border:1px solid #94a3b873;border-radius:.5rem;padding:.4rem .55rem;font-size:.85rem}.intake-input:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.intake-input-invalid{border-color:var(--danger)}.intake-error{color:var(--danger);margin:0;font-size:.72rem}.intake-check{min-height:2.5rem;color:var(--text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.intake-check input{width:1.15rem;height:1.15rem;accent-color:var(--accent-strong)}.intake-derived{min-height:2.5rem;color:var(--text-soft);word-break:break-word;background:#94a3b814;border:1px dashed #94a3b873;border-radius:.5rem;padding:.4rem .55rem;font-size:.78rem;display:block}.app-header-nav{gap:.4rem;display:none}.sidebar-item:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}.sidebar-item:disabled:hover{color:var(--text-muted);background:0 0;transform:none}@media (width<=960px){.app-body{grid-template-columns:1fr}.app-sidebar{display:none}.app-header-nav{display:flex}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-grid-two{grid-template-columns:1fr}}@media (width<=640px){.app-header{flex-wrap:wrap;gap:.6rem;padding:.9rem 1rem}.app-header-nav{order:3;width:100%}.app-header-nav .btn{flex:1;min-height:2.5rem}.app-header-right{gap:.75rem;font-size:.8rem}.app-main{padding:1rem .85rem 1.5rem}.section-header{flex-direction:column;align-items:flex-start;gap:.4rem}.section-content{padding:.6rem}.kpi-grid,.intake-card-grid{grid-template-columns:1fr}.table-wrapper{overflow-x:auto}}.project-selector{background:var(--bg-elevated);box-shadow:var(--shadow-elevated);border:1px solid #94a3b84d;border-radius:.75rem;margin-bottom:1rem;padding:.9rem}.project-selector-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.project-selector-header h2{margin:0;font-size:1rem;font-weight:500}.project-selector-header p{color:var(--text-soft);margin:.3rem 0 0;font-size:.78rem}.project-selector-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.6rem;display:grid}.project-selector-item{min-width:0;color:var(--text-main);text-align:left;cursor:pointer;background:#0b1120;border:1px solid #94a3b859;border-radius:.65rem;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.65rem .7rem;display:flex}.project-selector-item:hover{border-color:#2dd4bfa6}.project-selector-item-selected{border-color:var(--accent-strong);background:var(--accent-soft)}.project-selector-code{color:var(--accent);font-size:.78rem;font-weight:600}.project-selector-title{width:100%;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.project-selector-status{color:var(--text-soft);font-size:.72rem}.intake-region-selector{background:#0f172ab8;border:1px solid #94a3b859;border-radius:.75rem;margin-bottom:1rem;padding:.8rem}.intake-region-selector-copy label{font-size:.9rem;font-weight:600;display:block}.intake-region-selector-copy p{color:var(--text-soft);margin:.2rem 0 .7rem;font-size:.78rem}.intake-region-selector-controls{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.65rem;display:flex}.intake-region-selector-controls select{flex:18rem}.intake-region-selector .panel-state{margin-bottom:0}
