:root{--bg: #0a0e14;--panel: #111823;--panel-2: #16202e;--panel-3: #1c2836;--line: #223146;--line-soft: #1a2637;--text: #e8eef5;--muted: #8fa1b3;--dim: #5c6f82;--accent: #38bdf8;--accent-deep: #0ea5e9;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--map-free: #16202e;--map-wall: #7dd3fc;--trail: #38bdf8}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,DejaVu Sans,sans-serif;font-size:14px;line-height:1.45}.mono{font-family:ui-monospace,Cascadia Mono,DejaVu Sans Mono,Consolas,monospace}.atlas-app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.topbar{height:54px;flex:0 0 54px;display:flex;align-items:center;gap:14px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:10px}.logo .mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#0ea5e9,#22d3ee);display:flex;align-items:center;justify-content:center}.logo .name{font-size:17px;font-weight:650;letter-spacing:2.5px}.logo .name small{color:var(--muted);font-weight:400;letter-spacing:.4px;font-size:12px;margin-left:8px}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:13px}.shell{flex:1;display:flex;min-height:0}.sidenav{width:216px;flex:0 0 216px;background:var(--panel);border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:2px}.sidenav .section{color:var(--dim);font-size:10.5px;letter-spacing:1.4px;font-weight:600;margin:12px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:var(--muted);font-size:13.5px;font-weight:500;text-decoration:none;cursor:pointer}.nav-item:hover{background:#38bdf80f;color:var(--text)}.nav-item.active{background:#38bdf81f;color:var(--accent)}.nav-item .ico{width:17px;height:17px;flex:0 0 17px}.main{flex:1;min-width:0;padding:22px 26px;overflow:auto;display:flex;flex-direction:column}.page-title{font-size:20px;font-weight:650}.page-sub{color:var(--muted);font-size:13px;margin-top:3px}h3.block{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.6px;margin-bottom:10px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap}.chip .dot{width:7px;height:7px;border-radius:50%}.chip.good{background:#34d3991f;color:var(--good)}.chip.good .dot{background:var(--good)}.chip.warn{background:#fbbf241f;color:var(--warn)}.chip.warn .dot{background:var(--warn)}.chip.bad{background:#f871711f;color:var(--bad)}.chip.bad .dot{background:var(--bad)}.chip.info{background:#38bdf81f;color:var(--accent)}.chip.info .dot{background:var(--accent)}.chip.neutral{background:#8fa1b31f;color:var(--muted)}.chip.neutral .dot{background:var(--muted)}.btn{display:inline-flex;align-items:center;gap:8px;border-radius:9px;padding:9px 16px;font-size:13.5px;font-weight:600;border:1px solid var(--line);color:var(--text);background:var(--panel-2);cursor:pointer}.btn.primary{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.btn.ghost{background:transparent}.btn.danger{color:var(--bad);border-color:#f8717159;background:#f8717114}.btn.sm{padding:6px 12px;font-size:12.5px;border-radius:8px}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;color:var(--dim);font-size:11px;font-weight:600;letter-spacing:1px;padding:8px 12px;border-bottom:1px solid var(--line)}table.data td{padding:10px 12px;border-bottom:1px solid var(--line-soft);font-size:13px}table.data tr.sel td{background:#38bdf80f}.banner{display:flex;align-items:center;gap:10px;border-radius:10px;padding:10px 14px;font-size:13px;background:#38bdf814;border:1px solid rgba(56,189,248,.25);color:#bfe7fb}.banner.err,.err{display:flex;align-items:center;gap:10px;border-radius:10px;padding:10px 14px;font-size:12.5px;background:#f8717114;border:1px solid rgba(248,113,113,.3);color:#fca5a5}.field label{display:block;color:var(--muted);font-size:12px;margin-bottom:5px;font-weight:600}.field .input,input.input,select.input,textarea.input{width:100%;background:var(--panel-3);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13.5px;color:var(--text);font-family:inherit}input.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--accent-deep)}input.input::placeholder,textarea.input::placeholder{color:var(--dim)}.field .hint{color:var(--dim);font-size:11.5px;margin-top:5px}.field .hint.ok{color:var(--good)}.btn.wide{justify-content:center;padding:11px 16px;width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.steps{display:flex;gap:8px;align-items:center}.step{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:12.5px;font-weight:600}.step .n{width:22px;height:22px;border-radius:50%;background:var(--panel-3);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11.5px}.step.done{color:var(--good)}.step.done .n{background:#34d39926;border-color:#34d39966;color:var(--good)}.step.cur{color:var(--accent)}.step.cur .n{background:#38bdf826;border-color:var(--accent);color:var(--accent)}.step-line{width:26px;height:1px;background:var(--line)}.modal-overlay{position:fixed;inset:0;background:#04080e9e;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;width:100%;max-width:440px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px #00000080}.modal .modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal .modal-title{font-size:16px;font-weight:650}.modal .modal-close{color:var(--dim);background:transparent;border:0;cursor:pointer;padding:4px;border-radius:6px;display:inline-flex}.modal .modal-close:hover{color:var(--text);background:#8fa1b31f}.modal .modal-actions{display:flex;justify-content:flex-end;gap:10px}.slideover-scrim{position:fixed;inset:0;background:#04080e73;z-index:90}.slideover{position:fixed;top:0;right:0;height:100vh;width:380px;max-width:92vw;background:var(--panel);border-left:1px solid var(--line);z-index:95;display:flex;flex-direction:column;box-shadow:-18px 0 46px #0006}.slideover .so-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.slideover .so-title{font-size:15px;font-weight:650}.slideover .so-body{flex:1;overflow:auto;padding:14px 18px}.toggle{position:relative;width:38px;height:22px;border-radius:999px;background:var(--panel-3);border:1px solid var(--line);cursor:pointer;flex:0 0 38px;transition:background .15s ease}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.toggle.on{background:#34d39938;border-color:#34d39980}.toggle.on:after{transform:translate(16px);background:var(--good)}.chip.role{text-transform:capitalize}:root{color-scheme:dark}a{color:inherit;text-decoration:none}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.wrap{flex-wrap:wrap}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.grow{flex:1 1 auto;min-width:0}.spacer{flex:1 1 auto}.muted{color:var(--muted)}.dim{color:var(--dim)}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.accent{color:var(--accent)}.num{font-variant-numeric:tabular-nums}.big{font-size:26px;font-weight:650}.stat-label{color:var(--dim);font-size:11px;font-weight:600;letter-spacing:1px}.field label{display:block;color:var(--dim);font-size:11px;font-weight:600;letter-spacing:.8px;margin-bottom:6px}input.inp,select.inp,textarea.inp{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:inherit}input.inp:focus,select.inp:focus,textarea.inp:focus{outline:none;border-color:var(--accent-deep)}.meter{height:8px;border-radius:999px;background:var(--panel-3);overflow:hidden}.meter>span{display:block;height:100%;background:var(--good);border-radius:999px}
