:root{--navy: #102b4c;--ink: #1c3146;--muted: #647b91;--teal: #087f92;--blue: #125e9d;--green: #118368;--red: #c5444b;--yellow: #cf973e;--line: #e1e9f0;--bg: #f3f6fa;--panel: #fff;--soft: #edf4f8;--radius: 13px }*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.46 Segoe UI,Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.side{background:linear-gradient(175deg,#122d4b,#0a2239);color:#e5eff7;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto}.brand{padding:24px 18px 22px;border-bottom:1px solid #ffffff22;display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;background:#0e8fa6;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff}.brand-name{font-weight:780;letter-spacing:.5px}.brand-sub{color:#a2c2d5;font-size:11px}.nav{padding:18px 10px;display:flex;flex-direction:column;gap:5px}.nav button{border:0;background:none;text-align:left;border-radius:9px;padding:11px 13px;color:#d4e2ef;display:flex;align-items:center;gap:11px;width:100%;font-size:13px}.nav button:hover,.nav button.active{background:#ffffff20;color:#fff}.nav button.active{box-shadow:inset 3px 0 #44c5d3}.nav-icon{font-size:17px;width:22px;text-align:center}.side-bottom{margin-top:auto;padding:16px 19px;border-top:1px solid #ffffff24;font-size:11px;color:#b6cadb}.side-bottom b{color:#fff}.main{min-width:0}.top{padding:24px 30px 17px;border-bottom:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;align-items:center;gap:14px}.top h1{margin:0;color:var(--navy);font-size:25px;font-weight:750}.top p{color:var(--muted);margin:4px 0 0}.top-actions{display:flex;align-items:center;gap:10px}.work{padding:24px 30px 45px;max-width:1680px;margin:auto}.banner{padding:12px 16px;border:1px solid #c9e0ed;background:#f0faff;border-radius:10px;margin-bottom:17px;font-size:13px}.banner.warning{border-color:#efdfb7;background:#fff9e8}.banner.critical{border-color:#efcbd0;background:#fff4f5}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.col12{grid-column:span 12}.col8{grid-column:span 8}.col6{grid-column:span 6}.col4{grid-column:span 4}.col3{grid-column:span 3}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 2px 10px #13395b07;min-width:0}.card h2{font-size:16px;margin:0 0 12px;color:var(--navy)}.card h3{font-size:14px;margin:0 0 10px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;min-width:0}.stat .label{font-size:12px;color:var(--muted)}.stat .value{font-weight:750;font-size:23px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px}.stat .sub{font-size:11px;color:var(--muted);margin-top:3px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px}.formgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px}.field{display:flex;flex-direction:column;gap:5px;grid-column:span 4;min-width:0}.field.full{grid-column:span 12}.field.half{grid-column:span 6}.field.quarter{grid-column:span 3}.field label{font-weight:600;font-size:12px;color:#435a70}.field input,.field select,.field textarea,.toolbar input,.toolbar select{width:100%;border:1px solid #cbd8e3;border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink);outline:none;min-height:39px}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #087f9220}.field textarea{min-height:82px;resize:vertical}.help{font-size:11px;color:var(--muted)}.btn{background:var(--blue);border:1px solid var(--blue);color:#fff;border-radius:8px;padding:9px 15px;font-weight:600;min-height:36px}.btn:hover{filter:brightness(1.07)}.btn.outline{background:#fff;border:1px solid #cbd8e3;color:var(--navy)}.btn.teal{background:var(--teal);border-color:var(--teal)}.btn.red{background:var(--red);border-color:var(--red)}.btn.small{font-size:12px;padding:6px 10px;min-height:30px}.btn.ghost{border-color:transparent;background:#edf2f7;color:#30485e}.buttonline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.toolbar input{max-width:260px}.toolbar select{max-width:230px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}thead{background:#eaf2f8;color:var(--navy)}th,td{padding:10px 11px;border-bottom:1px solid #eaf0f5;text-align:left}tbody tr:hover{background:#f5f9fc}tbody tr:last-child td{border-bottom:0}.badge{display:inline-block;background:#ecf3f8;border-radius:6px;color:#315576;padding:8px 7px;font-size:11px;font-weight:650}.badge.good{background:#e4f5ed;color:#087d56}.badge.bad{background:#fbe9e9;color:#ba394a}.badge.warn{background:#fff2d8;color:#9e6616}.chart{width:100%;height:240px;display:block}.chart.short{height:190px}.divider{border:0;border-top:1px solid var(--line);margin:15px 0}.checkrow{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:7px;background:#fbfdff}.checkrow input[type=checkbox]{width:17px;height:17px;accent-color:var(--teal);margin:2px 0 0}.checkrow label{cursor:pointer;flex:1}.rule{display:flex;gap:8px;align-items:center;margin:8px 0}.rule input[type=text]{flex:1;min-width:0;padding:8px;border:1px solid #cbd8e3;border-radius:8px}.rule input[type=checkbox]{accent-color:var(--teal)}.badge-number{border-radius:18px;background:var(--soft);font-size:12px;color:var(--navy);padding:6px 10px}.callout{padding:12px 14px;border-radius:9px;border:1px solid #e5d2a6;background:#fffaf0}.callout.success{border-color:#a7dfcc;background:#effbf6}.preview{display:flex;flex-wrap:wrap;gap:11px}.preview-card{width:132px;border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden}.preview-card img{width:100%;height:96px;object-fit:cover;cursor:zoom-in}.preview-card .name{padding:6px 7px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-card button{border:0;color:var(--red);background:none;font-size:11px;padding:6px 8px;cursor:pointer}.dialog-backdrop{position:fixed;inset:0;background:#061b2b99;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:min(920px,98vw);max-height:92vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 14px 60px #0005;padding:24px}.dialog h2{margin:0 0 15px;color:var(--navy)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog .close{border:0;background:#f2f5f8;font-size:20px;width:34px;height:34px;border-radius:7px;cursor:pointer}.photo-large{display:block;max-width:100%;max-height:74vh;margin:0 auto;object-fit:contain}.toast{position:fixed;bottom:20px;right:20px;background:#16334c;color:#fff;padding:13px 18px;border-radius:9px;box-shadow:0 5px 20px #0b23383d;z-index:250;max-width:420px}.empty{padding:30px;text-align:center;color:var(--muted)}.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.heatmap .cell{height:40px;border-radius:6px;background:#f0f4f7;padding:4px;font-size:10px;color:var(--muted)}.heatmap .cell.win{background:#b8ead8;color:#096c4d}.heatmap .cell.loss{background:#fad0d5;color:#ad3642}.headrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.pills{display:flex;gap:6px;flex-wrap:wrap}.pill{border-radius:16px;padding:6px 11px;background:#ecf4f8;color:#375570;font-size:12px}.pill.live{background:#e0f6ee;color:#116f54}.loading{padding:45px;text-align:center}.fineprint{font-size:11px;color:var(--muted);line-height:1.5}.feature{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.mobile-menu{display:none}@media(max-width:1200px){.col3,.col4{grid-column:span 6}.col8{grid-column:span 12}}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{height:auto;position:relative}.nav{flex-direction:row;overflow:auto;white-space:nowrap;padding:10px}.nav button{width:auto}.brand{padding:14px}.side-bottom{display:none}.top{padding:18px}.work{padding:15px}.col6,.col4,.col3{grid-column:span 12}.field,.field.half,.field.quarter{grid-column:span 6}}@media(max-width:520px){.field,.field.half,.field.quarter{grid-column:span 12}.top{flex-direction:column;align-items:start}.stat .value{font-size:19px}.dialog{padding:14px}}.col7{grid-column:span 7}.col5{grid-column:span 5}@media(max-width:1200px){.col7,.col5{grid-column:span 12}}.top-actions{flex-wrap:wrap}.journal-picker-wrap{display:flex;flex-direction:column;gap:4px;min-width:245px}.journal-picker-wrap label{font-size:11px;font-weight:650;color:var(--muted)}.journal-picker-line{display:flex;align-items:center;gap:5px}.journal-picker-line select{max-width:220px;min-width:130px;flex:1;border:1px solid #cbd8e3;border-radius:8px;padding:7px 10px;background:#fff;color:var(--navy)}.top-actions{gap:10px;align-items:end}@media(max-width:1200px){.top{flex-wrap:wrap}.journal-picker-wrap{min-width:230px}}.risk-alert-stack{display:grid;gap:12px;margin:17px 0}.risk-alert{border:3px solid #b71e35;background:#fff0f1;color:#801126;border-radius:13px;padding:20px 22px;margin:15px 0;box-shadow:0 6px 24px #960a1e1f}.risk-alert-label{font-size:14px;font-weight:850;letter-spacing:.55px;text-transform:uppercase;color:#9b1830}.risk-alert-headline{font-size:22px;line-height:1.22;font-weight:900;margin:8px 0;color:#ae1230}.risk-alert-figure{font-size:36px;font-weight:900;line-height:1.23;color:#b4112c;margin:8px 0}.risk-alert-figure span{font-size:16px;color:#7b2634;font-weight:750;display:inline-block;margin-left:10px}.risk-alert p{margin:8px 0 0;font-size:14px;line-height:1.5}.risk-confirm-intro{padding:15px 17px;border-radius:10px;color:#fff;background:#af1630;font-weight:850;font-size:20px;line-height:1.4;margin-bottom:14px}.risk-confirm-checkbox{display:flex;align-items:center;gap:12px;background:#f8fafc;border:2px solid #c5d4e0;border-radius:10px;padding:15px;margin:18px 0;font-size:15px;font-weight:750;cursor:pointer}.risk-confirm-checkbox input{width:21px;height:21px;min-width:21px;accent-color:#ab1c36}.risk-record{background:#fbfcff;border:1px solid #d6e1ec;border-radius:10px;padding:13px;margin-bottom:11px}.risk-record-issues{margin-top:8px;padding:10px;border-radius:9px;background:#fff1f1;color:#a3162c;font-size:13px;line-height:1.6}.risk-record-confirm{font-size:12px;font-weight:750;color:#9c2441;margin-top:8px}.risk-ok{color:#087d56;font-size:12px;margin-top:8px;font-weight:650}@media(max-width:640px){.risk-alert{padding:14px}.risk-alert-headline{font-size:18px}.risk-alert-figure{font-size:27px}.risk-confirm-intro{font-size:17px}}app-root,app-shell{display:block}app-risk-alerts{display:block}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.auth-card{width:100%;max-width:400px;background:var(--panel);border-radius:var(--radius);padding:26px;box-shadow:0 10px 30px #102b4c1a}.auth-card .brand{margin-bottom:18px;color:var(--navy)}.auth-card .field{margin-bottom:12px}.auth-card .btn{width:100%}.auth-switch{margin-top:14px;text-align:center}.auth-switch button{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}
