:root{--bg:#06101d;--panel:#0b1b2c;--panel2:#10253b;--border:#1d344b;--text:#f3f7fb;--muted:#91a4b8;--cyan:#21d4fd;--green:#22c55e;--yellow:#f59e0b;--red:#ef4444}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}header{height:72px;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;padding:0 24px;background:#071321ee;border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.brand{border:0;background:none;color:var(--text);font-size:22px;font-weight:900;letter-spacing:2px}.brand span{margin-right:8px}nav{display:flex;gap:4px;flex:1;overflow:auto}nav button,.head-actions button,.actionbar button,.controls button,.setting button{border:1px solid transparent;background:transparent;color:var(--muted);padding:9px 11px;border-radius:9px}nav button:hover,nav button.active{background:#12304a;color:var(--text);border-color:#1b4967}nav b{margin-right:7px}.head-actions{display:flex;gap:8px}.login,.primary{background:var(--cyan)!important;color:#031019!important;font-weight:800!important;border:0!important}.user{background:var(--panel)!important}.app main{max-width:1450px;margin:auto;padding:34px 28px 70px}.topline{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.topline small{color:var(--cyan);font-weight:800;letter-spacing:2px}.topline h1{margin:7px 0 0;font-size:32px}.controls{display:flex;gap:10px}.controls select,.controls button,.form input,.form select,.form textarea,.table-wrap select{background:var(--panel);color:var(--text);border:1px solid var(--border);padding:11px 13px;border-radius:10px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.card,.panel{background:linear-gradient(145deg,var(--panel),#091726);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 50px #0004}.card{padding:20px;min-height:140px}.card>span{font-size:24px;display:block}.card small{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:12px 0 6px}.card strong{font-size:28px}.card em,.tag{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:999px;font-size:11px;font-style:normal;background:#203044}.low{color:#70f0a0}.medium{color:#ffd166}.high{color:#ff7b7b}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.panel{padding:20px}.panel-head{display:flex;justify-content:space-between;margin-bottom:16px}.panel h3{margin:0}.hero-risk{display:flex;align-items:center;gap:24px}.score{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;font-size:34px;font-weight:900;border:7px solid #31506a}.score.low{border-color:var(--green)}.score.medium{border-color:var(--yellow)}.score.high{border-color:var(--red)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.chips span{background:#10283d;border:1px solid var(--border);padding:7px 9px;border-radius:8px;font-size:12px}.weather strong{font-size:42px;display:block}.weather span,.weather small{display:block;color:var(--muted);margin-top:6px}.list-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border:0}.list-row b,.list-row small{display:block}.list-row small{color:var(--muted);margin-top:4px}.empty{padding:28px;color:var(--muted);text-align:center}.large{padding:90px}.actionbar{display:flex;gap:10px;margin-top:18px}.actionbar button{border-color:var(--border);background:var(--panel);color:var(--text)}.map-wrap{display:grid;grid-template-columns:1fr 310px;gap:16px}.leaflet-map{height:650px;border-radius:16px;overflow:hidden;border:1px solid var(--border)}.map-wrap aside{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:15px;height:650px;overflow:auto}.map-wrap aside h3{margin:5px 8px 14px}.map-wrap aside button{width:100%;text-align:left;border:1px solid transparent;background:transparent;color:var(--text);padding:12px;border-radius:10px;margin-bottom:5px}.map-wrap aside button.selected,.map-wrap aside button:hover{background:#12304a;border-color:#1b4967}.map-wrap aside small{display:block;color:var(--muted);margin-left:25px}.chart{min-height:350px;position:relative}.chart canvas{max-height:280px}.chart-empty{position:absolute;inset:120px 0 auto;text-align:center;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase}.form{display:grid;gap:12px;max-width:700px}.form textarea{min-height:130px;resize:vertical}.upload{display:flex;gap:12px;align-items:center;margin-top:20px}.result{background:#06101d;padding:16px;border-radius:10px;overflow:auto;margin-top:18px}.muted{color:var(--muted);line-height:1.6}.setting{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--border)}.toast{position:fixed;right:24px;bottom:24px;background:#eafcff;color:#031019;padding:12px 16px;border-radius:10px;font-weight:800;z-index:100}.modal{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:100}.modal-card{position:relative;width:min(480px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:0 30px 100px #000}.modal-card h2{margin-top:0}.x{position:absolute;right:15px;top:10px;background:none;border:0;color:var(--muted);font-size:28px}.link{background:none;border:0;color:var(--cyan);margin-top:14px}@media(max-width:1000px){nav button{font-size:12px}.cards{grid-template-columns:repeat(2,1fr)}.grid2,.map-wrap{grid-template-columns:1fr}.map-wrap aside{height:auto}.leaflet-map{height:500px}.topline{align-items:flex-start;flex-direction:column}}@media(max-width:600px){header{padding:0 12px}.brand{font-size:18px}nav{display:none}.app main{padding:22px 14px}.cards{grid-template-columns:1fr}.head-actions{margin-left:auto}.topline h1{font-size:25px}.controls{width:100%}.controls>*{flex:1}.hero-risk{align-items:flex-start;flex-direction:column}.actionbar{flex-wrap:wrap}}
