:root{--slate: #2f4f4f;--slate-deep: #253d3d;--slate-line: #3d5f5f;--off: #f5f5f5;--off-dim: #dfe4e2;--ink: #1b2b2b;--accent: #6fb3a8;--muted: #8fa3a0;--danger: #c45c5c;--ok: #3d8b6e;--card: #ffffff}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--off);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}.mono{font-family:JetBrains Mono,monospace}.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 28px}.btn{display:inline-flex;align-items:center;gap:9px;font-family:Space Grotesk,sans-serif;font-weight:600;font-size:.96rem;padding:12px 22px;border-radius:6px;text-decoration:none;transition:all .16s;border:1px solid transparent;cursor:pointer;background:transparent;color:inherit}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--slate-deep)}.btn-primary:hover:not(:disabled){background:#85c4b9;transform:translateY(-1px)}.btn-ghost{border-color:var(--slate-line);color:var(--off)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-slate{background:var(--slate);color:var(--off)}.btn-slate:hover:not(:disabled){background:var(--slate-deep)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:8px 14px;font-size:.85rem}.input,.select{width:100%;padding:11px 14px;border:1px solid var(--off-dim);border-radius:8px;background:#fff;color:var(--ink)}.input:focus,.select:focus{outline:2px solid var(--accent);outline-offset:1px}.label{display:block;font-size:.85rem;font-weight:500;margin-bottom:6px;color:var(--slate)}.field{margin-bottom:16px}.err{color:var(--danger);font-size:.9rem;margin-top:8px}.ok{color:var(--ok);font-size:.9rem;margin-top:8px}.muted{color:#5a6d6b}.card{background:var(--card);border:1px solid var(--off-dim);border-radius:10px;padding:22px}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--off-dim)}.table th{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.badge{display:inline-block;font-family:JetBrains Mono,monospace;font-size:.72rem;padding:3px 8px;border-radius:999px;background:var(--off-dim);color:var(--slate)}.badge.active,.badge.ok{background:#d8efe6;color:var(--ok)}.badge.pending,.badge.pending_fulfillment,.badge.pending_payment{background:#efe6d0;color:#8a6a20}.badge.expired,.badge.canceled,.badge.suspended{background:#f0dede;color:var(--danger)}.badge.recycled{background:#e8e6e1;color:#5c5a54}.badge.past_due{background:#f0e0d0;color:#a05a20}.app-layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.app-side{background:var(--slate);color:var(--off-dim);padding:24px 16px;display:flex;flex-direction:column;gap:8px}.app-side .brand{font-family:Space Grotesk,sans-serif;font-weight:700;color:var(--off);font-size:1.05rem;padding:8px 12px 20px;display:flex;align-items:center;gap:10px}.app-side a{text-decoration:none;color:var(--off-dim);padding:10px 12px;border-radius:8px;font-size:.92rem}.app-side a:hover,.app-side a.active{background:#ffffff14;color:var(--accent)}.app-side .nav-disabled{padding:10px 12px;border-radius:8px;font-size:.92rem;color:#ffffff59;cursor:not-allowed;-webkit-user-select:none;user-select:none}.app-main{padding:28px 32px}.app-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:16px;flex-wrap:wrap}.app-top h1{font-family:Space Grotesk,sans-serif;font-size:1.6rem;color:var(--slate);letter-spacing:-.02em}.wallet-pill{font-family:JetBrains Mono,monospace;font-size:.85rem;background:#fff;border:1px solid var(--off-dim);border-radius:999px;padding:8px 14px}@media(max-width:820px){.app-layout{grid-template-columns:1fr}.app-side{flex-direction:row;flex-wrap:wrap;align-items:center}.app-side .brand{padding-bottom:8px;width:100%}}.proxy-page-tabs{margin-bottom:18px}.proxy-page-tabs .proxy-type-tab{flex:0 1 auto;min-width:120px}.proxy-leases-card{padding:20px 22px}.proxy-leases-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:14px}.proxy-leases-header h3{font-family:Space Grotesk,sans-serif;margin:0;color:var(--slate);font-size:1.1rem}.proxy-leases-hint{margin:0;font-size:.85rem}.proxy-leases-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:8px 0 4px}.proxy-leases-table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}.proxy-leases-table{min-width:720px}.proxy-leases-table th{white-space:nowrap}.proxy-ip-cell{font-size:.88rem;white-space:nowrap}.proxy-type-cell{text-transform:capitalize}.proxy-cred{display:flex;align-items:center;gap:10px;min-width:0;max-width:360px}.proxy-cred-text{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--slate);background:transparent;padding:0;border:none}.proxy-buy{display:grid;grid-template-columns:1fr minmax(260px,320px);gap:18px;align-items:start;margin-bottom:8px}.proxy-buy-left{min-width:0}.proxy-buy-right{position:sticky;top:20px;display:flex;flex-direction:column;gap:12px}.proxy-type-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.proxy-type-tab{flex:1;min-width:140px;padding:10px 12px;border-radius:8px;border:1px solid var(--off-dim);background:#fff;color:var(--slate);cursor:pointer;font-family:Space Grotesk,sans-serif;font-weight:600;font-size:.88rem;transition:border-color .15s,background .15s}.proxy-type-tab:hover{border-color:var(--accent)}.proxy-type-tab.active{border-color:var(--slate);background:var(--slate);color:var(--off)}.proxy-search{margin-bottom:12px}.proxy-map{margin-bottom:14px;padding:12px 12px 8px;border:1px solid var(--off-dim);border-radius:10px;background:radial-gradient(120% 80% at 20% 0%,rgba(111,179,168,.14),transparent 55%),linear-gradient(180deg,#f7fafa,#eef2f1);transition:box-shadow .25s ease,border-color .25s ease}.proxy-map.is-zoomed{border-color:var(--slate-line);box-shadow:0 10px 28px #253d3d14;background:radial-gradient(90% 70% at 50% 40%,rgba(111,179,168,.18),transparent 60%),linear-gradient(180deg,#fbfcfb,#eef3f1)}.proxy-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;min-height:34px}.proxy-map-brand{font-size:.78rem;color:var(--muted);letter-spacing:.02em}.proxy-map-back{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid var(--off-dim);background:#fff;color:var(--slate);font-family:Space Grotesk,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.proxy-map-back:hover{border-color:var(--accent);transform:translate(-1px)}.proxy-map-status{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right;min-width:0}.proxy-map-status-title{font-family:Space Grotesk,sans-serif;font-weight:600;font-size:.95rem;color:var(--slate);line-height:1.2}.proxy-map-status-meta{font-size:.72rem;color:var(--muted)}.proxy-map-canvas{width:100%;line-height:0;border-radius:8px;overflow:hidden;cursor:default}.proxy-map.is-zoomed .proxy-map-canvas{cursor:zoom-out}.proxy-map-svg{display:block;width:100%;height:auto;aspect-ratio:1028 / 620;max-height:360px}.proxy-map-backdrop{fill:transparent;pointer-events:all;cursor:zoom-out}.proxy-map-state{fill:#d7e0dd;stroke:#f5f5f5;stroke-width:1.1;vector-effect:non-scaling-stroke;transition:fill .18s,stroke .18s,opacity .22s;pointer-events:none}.proxy-map-state.available{fill:#b7cdc7;stroke:#e8efed;cursor:zoom-in;pointer-events:auto}.proxy-map-state.available:hover,.proxy-map-state.available:focus{fill:var(--accent);outline:none}.proxy-map-state.active{fill:#3d5f5f;stroke:var(--accent);stroke-width:1.6;cursor:zoom-out;pointer-events:auto}.proxy-map-state.in-cart{stroke:var(--accent);stroke-width:2.2}.proxy-map-state.dimmed{opacity:.22;cursor:zoom-out;pointer-events:auto}.proxy-map-state.dimmed:hover{opacity:.38;fill:#c5d4d0}.proxy-map-dc-hit{fill:transparent;stroke:transparent;cursor:zoom-in;pointer-events:auto}.proxy-map-dc-hit:hover,.proxy-map-dc-hit:focus{fill:#6fb3a847;outline:none}.proxy-map-dc-hit.active{fill:#2f4f4f2e;stroke:var(--accent);stroke-width:1.5;cursor:zoom-out}.proxy-map-dc-hit.in-cart{stroke:var(--accent);stroke-width:2}.proxy-map-city{pointer-events:auto;cursor:default}.proxy-map-city-hit{fill:transparent;stroke:none}.proxy-map-city-ring{fill:#6fb3a838;stroke:none;animation:proxy-map-dot-in .32s ease both}.proxy-map-city-dot{fill:var(--accent);stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:proxy-map-dot-in .28s ease both}.proxy-map-city.in-cart .proxy-map-city-dot{fill:var(--slate);animation:proxy-map-dot-in .28s ease both,proxy-map-pulse 1.6s ease-in-out infinite}.proxy-map-city.in-cart .proxy-map-city-ring{fill:#2f4f4f2e}.proxy-map-city.depleted .proxy-map-city-dot{fill:#a8b0b0}.proxy-map-city.depleted .proxy-map-city-ring{fill:#a8b0b033}.proxy-map-city-label rect{fill:var(--slate);filter:drop-shadow(0 2px 6px rgba(27,43,43,.18))}.proxy-map-city-label text{fill:var(--off);font-family:Space Grotesk,sans-serif;font-size:11px;font-weight:600;dominant-baseline:middle}.proxy-map-hint{margin-top:8px;font-size:.8rem}@keyframes proxy-map-dot-in{0%{opacity:0;transform:scale(.35)}to{opacity:1;transform:scale(1)}}@keyframes proxy-map-pulse{0%,to{opacity:1}50%{opacity:.55}}.proxy-city-list{display:flex;flex-direction:column;gap:8px;max-height:520px;overflow:auto;padding-right:4px}.proxy-city-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--off-dim);border-radius:8px;background:#fafbfa}.proxy-city-card.selected{border-color:var(--slate-line);background:#fff}.proxy-city-card.depleted{opacity:.55}.proxy-city-card.depleted .proxy-city-name{color:var(--muted)}.proxy-stock-left{font-variant-numeric:tabular-nums}.proxy-city-name{font-family:Space Grotesk,sans-serif;font-weight:600;color:var(--slate);font-size:.95rem}.proxy-city-meta{font-size:.82rem;margin-top:2px}.proxy-city-meta .price-text{color:var(--slate);font-weight:500}.proxy-qty{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.proxy-qty-btn{width:30px;height:30px;border-radius:6px;border:1px solid var(--off-dim);background:#fff;color:var(--slate);cursor:pointer;font-size:1.1rem;line-height:1}.proxy-qty-btn:hover:not(:disabled){border-color:var(--accent)}.proxy-qty-btn:disabled{opacity:.4;cursor:not-allowed}.proxy-qty-input{width:48px;text-align:center;padding:6px 4px;border:1px solid var(--off-dim);border-radius:6px;background:#fff;-moz-appearance:textfield}.proxy-qty-input::-webkit-outer-spin-button,.proxy-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.proxy-summary-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.proxy-summary-header h3{font-family:Space Grotesk,sans-serif;color:var(--slate);font-size:1.05rem}.proxy-clear{border-color:var(--off-dim)!important;color:var(--slate)!important;padding:6px 10px!important}.proxy-plan-note{font-size:.85rem}.proxy-summary-lines{display:flex;flex-direction:column;gap:8px;min-height:48px;padding:10px 0;border-top:1px solid var(--off-dim);border-bottom:1px solid var(--off-dim)}.proxy-summary-line{display:flex;justify-content:space-between;gap:10px;font-size:.9rem}.proxy-summary-total{padding-top:4px}.proxy-total-price{font-family:Space Grotesk,sans-serif;font-size:1.5rem;font-weight:700;color:var(--slate)}.proxy-checkout-btn{width:100%;justify-content:center;margin-top:4px}@media(max-width:900px){.proxy-buy{grid-template-columns:1fr}.proxy-buy-right{position:static}.proxy-city-list{max-height:none}}
