:root{--ground: #050b0d;--surface: #0c1519;--surface2: #111d22;--line: rgba(46, 230, 168, .16);--lsoft: rgba(233, 242, 239, .09);--em: #2ee6a8;--cy: #38bdf8;--text: #e9f2ef;--mut: #7e948e;--dang: #f87171;--grad: linear-gradient(100deg, #2ee6a8, #38bdf8 60%, #2563eb);--disp: "Unbounded", "Archivo", sans-serif;--body: "Archivo", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--ground);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6}.app{max-width:430px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding:max(24px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom))}.gt{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.logo{display:block;width:min(260px,68vw);height:auto;margin:0 auto}h1{font-family:var(--disp);font-weight:600;font-size:1.3rem;line-height:1.35}.sub{color:var(--mut);font-size:.92rem;margin-top:8px}.field{margin-top:22px}.field label{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--mut);margin-bottom:8px}.inp{width:100%;background:var(--surface2);border:1px solid var(--lsoft);border-radius:14px;padding:16px;color:var(--text);font-family:var(--body);font-size:1.15rem;outline:none;font-variant-numeric:tabular-nums}.inp:focus{border-color:var(--line)}.inp.code{text-align:center;letter-spacing:.5em;font-family:var(--disp);font-size:1.4rem}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;margin-top:18px;border:none;border-radius:16px;cursor:pointer;background:var(--grad);color:#04110b;font-family:var(--body);font-weight:700;font-size:1.05rem;transition:filter .15s}.btn:disabled{filter:grayscale(.6) brightness(.6);cursor:default}.btn.ghost{background:var(--surface2);color:var(--text);border:1px solid var(--lsoft);font-weight:600}.err{color:var(--dang);font-size:.88rem;margin-top:14px}.hint{margin-top:16px;padding:12px 16px;border:1px dashed var(--line);border-radius:12px;font-size:.85rem;color:var(--mut)}.hint b{color:var(--em);font-family:var(--disp);letter-spacing:.2em}.card{background:var(--surface);border:1px solid var(--lsoft);border-radius:18px;padding:20px;margin-top:18px}.row{display:flex;justify-content:space-between;padding:8px 0;font-size:.95rem}.row span{color:var(--mut)}.status{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--em)}.status i{width:8px;height:8px;border-radius:50%;background:var(--em)}.spacer{flex:1}.mapwrap{position:relative;flex:1;min-height:320px;border-radius:18px;overflow:hidden;border:1px solid var(--lsoft)}.sheet2{background:var(--surface);border:1px solid var(--lsoft);border-radius:18px;padding:18px;margin-top:14px}.chips2{display:flex;flex-wrap:wrap;gap:8px}.chip2{border:1px solid var(--lsoft);background:var(--surface2);color:var(--mut);border-radius:999px;padding:8px 14px;font-family:var(--body);font-size:.85rem;font-weight:600;cursor:pointer}.chip2.on{border-color:var(--line);color:var(--em);background:#2ee6a814}.estbox{border-top:1px solid var(--lsoft);margin-top:12px;padding-top:8px}.catrow2{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--surface2);border:1.5px solid var(--lsoft);border-radius:12px;padding:12px 14px;margin-top:8px;color:var(--text);font-family:var(--body);font-size:.95rem;font-weight:600;cursor:pointer}.catrow2.on{border-color:var(--em);background:#2ee6a812}.catrow2 b{font-family:var(--disp)}.foot{text-align:center;color:var(--mut);font-size:.75rem;margin-top:26px}
