:root {
  --bg: #07101d;
  --sidebar: #0a1422;
  --panel: #0f1c2d;
  --panel-2: #132238;
  --panel-3: #172940;
  --line: #22364e;
  --line-soft: #1a2b40;
  --text: #eef5fb;
  --muted: #8ea2b7;
  --muted-2: #607990;
  --green: #37d0b5;
  --green-soft: rgba(55, 208, 181, .12);
  --blue: #668cff;
  --blue-soft: rgba(102, 140, 255, .13);
  --cyan: #43b8df;
  --amber: #f0b85b;
  --amber-soft: rgba(240, 184, 91, .13);
  --red: #ef6f7c;
  --red-soft: rgba(239, 111, 124, .12);
  --purple: #b17ee9;
  --shadow: 0 18px 45px rgba(0, 0, 0, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); font-family: Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; }
.hidden { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 240px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 16px 18px; background: linear-gradient(180deg, #0b1626 0%, #08121f 100%); border-right: 1px solid var(--line); z-index: 20; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 23px; }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(135deg, var(--green), var(--blue)); color: #06121d; font-weight: 900; box-shadow: 0 8px 24px rgba(55, 208, 181, .2); }
.brand strong { display: block; font-size: 19px; line-height: 1; }
.brand small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.main-nav { display: flex; flex-direction: column; }
.nav-group { margin: 18px 12px 7px; color: #5f7890; font-size: 9px; font-weight: 800; letter-spacing: 1.7px; }
.nav-item { position: relative; width: 100%; display: flex; align-items: center; gap: 11px; padding: 11px 12px; margin: 2px 0; border: 0; border-radius: 10px; background: transparent; color: #9cb0c4; text-align: left; cursor: pointer; transition: .18s ease; }
.nav-item:hover { background: #111f31; color: #fff; }
.nav-item.active { background: linear-gradient(90deg, #172a40, #132238); color: #fff; }
.nav-item.active::before { content: ""; position: absolute; left: 0; width: 3px; height: 22px; border-radius: 3px; background: var(--green); }
.nav-item i { width: 18px; text-align: center; color: #8ba4ba; font-style: normal; }
.nav-item span { flex: 1; }
.nav-item em { min-width: 24px; padding: 2px 7px; border: 1px solid #2b425b; border-radius: 12px; background: #17273b; color: #91a7bc; font-size: 10px; font-style: normal; text-align: center; }
.sidebar-foot { position: absolute; bottom: 18px; left: 16px; right: 16px; }
.storage-status { display: flex; align-items: flex-start; gap: 9px; padding: 13px 5px; border-top: 1px solid var(--line); }
.storage-status > span { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--green); box-shadow: 0 0 12px var(--green); }
.storage-status b, .storage-status small { display: block; }
.storage-status b { color: #d7e5f1; font-size: 11px; }
.storage-status small { margin-top: 4px; color: var(--muted-2); font-size: 9px; }

.main { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 15; height: 72px; display: flex; align-items: center; gap: 18px; padding: 0 28px; border-bottom: 1px solid var(--line); background: rgba(7, 16, 29, .93); backdrop-filter: blur(14px); }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 20px; cursor: pointer; }
.crumb { display: flex; gap: 10px; align-items: center; color: var(--muted-2); font-size: 12px; white-space: nowrap; }
.crumb b { color: #425b72; }.crumb strong { color: #edf4fa; }
.global-search { margin-left: auto; width: min(320px, 30vw); display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: #0c1726; color: var(--muted-2); }
.global-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 12px; }
.global-search input::placeholder { color: #587088; }
.top-actions, .head-actions { display: flex; align-items: center; gap: 10px; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #34506b; border-radius: 50%; background: #16283c; color: #a9bdcf; font-size: 11px; font-weight: 800; }

.content { width: min(100%, 1540px); margin: 0 auto; padding: 30px; }
.view { display: none; animation: fade .22s ease; }.view.active { display: block; }
@keyframes fade { from { opacity: .25; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.compact-head { align-items: center; }
.eyebrow, .section-kicker { color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: 1.65px; }
.page-head h1 { margin: 7px 0; font-size: clamp(25px, 2.4vw, 34px); line-height: 1.2; }
.page-head p { max-width: 720px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.local-tag { padding: 7px 9px; border: 1px solid rgba(55, 208, 181, .35); border-radius: 8px; background: var(--green-soft); color: #75dbc8; font-size: 9px; font-weight: 800; letter-spacing: 1px; }

.primary-button, .secondary-button, .ghost-button, .danger-button, .icon-button, .text-button, .close-button { border: 0; cursor: pointer; transition: .18s ease; }
.primary-button { padding: 10px 15px; border-radius: 9px; background: linear-gradient(135deg, var(--green), #45aee0); color: #06131e; font-size: 12px; font-weight: 800; }
.primary-button:hover { filter: brightness(1.08); transform: translateY(-1px); }
.secondary-button { padding: 9px 13px; border: 1px solid #2d455f; border-radius: 9px; background: #14243a; color: #c5d4e1; font-size: 11px; }
.secondary-button:hover { border-color: #4f7597; color: #fff; }
.ghost-button { padding: 9px 13px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: #91a7bc; font-size: 11px; }
.ghost-button:hover { background: #122135; color: #fff; }.full { width: 100%; }
.danger-button { padding: 9px 13px; border: 1px solid rgba(239, 111, 124, .38); border-radius: 9px; background: var(--red-soft); color: #ff9aa4; font-size: 11px; }
.icon-button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: #101c2d; color: #96acc0; }
.text-button { padding: 4px; background: transparent; color: #64b7ee; font-size: 10px; }
.text-button:hover { color: #8cd2ff; }
.close-button { width: 32px; height: 32px; border-radius: 8px; background: #14243a; color: #9bb0c4; font-size: 20px; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.kpi-card, .activity-kpi { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(145deg, var(--panel), #0c1828); box-shadow: var(--shadow); }
.kpi-top { display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.kpi-icon { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; background: var(--blue-soft); color: #8fabff; }
.kpi-value { margin: 12px 0 4px; font-size: 28px; font-weight: 800; }
.kpi-note { color: #6fcfbe; font-size: 10px; }.kpi-note.danger { color: #ef8b95; }

.dashboard-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.panel { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(145deg, var(--panel), #0d1929); box-shadow: var(--shadow); }
.span-8 { grid-column: span 8; }.span-7 { grid-column: span 7; }.span-5 { grid-column: span 5; }.span-4 { grid-column: span 4; }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.panel-head h2 { margin: 4px 0 0; font-size: 15px; }
.stage-pipeline { display: grid; grid-template-columns: repeat(5, minmax(90px, 1fr)); gap: 8px; }
.stage-card { padding: 12px; border: 1px solid var(--line-soft); border-radius: 10px; background: #101f31; cursor: pointer; }
.stage-card:hover { border-color: #395774; }.stage-card small { color: var(--muted); font-size: 9px; }.stage-card b { display: block; margin: 7px 0; font-size: 22px; }
.mini-track { height: 4px; overflow: hidden; border-radius: 4px; background: #24364b; }.mini-track i { display: block; height: 100%; border-radius: 4px; }
.material-health { display: flex; align-items: center; gap: 18px; }
.health-ring { flex: 0 0 auto; width: 82px; height: 82px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) var(--value), #26384c 0); }
.health-ring::after { content: attr(data-value); width: 62px; height: 62px; display: grid; place-items: center; border-radius: 50%; background: #0f1c2d; font-size: 17px; font-weight: 800; }
.health-lines { flex: 1; }.health-line { display: flex; justify-content: space-between; margin: 8px 0; color: var(--muted); font-size: 10px; }.health-line b { color: #d9e5ef; }

.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 9px 8px; border-bottom: 1px solid var(--line); color: #6f879e; font-size: 9px; font-weight: 700; text-align: left; white-space: nowrap; }
td { padding: 12px 8px; border-bottom: 1px solid var(--line-soft); color: #cbd8e4; font-size: 11px; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; } tbody tr.clickable:hover { background: rgba(102, 140, 255, .05); cursor: pointer; }
.name-cell b { display: block; color: #f0f6fb; font-size: 11px; }.name-cell small { display: block; margin-top: 3px; color: var(--muted-2); font-size: 8px; }
.score-value { color: #78d9c7; font-weight: 800; }.subtle { color: var(--muted); }.nowrap { white-space: nowrap; }
.status-pill, .level-pill { display: inline-block; padding: 4px 7px; border-radius: 10px; background: var(--blue-soft); color: #8fafef; font-size: 9px; white-space: nowrap; }
.status-pill.green, .level-pill.low { background: var(--green-soft); color: #76dbc8; }.status-pill.amber, .level-pill.medium { background: var(--amber-soft); color: #efc574; }.status-pill.red, .level-pill.high { background: var(--red-soft); color: #f3919b; }.status-pill.purple { background: rgba(177,126,233,.13); color: #c99ff5; }

.task-list, .meeting-list { display: grid; gap: 9px; }
.task-row { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line-soft); border-radius: 10px; background: #101e30; }
.task-check { width: 16px; height: 16px; margin-top: 1px; accent-color: var(--green); cursor: pointer; }
.task-main b { display: block; color: #e8f0f7; font-size: 11px; }.task-main small { display: block; margin-top: 4px; color: var(--muted-2); font-size: 9px; }.task-row.done .task-main b { text-decoration: line-through; color: #687e93; }.task-row.overdue { border-color: rgba(239,111,124,.3); }
.task-actions { display: flex; align-items: center; gap: 6px; }.task-date { color: #7890a6; font-size: 9px; white-space: nowrap; }.task-date.overdue { color: #f28c97; }
.mini-action { width: 24px; height: 24px; border: 0; border-radius: 7px; background: #17283c; color: #8299ae; cursor: pointer; }.mini-action:hover { color: #fff; background: #213752; }
.sector-bars { display: grid; gap: 11px; }.sector-row { display: grid; grid-template-columns: 100px 1fr 30px; gap: 10px; align-items: center; color: #a7bacb; font-size: 10px; }.sector-track { height: 7px; border-radius: 7px; background: #22354a; overflow: hidden; }.sector-track i { display: block; height: 100%; border-radius: 7px; background: linear-gradient(90deg, var(--blue), var(--green)); }
.risk-watch { display: grid; gap: 9px; }.risk-item { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: start; padding: 10px; border: 1px solid var(--line-soft); border-radius: 9px; background: #101f31; }.risk-item i { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--red); }.risk-item i.medium { background: var(--amber); }.risk-item b { display: block; font-size: 10px; }.risk-item small { display: block; margin-top: 3px; color: var(--muted-2); font-size: 8px; }

.toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #0d1929; }
.toolbar > label:not(.search-box) { color: var(--muted); font-size: 10px; }
.search-box { min-width: 250px; flex: 1; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #091523; }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 11px; }
select { min-height: 34px; padding: 7px 28px 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #101e30; color: #b8c8d7; font-size: 10px; outline: 0; }
.project-grid { display: grid; grid-template-columns: repeat(3, minmax(260px, 1fr)); gap: 13px; }
.project-card { position: relative; overflow: hidden; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(145deg, #101e30, #0d1929); cursor: pointer; transition: .2s ease; }
.project-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent, var(--blue)); opacity: .8; }.project-card:hover { transform: translateY(-2px); border-color: #385774; box-shadow: var(--shadow); }
.project-card-head { display: flex; justify-content: space-between; gap: 10px; }.project-card h3 { margin: 0; font-size: 14px; }.project-code { margin-top: 4px; color: var(--muted-2); font-size: 8px; }.project-score { width: 43px; height: 43px; display: grid; place-items: center; border: 3px solid var(--green); border-radius: 50%; color: #8ae0d0; font-size: 12px; font-weight: 800; }
.project-summary { min-height: 39px; margin: 13px 0; color: var(--muted); font-size: 10px; line-height: 1.8; }
.project-meta { display: flex; flex-wrap: wrap; gap: 6px; }.meta-chip { padding: 4px 7px; border: 1px solid #263d55; border-radius: 8px; color: #8fa7bc; font-size: 8px; }
.project-progress { margin-top: 14px; }.progress-label { display: flex; justify-content: space-between; color: var(--muted-2); font-size: 8px; }.progress-track { height: 5px; margin-top: 6px; overflow: hidden; border-radius: 5px; background: #22354a; }.progress-track i { display: block; height: 100%; background: var(--green); }
.project-next { display: flex; align-items: center; gap: 7px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line-soft); color: #849aaf; font-size: 9px; }.project-next b { color: #c9d7e3; font-weight: 600; }
.empty-state { padding: 80px 20px; border: 1px dashed var(--line); border-radius: 13px; color: var(--muted); text-align: center; }.empty-state b { color: #d9e5ee; }.empty-state p { font-size: 11px; }

.detail-head { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 16px; }.back-button { margin-bottom: 14px; padding: 0; border: 0; background: transparent; color: #69baf0; font-size: 11px; cursor: pointer; }.detail-title { display: flex; align-items: flex-start; gap: 12px; }.detail-title h1 { margin: 0 0 6px; font-size: 25px; }.detail-title p { margin: 0; color: var(--muted); font-size: 10px; }.detail-actions { display: flex; gap: 8px; align-items: flex-start; }
.detail-summary-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px; }.detail-stat { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #101e30; }.detail-stat span { display: block; color: var(--muted-2); font-size: 8px; }.detail-stat b { display: block; margin-top: 7px; color: #e7f0f7; font-size: 13px; }.detail-tabs { display: flex; gap: 4px; padding: 5px; margin-bottom: 14px; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: #0d1929; }.detail-tab { padding: 9px 13px; border: 0; border-radius: 8px; background: transparent; color: #7f96aa; font-size: 10px; cursor: pointer; white-space: nowrap; }.detail-tab.active { background: #1a2d44; color: #fff; }
.detail-grid { display: grid; grid-template-columns: 1.45fr .8fr; gap: 14px; }.info-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.info-block { padding: 11px; border: 1px solid var(--line-soft); border-radius: 9px; background: #101e30; }.info-block span { display: block; color: var(--muted-2); font-size: 8px; }.info-block b { display: block; margin-top: 6px; font-size: 11px; }.long-text { color: #b3c4d2; font-size: 10px; line-height: 1.85; white-space: pre-line; }
.quick-summary { padding: 13px; border-left: 3px solid var(--green); background: var(--green-soft); color: #b9dcd5; font-size: 10px; line-height: 1.8; }
.completeness-list { display: grid; gap: 8px; }.completeness-item { display: grid; grid-template-columns: 90px 1fr 35px; gap: 8px; align-items: center; color: var(--muted); font-size: 9px; }
.subsection-head { display: flex; justify-content: space-between; align-items: center; margin: 0 0 12px; }.subsection-head h3 { margin: 0; font-size: 13px; }
.material-list, .research-list, .risk-list, .timeline { display: grid; gap: 8px; }.material-row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid var(--line-soft); border-radius: 9px; background: #101e30; }.material-name b { display: block; font-size: 10px; }.material-name small { display: block; margin-top: 3px; color: var(--muted-2); font-size: 8px; }
.finance-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 14px; }.metric-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }.metric-card { padding: 13px; border: 1px solid var(--line-soft); border-radius: 10px; background: #101e30; }.metric-card span { color: var(--muted-2); font-size: 8px; }.metric-card b { display: block; margin-top: 7px; font-size: 16px; }.metric-card small { display: block; margin-top: 4px; color: #72cdbc; font-size: 8px; }
.research-card, .meeting-card, .risk-card { padding: 12px; border: 1px solid var(--line-soft); border-radius: 10px; background: #101e30; }.card-topline { display: flex; justify-content: space-between; gap: 8px; }.card-topline b { font-size: 10px; }.card-topline small { color: var(--muted-2); font-size: 8px; }.research-card p, .meeting-card p, .risk-card p { margin: 8px 0 0; color: #a9bdcc; font-size: 9px; line-height: 1.75; white-space: pre-line; }
.timeline-item { position: relative; padding: 0 0 15px 23px; border-left: 1px solid #2e4862; }.timeline-item::before { content: ""; position: absolute; left: -4px; top: 1px; width: 7px; height: 7px; border-radius: 50%; background: var(--green); }.timeline-item b { display: block; font-size: 10px; }.timeline-item span { display: block; margin: 4px 0; color: #658098; font-size: 8px; }.timeline-item p { margin: 0; color: #9fb3c4; font-size: 9px; }

.knowledge-grid, .activity-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; }.activity-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }.activity-kpi span { color: var(--muted); font-size: 10px; }.activity-kpi b { display: block; margin-top: 8px; font-size: 22px; }
.meeting-card { cursor: pointer; }.meeting-card:hover { border-color: #355470; }.meeting-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 7px; color: #718ba2; font-size: 8px; }

.scoring-grid { display: grid; grid-template-columns: 330px 1fr; gap: 14px; }.span-wide { min-width: 0; }.weight-controls { display: grid; gap: 13px; margin-bottom: 16px; }.weight-row { display: grid; grid-template-columns: 74px 1fr 35px; gap: 8px; align-items: center; color: #a7b9c8; font-size: 9px; }.weight-row input { accent-color: var(--green); }.weight-row b { text-align: right; color: #dce7ef; }
.compare-panel { margin-top: 14px; }.compare-selects { display: flex; gap: 8px; align-items: center; color: #738aa0; font-size: 9px; }.comparison-grid { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 12px; }.compare-project { padding: 14px; border: 1px solid var(--line-soft); border-radius: 11px; background: #101e30; }.compare-project h3 { margin: 0 0 5px; font-size: 13px; }.compare-project p { margin: 0; color: var(--muted); font-size: 9px; }.compare-score { margin: 13px 0; color: var(--green); font-size: 27px; font-weight: 800; }.compare-middle { display: grid; gap: 8px; }.compare-metric { display: grid; grid-template-columns: 35px 1fr 35px; gap: 8px; align-items: center; }.compare-metric b { font-size: 9px; text-align: center; }.dual-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }.dual-bar span { height: 6px; overflow: hidden; background: #22354a; }.dual-bar span:first-child { border-radius: 6px 0 0 6px; text-align: right; }.dual-bar span:last-child { border-radius: 0 6px 6px 0; }.dual-bar i { display: inline-block; height: 100%; }.dual-bar .a { background: var(--blue); }.dual-bar .b { background: var(--green); }

.report-paper { max-width: 980px; min-height: 700px; margin: 0 auto; padding: 44px; border: 1px solid #d8e0e8; border-radius: 4px; background: #fff; color: #172331; box-shadow: 0 20px 50px rgba(0,0,0,.22); }.report-cover { padding-bottom: 22px; border-bottom: 3px solid #17324c; }.report-cover small { color: #527088; letter-spacing: 1.5px; }.report-cover h1 { margin: 10px 0 6px; font-size: 27px; }.report-cover p { margin: 0; color: #607487; font-size: 11px; }.report-section { margin-top: 25px; }.report-section h2 { padding-bottom: 7px; border-bottom: 1px solid #dbe3e9; font-size: 15px; }.report-section p, .report-section li { color: #425568; font-size: 10px; line-height: 1.9; }.report-info-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }.report-info { padding: 10px; background: #f2f6f8; }.report-info span { display: block; color: #718392; font-size: 8px; }.report-info b { display: block; margin-top: 5px; font-size: 10px; }.report-score-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }.report-score { padding: 9px 5px; background: #edf4f6; text-align: center; }.report-score b, .report-score span { display: block; }.report-score b { font-size: 14px; }.report-score span { margin-top: 3px; color: #647887; font-size: 7px; }

.settings-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; }.settings-grid .panel h2 { margin: 13px 0 7px; font-size: 14px; }.settings-grid .panel p { min-height: 55px; color: var(--muted); font-size: 9px; line-height: 1.7; }.settings-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; background: var(--blue-soft); color: #91abff; font-size: 18px; }.danger-panel { border-color: rgba(239,111,124,.28); }.danger-panel .settings-icon { background: var(--red-soft); color: #f08a95; }.storage-summary { color: #a7bac9; font-size: 9px; line-height: 1.9; }.rule-panel { margin-top: 14px; }.template-list { display: flex; flex-wrap: wrap; gap: 8px; }.template-chip { display: flex; gap: 7px; align-items: center; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; background: #101e30; color: #aebfcd; font-size: 9px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 90; display: none; background: rgba(2, 8, 15, .72); backdrop-filter: blur(3px); }.modal-backdrop.open { display: block; }
.modal { position: fixed; z-index: 100; top: 50%; left: 50%; width: min(720px, calc(100vw - 30px)); max-height: calc(100vh - 40px); display: none; flex-direction: column; overflow: hidden; transform: translate(-50%, -50%); border: 1px solid #304962; border-radius: 15px; background: #0e1a2a; box-shadow: 0 35px 90px rgba(0,0,0,.55); }.modal.open { display: flex; }
.modal-head { display: flex; justify-content: space-between; align-items: flex-start; padding: 19px 20px 14px; border-bottom: 1px solid var(--line); }.modal-head h2 { margin: 5px 0 0; font-size: 17px; }.modal-body { padding: 18px 20px; overflow-y: auto; }.modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 13px 20px; border-top: 1px solid var(--line); background: #0b1725; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.field { display: grid; gap: 6px; }.field.full { grid-column: 1 / -1; }.field label { color: #91a5b8; font-size: 9px; }.field input, .field textarea, .field select { width: 100%; padding: 10px 11px; border: 1px solid #293f57; border-radius: 8px; background: #091523; color: #eef5fb; outline: 0; font-size: 10px; }.field textarea { min-height: 86px; resize: vertical; line-height: 1.6; }.field input:focus, .field textarea:focus, .field select:focus { border-color: #4f7a9f; }.field-help { color: #617b92; font-size: 8px; }
.form-section { grid-column: 1/-1; margin-top: 5px; padding-top: 12px; border-top: 1px solid var(--line-soft); color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.confirm-note { padding: 12px; border: 1px solid rgba(240,184,91,.3); border-radius: 9px; background: var(--amber-soft); color: #d8bd88; font-size: 10px; line-height: 1.7; }
.method-flow { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin: 12px 0 20px; }.method-flow span { padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #101e30; color: #afc0cf; font-size: 9px; }.method-copy { color: #a9bccb; font-size: 10px; line-height: 1.85; }.method-copy h3 { color: #edf4fa; font-size: 12px; }

.toast { position: fixed; z-index: 200; left: 50%; bottom: 28px; max-width: calc(100vw - 30px); padding: 10px 15px; border: 1px solid #35546f; border-radius: 9px; background: #13243a; color: #dce8f2; box-shadow: var(--shadow); font-size: 10px; opacity: 0; pointer-events: none; transform: translate(-50%, 15px); transition: .2s ease; }.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 1200px) {
  .project-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
  .kpi-grid, .settings-grid { grid-template-columns: repeat(2, 1fr); }
  .span-8, .span-7, .span-5, .span-4 { grid-column: span 12; }
  .scoring-grid { grid-template-columns: 1fr; }
}
@media (max-width: 850px) {
  .app-shell { display: block; }.sidebar { position: fixed; left: -260px; width: 240px; transition: .2s ease; }.sidebar.open { left: 0; box-shadow: 20px 0 60px rgba(0,0,0,.5); }.mobile-menu { display: block; }.global-search { display: none; }.topbar { padding: 0 15px; }.top-actions .icon-button, .avatar { display: none; }.content { padding: 20px 15px; }.page-head { align-items: flex-start; flex-direction: column; }.project-grid, .knowledge-grid, .activity-grid, .detail-grid, .finance-grid, .comparison-grid { grid-template-columns: 1fr; }.detail-summary-grid { grid-template-columns: repeat(2, 1fr); }.stage-pipeline { grid-template-columns: repeat(2, 1fr); }.toolbar { align-items: stretch; flex-direction: column; }.search-box { min-width: 0; }.activity-kpis { grid-template-columns: repeat(2, 1fr); }.report-paper { padding: 25px 18px; }.report-info-grid { grid-template-columns: repeat(2, 1fr); }.report-score-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 560px) {
  .kpi-grid, .settings-grid, .project-grid { grid-template-columns: 1fr; }.form-grid { grid-template-columns: 1fr; }.field.full, .form-section { grid-column: auto; }.head-actions { flex-wrap: wrap; }.top-actions .primary-button { padding: 9px 10px; }.detail-summary-grid { grid-template-columns: 1fr 1fr; }.detail-head { flex-direction: column; }.info-list, .metric-cards { grid-template-columns: 1fr; }.compare-selects { align-items: stretch; flex-direction: column; }.activity-kpis { grid-template-columns: 1fr 1fr; }
}
@media print {
  body { background: white; }.sidebar, .topbar, .page-head, .toolbar, .view:not(#reports-view) { display: none !important; }.app-shell { display: block; }.content { padding: 0; }.report-paper { max-width: none; min-height: 0; border: 0; box-shadow: none; padding: 0; }.view#reports-view { display: block !important; }
}

.stack-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.stack-actions .primary-button,.stack-actions .secondary-button{flex:1 1 150px}
