*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#080c12;--surface:#0f1520;--surface2:#151d2e;
  --border:#1e2a3f;--border2:#253148;
  --gold:#e8b84b;--gold-dim:rgba(232,184,75,.1);--gold-border:rgba(232,184,75,.28);
  --text:#cdd8e8;--muted:#ffffff;--muted2:#3d5070;
  --green:#3ec882;--red:#e85c5c;--blue:#5fa8ff;
}
body{font-family:'Be Vietnam Pro',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding:3rem 1.25rem 5rem}
.container{max-width:900px;margin:0 auto}
header{margin-bottom:3rem}
.tag{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem;display:flex;align-items:center;gap:.6rem}
.tag::before{content:'';width:24px;height:1px;background:var(--gold)}
h1{font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1;letter-spacing:-.035em}
h1 .arr{color:var(--gold);font-weight:300}
.subtitle{font-size:.825rem;color:var(--muted);margin-top:.8rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem 2rem;margin-bottom:1rem}
.card-label{font-family:'Space Mono',monospace;font-size:1.0;letter-spacing:.22em;text-transform:uppercase;color:var(--muted2);margin-bottom:1.25rem}
.row-2{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;margin-bottom:1.25rem}
@media(max-width:560px){.row-2{grid-template-columns:1fr}}
label{display:block;font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.04em;margin-bottom:.45rem}
select,textarea,input[type="number"]{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:'Be Vietnam Pro',sans-serif;font-size:.875rem;padding:.65rem .9rem;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}
select:focus,textarea:focus,input:focus{border-color:var(--gold-border);box-shadow:0 0 0 3px var(--gold-dim)}
textarea{font-family:'Space Mono',monospace;font-size:.76rem;resize:vertical;min-height:130px;line-height:1.85}
.hint{font-size:.68rem;color:var(--muted2);margin-top:.45rem;line-height:1.5}
code{font-family:'Space Mono',monospace;font-size:.85em;background:rgba(255,255,255,.05);padding:.1em .35em;border-radius:3px}
/* CM section */
.cm-section{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}
.cm-section-title{font-size:.68rem;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.8rem}
.cm-box{padding:.65rem .9rem;background:var(--bg);border:1px solid var(--border2);border-radius:8px;font-family:'Space Mono',monospace;font-size:.82rem;color:var(--muted2);transition:all .2s;min-width:130px}
.cm-box.active{color:var(--gold);border-color:var(--gold-border);background:var(--gold-dim)}
.presets{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.preset-btn{font-family:'Space Mono',monospace;font-size:.65rem;padding:.28em .65em;border:1px solid var(--border2);border-radius:4px;background:var(--bg);color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.preset-btn:hover{border-color:var(--gold-border);color:var(--gold)}
.preset-btn.active{border-color:var(--gold);background:var(--gold-dim);color:var(--gold)}
.custom-row{display:flex;align-items:center;gap:.6rem;margin-top:.75rem}
#custom-cm{width:110px;font-family:'Space Mono',monospace}
.src-note{font-size:.62rem;color:var(--muted2);margin-top:.6rem;font-style:italic}
/* Parcels */
.parcels-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.parcels-title{font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.04em}
.sample-btns{display:flex;gap:.5rem}
.sample-btn{background:none;border:none;font-family:'Be Vietnam Pro',sans-serif;font-size:.7rem;color:var(--muted2);cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:.3rem;transition:color .15s}
.sample-btn:hover{color:var(--gold)}
.parcel-block{border:1px solid var(--border2);border-radius:9px;margin-bottom:.65rem;overflow:hidden;transition:opacity .15s,transform .15s}
.parcel-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .85rem;background:var(--surface2);border-bottom:1px solid var(--border)}
.parcel-label-text{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.5rem}
.parcel-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);opacity:.65;flex-shrink:0}
.parcel-remove{background:none;border:none;cursor:pointer;color:var(--muted2);padding:.15rem .3rem;border-radius:4px;transition:all .15s;display:flex;align-items:center;line-height:1}
.parcel-remove:hover{color:var(--red);background:rgba(232,92,92,.1)}
.parcel-block textarea{border:none;border-radius:0;background:var(--bg);resize:vertical}
.parcel-block textarea:focus{border:none;box-shadow:none}
.btn-add{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.6rem;background:transparent;border:1px dashed var(--border2);border-radius:8px;color:var(--muted);font-family:'Be Vietnam Pro',sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.04em;margin-top:.25rem}
.btn-add:hover{border-color:var(--gold-border);color:var(--gold);background:var(--gold-dim)}
/* Convert button */
.btn-convert{width:100%;padding:.9rem;background:var(--gold);color:var(--bg);border:none;border-radius:8px;font-family:'Be Vietnam Pro',sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:1.25rem;letter-spacing:.02em}
.btn-convert:hover{opacity:.88}
.btn-convert:active{transform:scale(.99)}
/* Error */
.error{display:none;background:rgba(232,92,92,.07);border:1px solid rgba(232,92,92,.22);color:var(--red);border-radius:8px;padding:.9rem 1rem;font-size:.8rem;margin-bottom:1rem}
/* Results */
#results{display:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.animate{animation:fadeUp .35s ease forwards}
.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.5rem}
.badge{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.12em;background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);padding:.28em .75em;border-radius:4px}
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}
table{width:100%;border-collapse:collapse;font-family:'Space Mono',monospace;font-size:.7rem}
thead th{background:var(--surface2);padding:.7rem 1rem;text-align:left;color:var(--muted);font-weight:400;white-space:nowrap;border-bottom:1px solid var(--border)}
tbody td{padding:.6rem 1rem;border-bottom:1px solid rgba(30,42,63,.6);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:rgba(255,255,255,.015)}
.t-idx{color:var(--muted2)}.t-in{color:var(--text)}.t-out{color:var(--green)}
.tbl-section-row td{background:var(--surface2)!important;padding:.55rem 1rem .4rem;border-bottom:1px solid var(--border)}
.tbl-section-inner{display:flex;align-items:center;gap:.5rem}
/* WKT */
.wkt-area{background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:1rem 1.1rem;font-family:'Space Mono',monospace;font-size:.68rem;color:var(--blue);word-break:break-all;line-height:1.75;max-height:110px;overflow-y:auto}
.actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap}
.btn{padding:.575rem 1.1rem;border-radius:8px;font-family:'Be Vietnam Pro',sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid;display:inline-flex;align-items:center;gap:.4rem}
.btn-ghost{background:transparent;border-color:var(--border2);color:var(--muted)}
.btn-ghost:hover{border-color:var(--gold-border);color:var(--gold)}
.btn-accent{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold)}
.btn-accent:hover{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.copied{font-size:.68rem;color:var(--green);opacity:0;transition:opacity .3s}
.copied.show{opacity:1}
footer{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--border);font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
</style>
