:root{--bg: #F5F6F7;--ink: #1A272F;--muted: #5B738B;--line: #D5DADD;--side: #354A5F;--side2: #223548;--card: #fff;--accent: #0070F2;--pos: #256F3A;--warn: #E76500;--neg: #BB0000;--tile: #EFF1F2}*{box-sizing:border-box}body{margin:0;font-family:"72","72 Full",Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--accent)}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:var(--side);color:#fff;padding:20px 12px;overflow:visible;z-index:6}.sidebar.admin{background:var(--side2)}.brand{font-size:20px;font-weight:700;letter-spacing:.02em;padding:0 8px}.sub{font-size:11px;color:#9caebf;margin:6px 8px 18px}.navbtn{display:block;width:100%;border:0;background:transparent;color:#d1dde8;text-align:left;padding:9px 12px;border-radius:6px;margin:2px 0;cursor:pointer;font-size:13px;text-decoration:none;font-family:inherit}.navbtn:hover,.navbtn.active{background:#0070f2;color:#fff}.navgroup{position:relative}.navgroup>.navbtn{display:flex;justify-content:space-between;align-items:center}.navcaret{font-size:11px;opacity:.7}.navflyout{display:none;position:absolute;left:100%;top:0;min-width:188px;background:var(--side2);border:1px solid #3E5468;border-radius:0 8px 8px 0;padding:8px 6px;box-shadow:8px 8px 24px #00000047;z-index:30}.navgroup.open .navflyout,.navgroup:hover .navflyout{display:block}.navflyout .navbtn{margin:1px 0;font-size:12px}.main{flex:1;padding:20px 24px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}.topbar h2{font-weight:700;color:var(--side)}.banner{background:#fff4ce;border:1px solid #F9A825;color:#5d4206;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:700;margin-bottom:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:16px;box-shadow:0 1px 2px #1a272f0a}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{font-size:28px;font-weight:700;margin:4px 0}.muted{color:var(--muted);font-size:13px}.pill{display:inline-block;background:#ebf8ff;color:#0070f2;padding:4px 10px;border-radius:999px;font-size:12px;margin:2px;font-weight:600}button.primary,button.secondary,button.danger{border:0;border-radius:6px;padding:8px 12px;cursor:pointer;margin-right:6px;font-weight:600;font-size:13px}button.primary{background:var(--accent);color:#fff}button.secondary{background:#eaecee;color:var(--ink)}button.danger{background:#fbeaea;color:var(--neg)}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:middle}th{background:#f5f6f7;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}label{display:block;font-size:12px;font-weight:600;color:var(--muted)}input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:36px;padding:8px 12px;border:1px solid #A9B4BE;border-radius:4px;margin:6px 0 10px;font-family:inherit;font-size:13px;line-height:20px;color:var(--ink);background-color:#fff;box-shadow:none}textarea{height:auto;min-height:72px;resize:vertical}select{padding-right:36px;background-color:#fff;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%235B738B' d='M1.2 1.5 6 6.3 10.8 1.5'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;cursor:pointer}select::-ms-expand{display:none}input:disabled,select:disabled{background:var(--tile);color:var(--muted);cursor:not-allowed}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #0070f22e}option{color:var(--ink);background:#fff}.error{color:var(--neg);font-size:13px}.ok{color:var(--pos);font-size:13px}.login{max-width:480px;margin:8vh auto;background:#fff;padding:28px;border-radius:8px;box-shadow:0 8px 24px #1a272f14}.login-wide{max-width:760px}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px;align-items:start}.portal-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.portal-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:18px;cursor:pointer}.portal-card strong{display:block;font-size:16px;margin-bottom:6px;color:var(--side)}.portal-card span{display:block;color:var(--muted);font-size:13px;line-height:1.4}.portal-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.portal-card.admin{background:#f5f6f7}.login form button{margin-top:4px}.demo-accounts{margin-top:18px;background:var(--tile);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.login-grid .demo-accounts{margin-top:0}.demo-password{margin:6px 0 10px;font-size:15px;font-weight:700;color:var(--side);letter-spacing:.02em}.demo-group{margin:4px 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.demo-account{display:block;width:100%;text-align:left;font-family:inherit;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:0 0 6px;cursor:pointer}.demo-account strong{display:block;font-size:13px;color:var(--side)}.demo-account span,.demo-account em{display:block;font-size:12px;color:var(--muted);font-style:normal;margin-top:2px}.demo-account:hover,.demo-account.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kpi{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;border-top:3px solid var(--accent)}.kpi.tone-positive{border-top-color:var(--pos)}.kpi.tone-critical{border-top-color:var(--warn)}.kpi.tone-negative{border-top-color:var(--neg)}.kpi-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:26px;font-weight:700;margin-top:4px;color:var(--side)}.chart-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.chart-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.chart-card h4{margin:0 0 12px;font-size:14px;color:var(--side)}.donut-wrap{display:flex;gap:16px;align-items:center}.legend{list-style:none;padding:0;margin:0;font-size:12px;color:var(--muted)}.legend-item{display:inline-flex;align-items:center;gap:6px;margin-right:12px;font-size:12px}.swatch{width:10px;height:10px;border-radius:2px;display:inline-block;margin-right:6px}.hbar-row{display:grid;grid-template-columns:64px 1fr 48px;gap:8px;align-items:center;margin:6px 0;font-size:12px}.hbar-lab{color:var(--side);font-weight:600}.hbar-track{height:10px;background:var(--tile);border-radius:6px;overflow:hidden}.hbar-fill{height:100%;border-radius:6px}.hbar-val{text-align:right;color:var(--muted)}.bar-plot{display:flex;align-items:flex-end;gap:10px;height:150px;overflow-x:auto;padding-bottom:4px}.bar-col{flex:1;min-width:36px;display:flex;flex-direction:column;align-items:center;gap:6px}.bar-stack{display:flex;gap:3px;align-items:flex-end;height:120px}.bar{width:14px;border-radius:3px 3px 0 0}.bar-x{font-size:10px;color:var(--muted);text-align:center;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.st-positive{background:#e5f5e8;color:var(--pos)}.st-negative{background:#fbeaea;color:var(--neg)}.st-critical{background:#fef3e8;color:var(--warn)}.st-neutral{background:#eaecee;color:var(--muted)}.table-wrap{overflow-x:auto}.row-actions{white-space:nowrap}.row-actions select{width:auto;min-width:168px;height:32px;margin:0 6px 0 0;display:inline-block;vertical-align:middle}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.page-head h3{margin:0 0 4px}.page-head .muted{margin:0;max-width:640px}.back-link{display:inline-block;margin:0 0 8px;padding:0;border:0;background:none;font-family:inherit;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;cursor:pointer}.back-link:hover{text-decoration:underline}.row-link{font-weight:600;text-decoration:none}.row-link:hover{text-decoration:underline}.page-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.page-actions button{margin:0}.restore-list{margin:8px 0 12px;padding-left:18px;color:var(--side)}.restore-list li{margin:4px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 12px;margin-top:8px}.form-grid h4{grid-column:1/-1;margin:0}.form-grid button{align-self:end;margin-bottom:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a272f7a;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 24px;overflow:auto}.modal{background:#fff;border-radius:10px;width:min(640px,100%);box-shadow:0 16px 48px #1a272f38;padding:18px 20px 20px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.modal-head h4{margin:0;font-size:16px;color:var(--side)}.modal-head .secondary{margin:0}.result-panel{background:var(--tile);border:1px solid var(--line);border-left:4px solid var(--pos);border-radius:8px;padding:14px 16px}.result-panel.failed{border-left-color:var(--neg)}.result-panel.pending{border-left-color:var(--warn)}.result-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.result-top strong{color:var(--side);font-size:15px}.result-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:0 0 12px}.result-meta div{margin:0}.result-meta dt{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.result-meta dd{margin:2px 0 0;font-size:13px;color:var(--ink)}.role-group{margin:18px 0 10px;color:var(--side)}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--tile)}.role-card h4{margin:4px 0 6px;color:var(--side)}.list-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:0 0 14px}.list-toolbar .learn-filters{margin:0}.filter-field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:140px}.filter-field span{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.filter-field select,.filter-search{width:160px;max-width:100%;height:32px;margin:0;padding:6px 10px}.filter-field-search{min-width:200px;flex:1}.filter-field-search .filter-search,.filter-field-search input{width:100%;min-width:180px}.list-toolbar>button.secondary{height:32px;margin:0;align-self:flex-end}.learn-filters{display:inline-flex;gap:2px;flex-wrap:wrap;margin:4px 0 16px;padding:4px;background:var(--tile);border-radius:8px}.learn-filters button.secondary{margin:0;background:transparent;color:var(--muted)}.learn-filters button.secondary.on{background:#fff;color:var(--accent);box-shadow:0 1px 2px #1a272f14}.learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.learn-card{display:flex;flex-direction:column;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:14px 16px;background:#fff;min-height:100%}.learn-card.status-PENDING_REVIEW,.learn-card.status-PENDING,.learn-card.status-PENDING_APPROVAL,.learn-card.status-SUBMITTED,.learn-card.status-OPEN,.learn-card.status-INVESTIGATING{border-left-color:var(--warn)}.learn-card.status-APPROVED,.learn-card.status-EXECUTED,.learn-card.status-POSTED,.learn-card.status-POSTED_DUMMY,.learn-card.status-SIMULATED,.learn-card.status-VERIFIED{border-left-color:var(--pos)}.learn-card.status-REJECTED,.learn-card.status-FAILED,.learn-card.status-EXPIRED{border-left-color:var(--neg)}.learn-card h4{margin:10px 0 8px;color:var(--side);font-size:15px;line-height:1.3}.learn-card .page-actions{margin-top:auto}.learn-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.learn-tags{display:flex;flex-wrap:wrap;gap:6px}.learn-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.learn-meta span{background:var(--tile);color:var(--muted);font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px}.learn-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 6px}.learn-evidence{font-size:13px;line-height:1.45;color:var(--ink);background:var(--tile);padding:10px 12px;border-radius:6px;margin:4px 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.learn-evidence.full{display:block;-webkit-line-clamp:unset;overflow:visible;background:#fff;border:1px solid var(--line)}.learn-empty{text-align:center;padding:36px 16px;background:var(--tile);border-radius:8px}.learn-empty strong{display:block;color:var(--side);margin-bottom:6px}.report-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:12px 0 18px}.report-tile{text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px;cursor:pointer}.report-tile strong{display:block;color:var(--side)}.report-tile span,.report-tile em{display:block;font-size:12px;color:var(--muted);font-style:normal;margin-top:4px}.report-tile.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.story{border-top:1px solid var(--line);padding-top:14px}.story-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.insight{background:#ebf8ff;border-left:3px solid var(--accent);padding:10px 12px;font-size:13px;margin:0 0 14px}@media (max-width:1100px){.chart-grid,.role-grid,.learn-grid{grid-template-columns:1fr}}@media (max-width:900px){.app{display:block}.sidebar{width:100%;display:flex;overflow:auto;gap:4px;position:sticky;top:0;z-index:6}.navbtn{width:auto;white-space:nowrap}.navgroup{flex:0 0 auto}.navflyout{position:static;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0 0 0 4px;background:transparent}.navgroup.open .navflyout,.navgroup.current .navflyout,.navgroup:hover .navflyout{display:block}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.brand,.sub{display:none}.portal-pick,.login-grid,.form-grid{grid-template-columns:1fr}.page-head{flex-direction:column}}
