:root{--bg:#f4f1e8;--card:#fffdf7;--ink:#1d2417;--muted:#6b705f;--line:#e2dccb;--brand:#3f4a1f;--brand2:#c9b84a;--accent:#b5462b;--ok:#2f6b3a;--chip:#ece6d2}
@media (prefers-color-scheme:dark){:root{--bg:#14170f;--card:#1d2117;--ink:#eef0e4;--muted:#a3a893;--line:#30362a;--brand:#2b3317;--brand2:#d9c85a;--accent:#e2775b;--ok:#7cc48a;--chip:#2a2f22}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans Malayalam",system-ui,sans-serif;-webkit-text-size-adjust:100%}
.wrap{max-width:720px;margin:0 auto;padding:0 14px 120px}
header{background:var(--brand);color:#f7f3dc;padding:18px 16px 16px;border-bottom:4px solid var(--brand2)}
header .in{max-width:720px;margin:0 auto}
h1{margin:0;font-size:1.45rem;font-weight:800;line-height:1.3}
.sub{opacity:.85;font-size:.9rem;margin-top:2px}
.clock{font-variant-numeric:tabular-nums;font-weight:600;color:var(--brand2)}
.stop{display:inline-block;margin-top:10px;background:var(--brand2);color:#2b2a10;font-weight:700;border-radius:999px;padding:4px 12px;font-size:.9rem}
h2{font-size:1.05rem;margin:22px 0 10px;font-weight:800}
.next{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:118px}
.nc .d{font-weight:800;font-size:1rem}
.nc .t{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;margin-top:2px}
.nc .in2{color:var(--ok);font-weight:700;font-size:.88rem}
.nc .in2.soon{color:var(--accent)}
.nc .o{color:var(--muted);font-size:.82rem;margin-top:3px;line-height:1.35}
.tools{position:sticky;top:0;z-index:5;background:var(--bg);padding:10px 0 8px;margin-top:6px}
input,select{font:inherit;color:var(--ink)}
.search{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:1rem}
.chips{display:flex;gap:8px;overflow-x:auto;padding-top:8px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:var(--chip);color:var(--ink);border-radius:999px;padding:7px 14px;font:inherit;font-size:.92rem;font-weight:600;cursor:pointer}
.chip.on{background:var(--brand);color:#f7f3dc;border-color:var(--brand)}
.grp h3{margin:18px 0 6px;font-size:1rem;font-weight:800;display:flex;justify-content:space-between;align-items:baseline}
.grp h3 small{color:var(--muted);font-weight:400;font-size:.8rem}
.list{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.row{display:flex;gap:12px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .tm{flex:none;width:78px;font-weight:800;font-variant-numeric:tabular-nums}
.row .info{flex:1;min-width:0;line-height:1.35}
.row .op{font-weight:600;font-size:.95rem}
.row .rt{color:var(--muted);font-size:.85rem}
.row.past{opacity:.42}
.row.nx{background:color-mix(in srgb,var(--brand2) 22%,transparent)}
.tag{display:inline-block;font-size:.7rem;font-weight:700;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:1px;background:var(--accent);color:#fff}
.ed{flex:none;display:flex;gap:6px}
.ib{border:1px solid var(--line);background:var(--chip);border-radius:10px;width:38px;height:38px;font-size:1rem;cursor:pointer;color:var(--ink)}
.empty{padding:18px;color:var(--muted);text-align:center}
.btn{font:inherit;font-weight:700;border-radius:12px;padding:11px 16px;border:1px solid var(--line);background:var(--chip);color:var(--ink);cursor:pointer}
.btn.pri{background:var(--brand);color:#f7f3dc;border-color:var(--brand)}
.btn.warn{background:var(--accent);color:#fff;border-color:var(--accent)}
.foot{color:var(--muted);font-size:.82rem;margin-top:26px;line-height:1.6}
.editbar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));z-index:10}
.editbar .in{max-width:720px;margin:0 auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.editbar .msg{flex-basis:100%;font-size:.85rem;color:var(--muted)}
.editbar .msg.err{color:var(--accent);font-weight:600}
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:9;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.ov{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.sheet{background:var(--card);width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}
@media (min-width:600px){.ov{align-items:center}.sheet{border-radius:18px}}
.sheet h3{margin:0 0 12px}
.f{display:block;margin-bottom:10px;font-size:.88rem;color:var(--muted)}
.f input,.f select{display:block;width:100%;margin-top:4px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:1rem}
.acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.stops .row input{flex:1;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg)}
.banner{background:var(--chip);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:12px;font-size:.88rem}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;z-index:30;max-width:92vw;font-size:.92rem;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.toast.err{background:var(--accent);color:#fff}
.err-text{color:var(--accent);font-size:.88rem;margin-top:6px;font-weight:600}
.hint{color:var(--muted);font-size:.82rem;margin:0 0 12px;line-height:1.5}
.center{text-align:center;padding:60px 16px;color:var(--muted)}
button:disabled{opacity:.55}


.stop select{font:inherit;font-weight:700;color:inherit;background:transparent;border:0;padding:0 2px;appearance:auto;max-width:70vw}
.stops .row select{padding:8px 6px;border-radius:8px;border:1px solid var(--line);background:var(--bg);max-width:110px}

.install{display:flex;gap:8px;align-items:center;margin-top:14px}
.install .btn{flex:1}
.install.banner{justify-content:space-between}
