:root{--navy:#12263b;--navy2:#1c3854;--blue:#2872d4;--blue2:#eaf2fd;--bg:#f4f7fb;--panel:#fff;--text:#172235;--muted:#687386;--border:#dfe5ed;--danger:#e4534f}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}a{color:var(--blue)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:linear-gradient(180deg,#102237,#17314b);color:#fff;padding:0 8px;display:flex;flex-direction:column;z-index:20;box-shadow:3px 0 18px rgba(24,42,65,.1)}.brand{height:64px;display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{font-size:32px;color:#fff}.brand strong{display:block;font-size:17px}.brand span{display:block;color:#c6d2df;font-size:13px}.nav-label{font-size:11px;color:#aebdcb;margin:24px 12px 8px;letter-spacing:.04em}.side-nav{display:grid;gap:3px}.side-nav a,.sidebar-bottom a{display:flex;align-items:center;gap:11px;color:#eef4fa;text-decoration:none;padding:10px 12px;border-radius:6px}.side-nav a span,.sidebar-bottom a span{font-size:18px;width:20px;text-align:center}.side-nav a:hover,.side-nav a.active{background:#294e73}.side-nav a.active{box-shadow:inset 3px 0 0 #55a2ff}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:12px 0 18px}.main-area{margin-left:230px;min-width:0;width:calc(100% - 230px)}.app-topbar{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:10}.menu-toggle{border:0;background:transparent;font-size:22px;color:#3f4d61;cursor:pointer}.topbar-spacer,.toolbar-spacer{flex:1}.top-user{text-align:right;margin-right:12px}.top-user span{display:block;font-weight:600}.top-user small{color:var(--muted)}.avatar{width:34px;height:34px;border-radius:50%;background:#e6ebf1;display:grid;place-items:center;color:#93a0b1}.content{padding:24px 28px 40px;max-width:1600px;margin:0 auto}.page-heading{display:flex;gap:14px;align-items:center;margin:0 0 22px}.heading-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:27px;color:var(--blue);background:var(--blue2);font-weight:700}.page-heading h1{margin:0;font-size:29px;line-height:1.15}.page-heading p{margin:4px 0 0;color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:12px}.button,button:not(.menu-toggle):not(.info-button):not(.icon-btn):not(#dialog-close){border:1px solid var(--blue);background:var(--blue);color:#fff;padding:9px 14px;border-radius:6px;text-decoration:none;cursor:pointer}.button.secondary{background:#fff;color:var(--text);border-color:#cfd7e2}.table-search{width:280px;padding:9px 12px;border:1px solid #d2dae5;border-radius:6px;background:#fff}.table-wrap{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:auto;box-shadow:0 2px 9px rgba(33,56,82,.05)}table{width:100%;min-width:1040px;border-collapse:collapse}th{background:linear-gradient(180deg,#223b57,#1a314b);color:#fff;font-weight:650;text-align:left;padding:11px 12px;white-space:nowrap;cursor:pointer;border-right:1px solid rgba(255,255,255,.18)}th[data-dir=asc]::after{content:" ▲"}th[data-dir=desc]::after{content:" ▼"}td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:hover{background:#f8fbff}td small{display:block;color:var(--muted);margin-top:2px}.badge,.effort{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;white-space:nowrap}.badge{background:#edf1f5}.effort-very-low{background:#dff5e7;color:#087a39}.effort-low{background:#e7f6ec;color:#208248}.effort-medium{background:#fff1c9;color:#9a6700}.effort-medium-high{background:#ffead9;color:#c35400}.effort-high{background:#ffe1de;color:#c83428}.effort-very-high{background:#f4dcff;color:#9126b5}.info-button{border:0;background:#2876d5;color:#fff;width:19px;height:19px;border-radius:50%;padding:0;font-size:12px;font-weight:700;cursor:pointer;margin-left:5px}.row-actions{white-space:nowrap}.row-actions form{display:inline}.icon-btn{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:4px;border:0;color:#fff;text-decoration:none;cursor:pointer;padding:0}.icon-btn.edit{background:#2872d4}.icon-btn.delete{background:#eb554f;margin-left:5px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.summary-card{background:#fff;border:1px solid var(--border);border-radius:9px;padding:20px;text-decoration:none;color:var(--text);box-shadow:0 3px 12px rgba(33,56,82,.05)}.summary-card span{display:block;color:var(--muted)}.summary-card strong{display:block;font-size:36px;margin:8px 0;color:var(--blue)}.summary-card small{color:var(--blue)}.welcome-panel{margin-top:20px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:22px}.welcome-panel h2{margin-top:0}.notice{padding:11px 14px;margin-bottom:15px;border:1px solid #bcd8c5;background:#edf8f0;border-radius:6px}.notice.error{border-color:#e3b8b8;background:#fff0f0}.form-page{background:var(--bg)}.simple-topbar{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 24px}.simple-topbar a{text-decoration:none}.form-container{max-width:850px;margin:30px auto;padding:0 20px}.edit-form{background:#fff;border:1px solid var(--border);border-radius:8px;padding:24px}.edit-form label{display:block;font-weight:600;margin:15px 0}.edit-form input,.edit-form select,.edit-form textarea{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #d4dce6;border-radius:6px;background:#fff}.edit-form textarea{min-height:115px;resize:vertical}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}dialog{max-width:620px;width:calc(100% - 34px);border:0;border-radius:10px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(8,20,34,.45)}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:0}.dialog-head button{border:0;background:transparent;font-size:25px;cursor:pointer}#dialog-content{white-space:pre-wrap;margin-top:15px;line-height:1.7}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0;width:100%}.cards{grid-template-columns:1fr}.content{padding:20px}.toolbar{flex-wrap:wrap}.toolbar-spacer{display:none}.table-search{flex:1;min-width:180px}.grid2{grid-template-columns:1fr}}.history-actions{margin-bottom:16px}.snapshot-form{display:flex;gap:10px;max-width:760px}.snapshot-form input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:#fff}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.analysis-panel{background:#fff;border:1px solid var(--border);border-radius:9px;padding:20px;margin-bottom:18px;box-shadow:0 3px 12px rgba(33,56,82,.04)}.analysis-panel.wide{grid-column:1/-1}.analysis-panel h2{margin:0 0 4px}.panel-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.panel-heading p{margin:2px 0 0;color:var(--muted)}.panel-heading select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff}.chart-box{height:340px;margin-top:18px}.chart-box.small{height:300px}.compare-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:16px}.compare-form label{font-weight:600}.compare-form select{display:block;width:100%;margin-top:5px;padding:9px;border:1px solid var(--border);border-radius:6px;background:#fff}.comparison-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.comparison-card{border:1px solid var(--border);border-radius:8px;padding:15px}.comparison-card h3{margin:0 0 10px}.comparison-card div{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--border)}.snapshot-list{display:grid;gap:8px;margin-top:14px}.snapshot-list>div{display:flex;justify-content:space-between;gap:15px;padding:10px 12px;border:1px solid var(--border);border-radius:6px}.snapshot-list span{color:var(--muted);text-align:right}@media(max-width:900px){.analysis-grid{grid-template-columns:1fr}.analysis-panel.wide{grid-column:auto}.compare-form{grid-template-columns:1fr}.comparison-cards{grid-template-columns:1fr}.snapshot-form{flex-direction:column}.panel-heading{flex-direction:column}.snapshot-list>div{flex-direction:column}.snapshot-list span{text-align:left}}
.chart-controls{display:flex;gap:10px;flex-wrap:wrap}.comparison-toolbar{display:flex;justify-content:flex-end;margin-top:14px}.positive{color:#16834b}.negative{color:#c43f39}.change-details{display:grid;gap:12px;margin-top:18px}.change-group{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden}.change-group summary{cursor:pointer;font-weight:650;padding:13px 15px;background:#f7f9fc}.change-group h4{margin:16px 15px 8px}.change-list{display:grid;gap:8px;padding:0 15px 15px}.change-item{border:1px solid var(--border);border-left:4px solid #8493a5;border-radius:6px;padding:10px 12px}.change-item.added{border-left-color:#269b61}.change-item.removed{border-left-color:#df554e}.change-item.changed{border-left-color:#d78a20}.change-item>span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.field-change{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(120px,1fr) auto minmax(120px,1fr);gap:8px;align-items:start;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.field-change del{color:#a43d38;text-decoration:none;background:#fff0ef;padding:3px 6px;border-radius:4px}.field-change ins{color:#147545;text-decoration:none;background:#ebf8f0;padding:3px 6px;border-radius:4px}.field-change .arrow{color:var(--muted)}.muted{color:var(--muted);padding:0 15px 14px}@media(max-width:900px){.chart-controls{width:100%}.chart-controls select{width:100%}.field-change{grid-template-columns:1fr}.field-change .arrow{display:none}.comparison-toolbar{justify-content:stretch}.comparison-toolbar .button{width:100%;text-align:center}}
