:root{--bg:#f4f7fb;--surface:#fff;--ink:#10233f;--muted:#6f7d91;--line:#e5ebf3;--navy:#10233f;--blue:#1d63e9;--blue-soft:#eaf1ff;--green:#168a61;--green-soft:#e8f6f1;--amber:#b77700;--amber-soft:#fff5dd;--red:#c94040;--red-soft:#fff0f0;--shadow:0 8px 30px #10233f0f}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.demo-banner{color:#805f00;letter-spacing:.08em;background:#fff3cd;border-bottom:1px solid #f0df9f;justify-content:center;align-items:center;height:28px;font-size:11px;font-weight:700;display:flex}.app-shell{grid-template-columns:236px 1fr;min-height:calc(100vh - 28px);display:grid}.sidebar{background:var(--navy);color:#fff;flex-direction:column;height:calc(100vh - 28px);padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:0 8px 28px;display:flex}.brand-mark{background:linear-gradient(145deg,#5d8fff,#1d63e9);border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand strong{font-size:14px;display:block}.brand span{color:#9cadc2;margin-top:3px;font-size:11px;display:block}nav{flex-direction:column;gap:7px;display:flex}.nav-item{color:#aebbd0;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;padding:11px 12px;font-weight:600;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff17}.nav-item span{text-align:center;width:20px}.sidebar-footer{color:#9cadc2;border-top:1px solid #ffffff1a;margin-top:auto;padding:18px 8px 4px}.security-pill{background:#ffffff14;border-radius:999px;align-items:center;gap:7px;margin-bottom:14px;padding:7px 9px;font-size:11px;display:inline-flex}.dot{background:#58d29d;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #58d29d26}.sidebar-footer small{font-size:10px;line-height:1.5}.main{min-width:0;padding:0 34px 50px}.topbar{justify-content:space-between;align-items:center;gap:20px;height:96px;display:flex}.eyebrow,.card-kicker{letter-spacing:.13em;color:#7b8ba1;margin:0 0 5px;font-size:10px;font-weight:800}h1{letter-spacing:-.03em;margin:0;font-size:24px}h2{letter-spacing:-.02em;margin:0;font-size:16px}h3{margin:0}.top-actions{align-items:center;gap:9px;display:flex}select,input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;outline:none;padding:10px 12px}select:focus,input:focus{border-color:#8bb1ff;box-shadow:0 0 0 3px #1d63e91a}button.primary,button.ghost{border:1px solid #0000;border-radius:9px;padding:10px 14px;font-weight:700}button.primary{background:var(--blue);color:#fff}button.primary:hover{filter:brightness(.95)}button.ghost{color:var(--ink);border-color:var(--line);background:#fff}.full{width:100%;margin-top:7px}.page{display:none}.page.active{display:block}.kpi-grid{grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px;margin-bottom:16px;display:grid}.kpi-grid.compact{grid-template-columns:repeat(5,minmax(130px,1fr))}.kpi{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;padding:16px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.kpi strong{letter-spacing:-.04em;margin:9px 0 5px;font-size:22px;display:block}.kpi small{color:var(--muted);font-size:10px}.kpi .up{color:var(--green)}.grid-2{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.grid-2.uneven{grid-template-columns:1.25fr .75fr}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:20px}.card-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.link-button{color:var(--blue);background:0 0;border:0;padding:4px;font-size:11px;font-weight:700}.chip{background:var(--blue-soft);color:var(--blue);border-radius:999px;align-items:center;padding:7px 9px;font-size:10px;font-weight:800;display:inline-flex}.allocation-wrap{grid-template-columns:180px 1fr;align-items:center;gap:24px;min-height:190px;display:grid}.donut{border-radius:50%;place-items:center;width:164px;height:164px;display:grid;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;width:112px;height:112px;position:absolute}.donut>div{z-index:2;text-align:center;position:relative}.donut strong{letter-spacing:-.05em;font-size:23px;display:block}.donut span{color:var(--muted);font-size:10px}.legend{flex-direction:column;gap:14px;display:flex}.legend-row{grid-template-columns:12px 1fr auto;align-items:center;gap:9px;font-size:12px;display:grid}.legend-color{border-radius:3px;width:9px;height:9px}.legend-row span{color:var(--muted)}.legend-row strong{font-size:12px}.bar-list{flex-direction:column;gap:16px;display:flex}.bar-row .bar-meta{justify-content:space-between;gap:10px;margin-bottom:7px;font-size:11px;display:flex}.bar-row .bar-meta span{color:var(--muted)}.bar-track{background:#eef2f7;border-radius:99px;height:8px;overflow:hidden}.bar-fill{background:var(--blue);border-radius:inherit;height:100%}.maturity-chart{align-items:flex-end;gap:12px;height:220px;padding-top:14px;display:flex}.maturity-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:7px;min-width:34px;height:100%;display:flex}.maturity-value{color:var(--muted);font-size:9px}.maturity-bar{background:linear-gradient(#5184ef,#1d63e9);border-radius:7px 7px 3px 3px;width:100%;max-width:45px;min-height:6px}.maturity-year{color:var(--muted);font-size:9px}.alert-list{flex-direction:column;gap:10px;display:flex}.alert{background:var(--amber-soft);border-radius:10px;grid-template-columns:28px 1fr;gap:10px;padding:11px;display:grid}.alert.good{background:var(--green-soft)}.alert.info{background:var(--blue-soft)}.alert-icon{background:#ffffffb3;border-radius:8px;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.alert strong{margin-bottom:3px;font-size:11px;display:block}.alert span{color:var(--muted);font-size:10px;line-height:1.4;display:block}.simple-table{border-collapse:collapse;width:100%}.simple-table th,.simple-table td{border-bottom:1px solid var(--line);text-align:left;padding:12px 8px;font-size:11px}.simple-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.simple-table tr:last-child td{border-bottom:0}.num{font-variant-numeric:tabular-nums;text-align:right!important}.section-intro{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.section-intro h2{font-size:22px}.filters{grid-template-columns:minmax(250px,1fr) 180px 160px auto;gap:10px;margin-bottom:16px;padding:14px;display:grid}.positions-card{padding:0;overflow:hidden}.positions-card .card-head{padding:20px 20px 0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-top:1px solid var(--line);white-space:nowrap;text-align:left;padding:13px 14px;font-size:10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:#fafbfd;font-size:8px}td strong{font-size:11px;display:block}td small{color:var(--muted)}.rating{background:var(--green-soft);color:var(--green);border-radius:6px;padding:5px 7px;font-weight:800;display:inline-flex}.rating.bbb{background:var(--amber-soft);color:var(--amber)}.rating.nr{color:#6d7682;background:#f0f2f5}.sim-grid{grid-template-columns:.8fr 1.2fr;gap:16px;display:grid}.form-card form{flex-direction:column;gap:13px;display:flex}.form-card label{color:var(--muted);font-size:10px;font-weight:700}.form-card input,.form-card select{width:100%;margin-top:6px}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.compare-row{border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1fr 1fr;align-items:center;gap:8px;padding:13px 0;display:grid}.compare-row:last-child{border-bottom:0}.compare-row span{color:var(--muted);font-size:11px}.compare-row strong{text-align:right;font-size:13px}.compare-row strong.after{color:var(--blue)}.verdict{background:var(--amber-soft);border-radius:11px;margin-top:18px;padding:15px;font-size:11px;line-height:1.55}.verdict.good{background:var(--green-soft)}.upload-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;display:grid}.upload-card{text-align:center}.bank-logo{border-radius:13px;place-items:center;width:46px;height:46px;margin:0 auto 12px;font-weight:800;display:grid}.bank-logo.ms{color:#214a91;background:#e7eefb}.bank-logo.efg{color:#168a61;background:#e8f6f1}.bank-logo.san{color:#c94040;background:#fff0f0}.upload-card p{color:var(--muted);min-height:34px;font-size:11px;line-height:1.5}.upload-zone{cursor:pointer;background:#fafbfd;border:1.5px dashed #bfc9d8;border-radius:11px;flex-direction:column;gap:7px;padding:20px 10px;display:flex}.upload-zone:hover{border-color:var(--blue);background:var(--blue-soft)}.upload-zone input{display:none}.upload-zone span{color:var(--blue);font-size:11px;font-weight:800}.upload-zone small{color:var(--muted);font-size:9px}.file-status{color:var(--muted);margin-top:12px;font-size:10px}.file-status.ready{color:var(--green);font-weight:800}.process-card{grid-template-columns:220px 1fr;align-items:center;gap:24px;display:grid}.steps{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.steps div{border:1px solid var(--line);border-radius:11px;padding:13px;position:relative}.steps span{background:var(--blue-soft);width:24px;height:24px;color:var(--blue);border-radius:7px;place-items:center;margin-bottom:10px;font-size:10px;font-weight:800;display:grid}.steps strong{font-size:11px;display:block}.steps small{color:var(--muted);margin-top:4px;font-size:9px;line-height:1.4;display:block}.toast{opacity:0;pointer-events:none;background:var(--navy);color:#fff;box-shadow:var(--shadow);border-radius:10px;padding:12px 15px;font-size:11px;transition:all .2s;position:fixed;bottom:24px;right:24px;transform:translateY(20px)}.toast.show{opacity:1;transform:translateY(0)}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-3,.upload-grid{grid-template-columns:1fr}}@media (max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:14px;position:static}.brand{padding-bottom:12px}nav{flex-direction:row;overflow-x:auto}.nav-item{white-space:nowrap}.sidebar-footer{display:none}.main{padding:0 14px 34px}.topbar{flex-direction:column;align-items:flex-start;height:auto;padding:18px 0}.top-actions{flex-wrap:wrap}.grid-2,.grid-2.uneven,.sim-grid,.filters,.process-card{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}}@media (max-width:520px){.kpi-grid,.kpi-grid.compact{grid-template-columns:1fr 1fr}.allocation-wrap{grid-template-columns:1fr;justify-items:center}.steps,.form-row{grid-template-columns:1fr}}a{color:inherit}button:disabled{opacity:.6;cursor:not-allowed}.brand img{border-radius:11px}.signout-button{color:#9cadc2;background:0 0;border:0;margin-top:14px;padding:0;font-size:10px;text-decoration:underline}.empty-copy{color:var(--muted);font-size:11px}.empty-state{text-align:center;max-width:620px;margin:40px auto;padding:48px}.empty-state p{color:var(--muted);line-height:1.6}.empty-icon{background:var(--blue-soft);width:52px;height:52px;color:var(--blue);border-radius:16px;place-items:center;margin:0 auto 18px;font-size:28px;display:grid}.auth-page{background:#fff;grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.auth-panel{flex-direction:column;min-height:100vh;padding:62px;display:flex}.auth-brand-panel{color:#fff;background:radial-gradient(circle at 15% 10%,#568bff59,#0000 34%),linear-gradient(145deg,#0d1f39,#132e52 58%,#163968)}.auth-brand{align-items:center;gap:14px;display:flex}.auth-brand img{border-radius:15px}.auth-brand strong{font-size:17px;display:block}.auth-brand span{color:#a9bad0;margin-top:4px;font-size:11px;display:block}.auth-copy{max-width:680px;margin:auto 0}.auth-copy h1{letter-spacing:-.055em;max-width:760px;font-size:clamp(36px,5vw,68px);line-height:1.03}.auth-copy>p:last-child{color:#bdc9d9;max-width:570px;font-size:16px;line-height:1.65}.eyebrow.light{color:#8eb5ff}.auth-security-row{color:#a9bad0;flex-wrap:wrap;gap:18px;font-size:10px;display:flex}.auth-security-row span:before{content:"✓";color:#58d29d;margin-right:7px}.auth-form-panel{background:#fbfcfe;justify-content:center}.auth-form-wrap{width:min(410px,100%);margin:0 auto}.auth-form-wrap h2{margin-bottom:8px;font-size:30px}.auth-helper{color:var(--muted);margin-bottom:28px;line-height:1.55}.login-form,.mfa-form{flex-direction:column;gap:15px;display:flex}.login-form label,.mfa-form label{color:var(--muted);font-size:11px;font-weight:700}.login-form input,.mfa-form input{width:100%;margin-top:7px;padding:13px 14px}.auth-submit{min-height:46px}.auth-footnote{color:var(--muted);text-align:center;font-size:10px;line-height:1.5}.setup-notice{background:var(--amber-soft);color:#7a5900;border-radius:10px;padding:12px 13px;font-size:11px;line-height:1.5}.form-error{background:var(--red-soft);color:var(--red);border-radius:9px;padding:11px 12px;font-size:11px}.security-page{background:radial-gradient(circle at top,#edf3ff,#f6f8fc 45%);place-items:center;min-height:100vh;padding:28px;display:grid}.security-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;width:min(520px,100%);padding:38px;box-shadow:0 24px 80px #10233f1f}.compact-security-card{max-width:430px}.security-card h1{font-size:30px}.security-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.security-icon{background:var(--blue-soft);width:58px;height:58px;color:var(--blue);border-radius:18px;place-items:center;margin:0 auto 18px;font-weight:900;display:grid}.mfa-form{text-align:left;margin-top:24px}.qr-code{width:210px;height:210px;box-shadow:0 0 0 1px var(--line);border:10px solid #fff;border-radius:12px;margin:0 auto}.secret-box{border:1px solid var(--line);overflow-wrap:anywhere;background:#f7f9fc;border-radius:10px;padding:12px}.secret-box span{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:9px;display:block}.secret-box code{font-size:11px}.security-status{color:var(--muted)}@media (max-width:860px){.auth-page{grid-template-columns:1fr}.auth-brand-panel{min-height:370px;padding:34px}.auth-form-panel{min-height:auto;padding:42px 24px}.auth-copy h1{margin-top:14px;font-size:38px}.auth-security-row{display:none}}@media print{.sidebar,.top-actions,.demo-banner,.link-button{display:none!important}.app-shell{display:block}.main{padding:0}.card,.kpi{box-shadow:none;break-inside:avoid}body{background:#fff}}
