/* Terra Drive — portal kit (restaurant portal, admin console, track/pay/developers).
   Layers on top of /ui.css. Every token has a fallback so pages render even if ui.css changes. */
:root{
  --k-bg: var(--bg, #0b1526);
  --k-bg2: var(--navy-950, #0a1222);
  --k-panel: var(--surface, #0f1c31);
  --k-panel2: var(--surface-2, #13233d);
  --k-line: var(--line, rgba(195,205,221,.12));
  --k-text: var(--text, #eef2f8);
  --k-muted: var(--muted, #8b9ab3);
  --k-amber: var(--amber, #f2a93b);
  --k-amber2: var(--amber-2, #ffc46b);
  --k-green: #3ecf8e;
  --k-red: #ff6b6b;
  --k-blue: #5aa9ff;
  --k-violet: #b48cff;
  --k-radius: 14px;
  --k-shadow: 0 10px 30px rgba(0,0,0,.35);
  --k-font: var(--font, "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
  --k-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.k{background:var(--k-bg);color:var(--k-text);font-family:var(--k-font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}
.k a{color:var(--k-amber2);text-decoration:none}
.k a:hover{text-decoration:underline}
.k h1,.k h2,.k h3{margin:0 0 .5em;line-height:1.2;letter-spacing:-.01em}
.k h1{font-size:1.6rem}.k h2{font-size:1.25rem}.k h3{font-size:1.02rem}
.k code,.k pre,.k kbd{font-family:var(--k-mono);font-size:.86em}
.k code{background:rgba(255,255,255,.06);padding:.1em .35em;border-radius:6px}
.k-muted{color:var(--k-muted)}
.k-small{font-size:.85rem}
.k-mono{font-family:var(--k-mono)}
.k-right{text-align:right}
.k-hide{display:none!important}
.k-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.k-spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.k-grid{display:grid;gap:16px}
.k-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.k-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.k-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.k-g3,.k-g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.k-g2,.k-g3,.k-g4{grid-template-columns:1fr}}

/* ---------- app shell ---------- */
.k-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.k-side{background:var(--k-bg2);border-right:1px solid var(--k-line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;gap:4px}
.k-logo{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;font-weight:800;font-size:1.08rem;letter-spacing:.01em}
.k-logo .mark{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}.k-logo .mark svg{display:block}
.k-logo small{display:block;font-weight:500;color:var(--k-muted);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.k-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--k-muted);font-weight:600;font-size:.93rem}
.k-nav a:hover{background:rgba(255,255,255,.04);color:var(--k-text);text-decoration:none}
.k-nav a.on{background:rgba(242,169,59,.12);color:var(--k-amber2)}
.k-nav .ico{width:18px;text-align:center;opacity:.9}
.k-side .k-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--k-line);font-size:.8rem;color:var(--k-muted)}
.k-main{padding:22px 26px 60px;min-width:0}
.k-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.k-top h1{margin:0}
.k-burger{display:none}
@media (max-width:860px){
  .k-shell{grid-template-columns:1fr}
  .k-side{position:fixed;z-index:1200;left:0;top:0;width:260px;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--k-shadow)}
  .k-side.open{transform:none}
  .k-burger{display:inline-flex}
  .k-main{padding:16px 16px 60px}
}

/* ---------- cards / panels ---------- */
.k-card{background:var(--k-panel);border:1px solid var(--k-line);border-radius:var(--k-radius);padding:18px}
.k-card.tight{padding:12px}
.k-card h2,.k-card h3{margin-top:0}
.k-kpi{background:linear-gradient(180deg,var(--k-panel2),var(--k-panel));border:1px solid var(--k-line);border-radius:var(--k-radius);padding:16px 18px}
.k-kpi .lbl{color:var(--k-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.k-kpi .val{font-size:1.75rem;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}
.k-kpi .sub{color:var(--k-muted);font-size:.82rem}
.k-kpi.amber .val{color:var(--k-amber2)}
.k-kpi.green .val{color:var(--k-green)}

/* ---------- forms ---------- */
.k label{display:block;font-size:.82rem;font-weight:700;color:var(--k-muted);margin:0 0 6px;letter-spacing:.02em}
.k input[type=text],.k input[type=email],.k input[type=password],.k input[type=tel],.k input[type=number],.k input[type=url],.k input[type=date],.k input[type=time],.k select,.k textarea{
  width:100%;background:var(--k-bg2);border:1px solid var(--k-line);color:var(--k-text);border-radius:10px;padding:11px 12px;font:inherit;min-height:44px;outline:none}
.k textarea{min-height:80px;resize:vertical}
.k input:focus,.k select:focus,.k textarea:focus{border-color:var(--k-amber);box-shadow:0 0 0 3px rgba(242,169,59,.18)}
.k-field{margin-bottom:14px}
.k-check{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important;color:var(--k-text)!important;font-size:.9rem!important;cursor:pointer}
.k-check input{margin-top:3px;width:18px;height:18px;accent-color:var(--k-amber)}
.k-help{font-size:.8rem;color:var(--k-muted);margin-top:5px}

/* ---------- buttons ---------- */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border-radius:10px;border:1px solid var(--k-line);background:var(--k-panel2);color:var(--k-text);font:inherit;font-weight:700;cursor:pointer;text-decoration:none!important;white-space:nowrap}
.k-btn:hover{border-color:rgba(242,169,59,.5)}
.k-btn:disabled{opacity:.5;cursor:not-allowed}
.k-btn.pri{background:linear-gradient(180deg,var(--k-amber2),var(--k-amber));color:#1b1205;border-color:transparent}
.k-btn.pri:hover{filter:brightness(1.05)}
.k-btn.danger{background:rgba(255,107,107,.12);color:#ffb3b3;border-color:rgba(255,107,107,.35)}
.k-btn.ok{background:rgba(62,207,142,.13);color:#9ff0c9;border-color:rgba(62,207,142,.35)}
.k-btn.ghost{background:transparent}
.k-btn.sm{min-height:32px;padding:5px 10px;font-size:.84rem;border-radius:8px}
.k-btn.lg{min-height:52px;padding:12px 22px;font-size:1.05rem}
.k-btn.block{width:100%}

/* ---------- tables ---------- */
.k-tablewrap{overflow-x:auto;border:1px solid var(--k-line);border-radius:var(--k-radius)}
.k table{width:100%;border-collapse:collapse;font-size:.9rem}
.k th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--k-muted);font-weight:800;padding:10px 12px;background:var(--k-bg2);border-bottom:1px solid var(--k-line);white-space:nowrap}
.k td{padding:10px 12px;border-bottom:1px solid var(--k-line);vertical-align:top}
.k tr:last-child td{border-bottom:0}
.k td.num,.k th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.k tbody tr:hover{background:rgba(255,255,255,.02)}
.k-empty{padding:28px;text-align:center;color:var(--k-muted)}

/* ---------- badges ---------- */
.k-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;background:rgba(255,255,255,.07);color:var(--k-muted);white-space:nowrap}
.k-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}
.k-badge.plain::before{display:none}
.k-badge.amber{background:rgba(242,169,59,.14);color:var(--k-amber2)}
.k-badge.green{background:rgba(62,207,142,.14);color:#7fe8b6}
.k-badge.red{background:rgba(255,107,107,.14);color:#ff9d9d}
.k-badge.blue{background:rgba(90,169,255,.14);color:#9ccaff}
.k-badge.violet{background:rgba(180,140,255,.15);color:#d2bcff}
.k-demo{position:fixed;z-index:3000;bottom:10px;left:10px;background:#d61f2c;color:#fff;font-weight:900;letter-spacing:.12em;font-size:.72rem;padding:5px 10px;border-radius:6px;box-shadow:0 4px 14px rgba(214,31,44,.4);pointer-events:none}
.k-founder{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:800;background:linear-gradient(90deg,rgba(242,169,59,.25),rgba(255,197,107,.12));color:var(--k-amber2);border:1px solid rgba(242,169,59,.4)}

/* ---------- tabs / segmented ---------- */
.k-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.k-tabs button{background:transparent;border:1px solid var(--k-line);color:var(--k-muted);border-radius:999px;padding:7px 14px;font:inherit;font-weight:700;font-size:.86rem;cursor:pointer}
.k-tabs button.on{background:rgba(242,169,59,.14);border-color:rgba(242,169,59,.45);color:var(--k-amber2)}

/* ---------- toast / modal ---------- */
.k-toasts{position:fixed;z-index:4000;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,460px)}
.k-toast{pointer-events:auto;background:#0a1020;border:1px solid var(--k-line);border-left:4px solid var(--k-amber);color:var(--k-text);padding:11px 14px;border-radius:10px;box-shadow:var(--k-shadow);font-size:.92rem;width:100%;animation:kin .18s ease-out}
.k-toast.err{border-left-color:var(--k-red)}
.k-toast.ok{border-left-color:var(--k-green)}
@keyframes kin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.k-modal-bg{position:fixed;inset:0;z-index:3500;background:rgba(3,7,16,.7);display:grid;place-items:center;padding:16px}
.k-modal{background:var(--k-panel);border:1px solid var(--k-line);border-radius:18px;box-shadow:var(--k-shadow);width:min(560px,100%);max-height:90vh;overflow:auto;padding:22px}

/* ---------- auth screen ---------- */
.k-auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 600px at 80% -10%,rgba(242,169,59,.12),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(90,169,255,.1),transparent 60%),var(--k-bg)}
.k-auth .k-card{width:min(460px,100%);padding:26px}
.k-auth .k-logo{justify-content:center;padding-bottom:8px}

/* ---------- maps ---------- */
.k-map{width:100%;height:420px;border-radius:var(--k-radius);overflow:hidden;border:1px solid var(--k-line);background:#0d1628}
.k-map.tall{height:calc(100vh - 170px);min-height:460px}
.k-dark-tiles .leaflet-tile-pane{filter:brightness(.62) invert(1) contrast(2.6) hue-rotate(200deg) saturate(.35) brightness(.75)}
.leaflet-container{font-family:var(--k-font)!important;background:#0d1628!important}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0f1a30!important;color:var(--k-text)!important;border:1px solid var(--k-line)}
.leaflet-popup-content{margin:10px 12px!important;font-size:.86rem;line-height:1.45}
.leaflet-control-attribution{background:rgba(10,16,32,.75)!important;color:#8fa0bf!important}
.leaflet-control-attribution a{color:#c7d4ee!important}
.leaflet-bar a{background:#0f1a30!important;color:#e8eef9!important;border-color:var(--k-line)!important}
.k-pin{position:relative}
.k-pin-store{width:30px;height:30px;border-radius:9px;background:#1b2a4c;border:2px solid var(--k-amber);display:grid;place-items:center;font-size:15px;box-shadow:0 3px 10px rgba(0,0,0,.5)}
.k-pin-drop{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.5);display:grid;place-items:center}
.k-pin-drop span{transform:rotate(45deg);font-size:11px;font-weight:900;color:#0b1324}
.k-pin-car{width:30px;height:30px;border-radius:50%;border:3px solid #fff;display:grid;place-items:center;font-size:14px;box-shadow:0 0 0 6px rgba(255,255,255,.08),0 3px 12px rgba(0,0,0,.6)}
.k-pin-car.idle{width:16px;height:16px;border-width:2px;box-shadow:0 0 0 4px rgba(90,169,255,.18)}
.k-pin-car.pulse{animation:kpulse 1.8s infinite}
@keyframes kpulse{0%{box-shadow:0 0 0 0 rgba(242,169,59,.55),0 3px 12px rgba(0,0,0,.6)}70%{box-shadow:0 0 0 14px rgba(242,169,59,0),0 3px 12px rgba(0,0,0,.6)}100%{box-shadow:0 0 0 0 rgba(242,169,59,0),0 3px 12px rgba(0,0,0,.6)}}
.k-pin-label{position:absolute;left:50%;top:-20px;transform:translateX(-50%);background:rgba(10,16,32,.92);color:#fff;font-size:10px;font-weight:800;padding:1px 6px;border-radius:5px;white-space:nowrap;border:1px solid rgba(255,255,255,.15)}

/* ---------- live board ---------- */
.k-live{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}
@media (max-width:1100px){.k-live{grid-template-columns:1fr}}
.k-orders{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 170px);overflow:auto;padding-right:2px}
.k-order{background:var(--k-panel);border:1px solid var(--k-line);border-radius:12px;padding:12px 14px;border-left:5px solid var(--c,var(--k-amber));cursor:pointer;transition:border-color .15s}
.k-order:hover{border-color:rgba(242,169,59,.4);border-left-color:var(--c,var(--k-amber))}
.k-order.sel{box-shadow:0 0 0 2px var(--c,var(--k-amber))}
.k-order .t{font-weight:800;display:flex;justify-content:space-between;gap:8px}
.k-order .m{color:var(--k-muted);font-size:.84rem}
.k-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:9px 0 4px}
.k-steps i{height:5px;border-radius:3px;background:rgba(255,255,255,.08)}
.k-steps i.on{background:var(--c,var(--k-amber))}

/* timeline */
.k-tl{list-style:none;margin:0;padding:0}
.k-tl li{position:relative;padding:0 0 18px 30px;color:var(--k-muted)}
.k-tl li::before{content:"";position:absolute;left:8px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--k-bg2);border:2px solid rgba(255,255,255,.18)}
.k-tl li::after{content:"";position:absolute;left:13px;top:20px;bottom:0;width:2px;background:rgba(255,255,255,.1)}
.k-tl li:last-child::after{display:none}
.k-tl li.done{color:var(--k-text)}
.k-tl li.done::before{background:var(--k-amber);border-color:var(--k-amber)}
.k-tl li.now::before{box-shadow:0 0 0 5px rgba(242,169,59,.2)}
.k-tl li b{display:block;font-size:.95rem}
.k-tl li span{font-size:.82rem}

/* code */
.k-pre{background:#070d1b;border:1px solid var(--k-line);border-radius:12px;padding:14px 16px;overflow:auto;font-family:var(--k-mono);font-size:.82rem;line-height:1.55;color:#d6e2f7;position:relative;white-space:pre}
.k-copy{position:absolute;top:8px;right:8px}
.k-secret{font-family:var(--k-mono);background:#070d1b;border:1px dashed rgba(242,169,59,.5);border-radius:10px;padding:12px;word-break:break-all;color:var(--k-amber2)}
.k-split{display:flex;height:14px;border-radius:7px;overflow:hidden;background:rgba(255,255,255,.06)}
.k-split i{display:block;height:100%}
.k-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--k-muted);margin-top:8px}
.k-legend b{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
hr.k-hr{border:0;border-top:1px solid var(--k-line);margin:18px 0}
