/* SigInfo MastData - black theme */
:root{
  --bg:#0a0a0f;
  --bg2:#0f0f16;
  --panel:#14141d;
  --panel2:#1a1a25;
  --line:#262633;
  --line2:#33334a;
  --txt:#f4f5f7;
  --muted:#a2a7b8;
  --dim:#6d7285;
  --white:#ffffff;
  --accent:#ffffff;
  --good:#2ecc71;
  --mid:#f1c40f;
  --bad:#e74c3c;
  --o2:#0050a4; --vf:#e60000; --ee:#6f2394; --h3g:#5a1b8c;
  --radius:14px;
  --maxw:1160px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--txt);line-height:1.6;min-height:100vh;
}
img,svg{vertical-align:middle}
a{color:inherit}
button{font-family:inherit}
.md-shell{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.md-shell-full{max-width:none}

/* ── top bar ── */
.md-top{position:sticky;top:0;z-index:60;background:rgba(10,10,15,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.md-top-in{display:flex;align-items:center;gap:16px;height:62px}
.md-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.md-mast-img{height:30px;width:auto;display:inline-block}
.md-mast-img-foot{opacity:.95}
.md-brand-name{font-weight:800;font-size:19px;letter-spacing:-.02em;color:#fff}
.md-brand-sub{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);border-left:1px solid var(--line2);padding-left:8px;margin-top:4px;display:none}
.md-brand-sub{display:inline}
.md-nav{display:none;gap:22px;margin:0 auto}
.md-nav a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap}
.md-nav a:hover{color:#fff}
.md-nav-out{opacity:.75}
.md-auth{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
.md-auth>div{display:flex;align-items:center;gap:10px}
.md-userpill{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--txt)}
.md-userdot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px rgba(46,204,113,.18)}
.md-user-hello{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(min-width:900px){ .md-nav{display:flex} }
@media(max-width:430px){
  .md-top-in{gap:10px}
  .md-brand-sub{display:none}
  .md-mast-img{height:26px}
  .md-btn{padding:9px 12px;font-size:13px;min-height:38px}
  .md-auth{gap:6px}
}

/* ── buttons ── */
.md-btn{border:1px solid transparent;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;color:var(--txt);background:none;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s,background .18s,color .18s,border-color .18s;line-height:1.1;min-height:42px}
.md-btn:active{transform:scale(.98)}
.md-btn-solid{background:#fff;color:#0a0a0f}
.md-btn-solid:hover{background:#e8eaef}
.md-btn-ghost{background:transparent;border-color:var(--line2);color:var(--txt)}
.md-btn-ghost:hover{border-color:#fff;color:#fff}
.md-btn-outline{border-color:#fff;color:#fff}
.md-btn-outline:hover{background:#fff;color:#0a0a0f}
.md-btn-block{width:100%}
.md-btn-lg{min-height:52px;padding:15px 26px;font-size:16px;border-radius:12px}
.md-link{background:none;border:none;color:#fff;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}

/* ── hero ── */
.md-hero{position:relative;overflow:hidden;padding:70px 0 64px;background:
  radial-gradient(900px 420px at 80% -10%, rgba(255,255,255,.09), transparent 60%),
  radial-gradient(700px 380px at -10% 20%, rgba(120,120,140,.10), transparent 55%),
  linear-gradient(180deg,#0d0d13,#0a0a0f)}
.md-hero-grid{position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(700px 320px at 70% 0,#000,transparent);mask-image:radial-gradient(700px 320px at 70% 0,#000,transparent)}
.md-hero-in{position:relative}
.md-hero-center{text-align:center}
.md-lockup{width:min(210px,50vw);height:auto;margin:0 0 18px;display:inline-block;
  filter:drop-shadow(0 10px 30px rgba(0,0,0,.45))}
.md-eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.md-hero h1{font-size:clamp(30px,6vw,58px);font-weight:900;letter-spacing:-.03em;line-height:1.05;margin-bottom:18px}
.md-hero h1 span{color:#fff;display:block}
.md-hero-sub{color:var(--muted);font-size:clamp(15px,2.3vw,18px);max-width:640px;margin:0 auto 30px}
.md-hero-sub strong{color:var(--txt)}
.md-hero-center .md-hero-cta,.md-hero-center .md-hero-chips{justify-content:center}
.md-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.md-hero-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:12.5px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:rgba(255,255,255,.02)}
.chip-btn{cursor:pointer;color:var(--txt);background:var(--panel);transition:border-color .15s,color .15s}
.chip-btn:hover{border-color:#fff;color:#fff}

/* ── signup band ── */
.md-signupband{padding:60px 0;background:linear-gradient(180deg,#0b0b11,#0e0e15)}
.md-signup-card{display:grid;gap:34px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:34px 30px;max-width:1000px;margin:0 auto}
@media(min-width:860px){.md-signup-card{grid-template-columns:1.05fr .95fr}}
.md-signup-card h2{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.md-signup-left>p{color:var(--muted);margin-bottom:18px}
.md-tick{list-style:none}
.md-tick li{position:relative;padding-left:26px;margin-bottom:10px;color:var(--txt);font-size:15px}
.md-tick li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:14px;border-radius:50%;
  background:rgba(46,204,113,.14);border:1.5px solid var(--good)}
.md-tick li::after{content:"";position:absolute;left:4px;top:9px;width:6px;height:4px;border-left:2px solid var(--good);border-bottom:2px solid var(--good);transform:rotate(-45deg)}

/* ── forms ── */
.md-signup-form{display:grid;gap:14px}
.md-field{display:flex;flex-direction:column;gap:6px}
.md-field label{font-size:12.5px;font-weight:700;color:var(--muted)}
.md-field label span{font-weight:500;color:var(--dim)}
.md-field input,.md-field textarea,.md-field select{
  width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:10px;color:var(--txt);
  padding:13px 14px;font-size:15px;font-family:inherit;outline:none;transition:border-color .15s}
.md-field input:focus,.md-field textarea:focus,.md-field select:focus{border-color:#fff}
.md-field input::placeholder,.md-field textarea::placeholder{color:var(--dim)}
.md-field textarea{resize:vertical;min-height:76px}
.hp{position:absolute!important;left:-9999px!important;opacity:0;height:0;width:0}
.md-form-switch{font-size:13.5px;color:var(--muted);text-align:center}
.md-legal{font-size:12px;color:var(--dim);text-align:center;margin-top:2px}
.md-err{color:#ff7b6b;font-size:13px;font-weight:600}
.md-success{color:var(--good);font-size:14px;font-weight:600}

/* ── explorer ── */
.md-explore{padding:70px 0;background:var(--bg)}
.md-explore h2{font-size:clamp(24px,3.8vw,36px);font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.md-lead{color:var(--muted);max-width:680px;margin-bottom:26px}
.md-search{max-width:760px}
.md-combo{position:relative;display:flex;align-items:center;gap:10px}
.md-search-ico{width:20px;height:20px;color:var(--dim);flex-shrink:0;position:absolute;left:14px;pointer-events:none}
#townInput{
  flex:1;background:var(--panel);border:1px solid var(--line2);border-radius:12px;color:var(--txt);
  padding:16px 14px 16px 42px;font-size:16px;outline:none;font-family:inherit;transition:border-color .15s}
#townInput:focus{border-color:#fff}
#townInput::placeholder{color:var(--dim)}
.md-combo .md-btn{flex-shrink:0}
.md-suggest{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;list-style:none;
  background:var(--panel);border:1px solid var(--line2);border-radius:12px;overflow:hidden;
  max-height:320px;overflow-y:auto;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.md-suggest li{padding:12px 16px;cursor:pointer;font-size:15px;border-bottom:1px solid var(--line)}
.md-suggest li:last-child{border-bottom:none}
.md-suggest li:hover,.md-suggest li.sel{background:var(--panel2);color:#fff}
.md-suggest .hint{color:var(--dim);font-size:12px;padding:10px 16px}
.md-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;color:var(--dim);font-size:13px}
.md-quick>span{font-weight:600}

/* ── results ── */
.md-result{margin-top:34px}
.md-empty{text-align:center;padding:44px 16px;border:1px dashed var(--line2);border-radius:18px;color:var(--muted)}
.md-empty-art{font-size:34px;margin-bottom:10px}
.md-empty-emblem{width:46px;height:30px;opacity:.5}
.md-empty h3{color:var(--txt);font-size:19px;margin-bottom:4px}
.md-empty p{max-width:480px;margin:0 auto;font-size:14px}
.md-town{margin-bottom:26px;animation:fadeUp .35s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.md-town-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:4px}
.md-town-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.02em}
.md-town-head .md-source{font-size:12px;color:var(--dim);font-weight:600}
.md-town-blurb{color:var(--muted);font-size:14px;margin-bottom:16px;max-width:720px}
.md-town-cached{display:inline-block;font-size:11.5px;color:var(--dim);margin-bottom:12px}
.md-grid{display:grid;gap:16px}
@media(min-width:860px){.md-grid{grid-template-columns:1.05fr .95fr}}
.md-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}
.md-panel h4{font-size:15px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.md-panel h4 .dot{width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block}
.md-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:6px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line)}
.md-row:last-child{border-bottom:none}
.md-row.head{color:var(--dim);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding-bottom:6px}
.md-opc{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.md-opbadge{width:22px;height:22px;border-radius:6px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0}
.md-qualtag{font-size:12px;font-weight:800;padding:2px 8px;border-radius:6px;display:inline-block;justify-self:start}
.q-verygood{background:rgba(46,204,113,.16);color:#5fe69a}
.q-good{background:rgba(241,196,15,.16);color:#f5d24a}
.q-poor{background:rgba(231,76,60,.16);color:#ff8f83}
.q-none{background:rgba(150,150,165,.16);color:var(--muted)}
.md-val{font-family:ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace;font-size:13.5px;text-align:right;color:var(--muted)}
.md-mastrow{grid-template-columns:1.3fr 1fr 1fr 1fr 1fr}
.md-num{text-align:right;font-family:ui-monospace,'JetBrains Mono',Menlo,monospace;font-size:13.5px}
.md-barline{height:5px;border-radius:3px;background:var(--bg2);overflow:hidden}
.md-barline i{display:block;height:100%;border-radius:3px}
.md-ops-link{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.md-outlink{font-size:12.5px;font-weight:700;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:6px 12px;text-decoration:none;transition:color .15s,border-color .15s}
.md-outlink:hover{color:#fff;border-color:#fff}
.md-licence-note{margin-top:18px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.md-licence-note p{color:var(--muted);font-size:13.5px;max-width:560px}
.md-licence-note p strong{color:#fff}

/* ── licence band ── */
.md-licence{padding:64px 0;background:linear-gradient(180deg,#0b0b11,#0d0d13)}
.md-licence-in{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;border:1px solid var(--line2);border-radius:18px;padding:30px 28px;background:radial-gradient(500px 200px at 90% 0,rgba(255,255,255,.06),transparent 60%)}
.md-licence-in h2{font-size:clamp(20px,3vw,27px);font-weight:800;margin-bottom:6px;letter-spacing:-.02em}
.md-licence-in p{color:var(--muted);max-width:620px}

/* ── services ── */
.md-services{padding:66px 0;background:var(--bg)}
.md-services h2{font-size:clamp(22px,3.4vw,32px);font-weight:800;letter-spacing:-.02em;margin-bottom:26px}
.md-cards{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:820px){.md-cards{grid-template-columns:repeat(3,1fr)}}
.md-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px}
.md-card h3{font-size:17px;font-weight:800;margin-bottom:8px}
.md-card p{color:var(--muted);font-size:14px}
.md-services-more{margin-top:24px;font-size:13.5px;color:var(--dim)}
.md-services-more a{color:var(--txt);text-decoration:underline}

/* ── operators ── */
.md-ops{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;background:var(--bg2)}
.md-ops-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:center}
.md-ops-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-right:8px}
.md-op{font-weight:800;font-size:15px;color:var(--muted);padding:6px 12px;border:1px solid var(--line);border-radius:8px}
.md-op-o2{color:#7fb2ff;border-color:rgba(0,80,164,.5)}
.md-op-vf{color:#ff9292;border-color:rgba(230,0,0,.4)}
.md-op-ee{color:#d9a8ff;border-color:rgba(111,35,148,.55)}
.md-op-h3g{color:#d9a8ff}

/* ── about / footer ── */
.md-about{padding:64px 0}
.md-about-grid{display:grid;gap:26px}
@media(min-width:820px){.md-about-grid{grid-template-columns:1.3fr .7fr}}
.md-about h2{font-size:clamp(22px,3.2vw,30px);font-weight:800;letter-spacing:-.02em;margin-bottom:12px}
.md-about p{color:var(--muted)}
.md-contact p{margin-bottom:12px;line-height:1.8}
.md-contact a{color:var(--txt);text-decoration:underline}
.md-foot{border-top:1px solid var(--line);background:#07070b;padding:34px 0}
.md-foot-in{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between}
.md-brand-foot .md-brand-sub{display:inline}
.md-foot-copy{font-size:12.5px;color:var(--dim);margin-top:8px}
.md-foot-links{display:flex;flex-wrap:wrap;gap:16px}
.md-foot-links a{color:var(--muted);text-decoration:none;font-size:13px}
.md-foot-links a:hover{color:#fff}

/* ── modal ── */
.md-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(0,0,0,.68);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow-y:auto}
.md-modal[hidden]{display:none}
.md-modal-card{position:relative;background:var(--panel);border:1px solid var(--line2);border-radius:18px;
  width:100%;max-width:430px;padding:30px 26px;box-shadow:0 30px 80px rgba(0,0,0,.6);animation:fadeUp .25s ease}
.md-modal-wide{max-width:520px}
.md-modal-card h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}
.md-modal-sub{color:var(--muted);font-size:14px;margin-bottom:18px}
.md-modal-x{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--dim);font-size:26px;cursor:pointer;line-height:1}
.md-modal-x:hover{color:#fff}
.md-modal .md-field{margin-bottom:12px}
.md-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.md-err{margin:4px 0 8px}

/* ── toast ── */
.md-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:400;background:#fff;color:#0a0a0f;
  padding:13px 20px;border-radius:12px;font-weight:700;font-size:14px;box-shadow:0 14px 40px rgba(0,0,0,.5);max-width:92vw;text-align:center}
.md-toast.err{background:#e74c3c;color:#fff}
.md-toast[hidden]{display:none}

/* ── loader ── */
.md-loader{display:flex;align-items:center;gap:12px;color:var(--muted);padding:26px 0}
.spin{display:block;width:22px;height:22px;border-radius:50%;border:3px solid var(--line2);border-top-color:#fff;animation:rot .7s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}

@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
