﻿:root { --bg:#f6f2ea; --card:#fffaf2; --ink:#33251b; --muted:#77685a; --brand:#9b3f1f; --brand-dark:#6f2b16; --line:#eadcc8; --ok:#1f7a3b; font-family: Segoe UI, system-ui, sans-serif; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:linear-gradient(135deg,#f6f2ea,#eadcc8); }
body.worker { display:grid; place-items:center; padding:1rem; }
.shell { width:min(1250px,100%); margin:0 auto; padding:1rem; }
.card,.panel { background:rgba(255,250,242,.96); border:1px solid var(--line); border-radius:22px; box-shadow:0 18px 60px rgba(77,47,21,.12); }
.card { width:min(100%,560px); padding:1.2rem; }
.panel { padding:1rem; overflow:auto; }
.brand { color:var(--brand); font-weight:900; text-transform:uppercase; letter-spacing:.04em; font-size:.8rem; }
h1,h2,h3 { margin:.35rem 0 .8rem; line-height:1.1; }
h1 { font-size:clamp(1.8rem,5vw,2.8rem); }
label { display:grid; gap:.35rem; margin:.8rem 0; font-weight:800; }
input,select,textarea,button { width:100%; border:1px solid var(--line); border-radius:14px; padding:.85rem .95rem; font:inherit; }
button { cursor:pointer; background:white; font-weight:900; }
button.primary { color:white; background:linear-gradient(135deg,var(--brand),var(--brand-dark)); border:0; }
.muted { color:var(--muted); }
.message { min-height:1.4rem; color:#a53322; font-weight:800; }
.message.ok { color:var(--ok); }
.adminLink { color:var(--brand-dark); }
.tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin:1rem 0; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.panel.wide { grid-column:1 / -1; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1rem 0; }
.topActions { display:flex; gap:.6rem; }
.row { display:flex; gap:.75rem; align-items:end; flex-wrap:wrap; }
.row>* { flex:1 1 180px; }
table { width:100%; border-collapse:collapse; background:white; border-radius:12px; overflow:hidden; }
th,td { padding:.7rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { background:#f7ead8; text-transform:uppercase; font-size:.78rem; }
.routeCard { margin:1rem 0; padding:1rem; border:1px solid var(--line); border-radius:18px; background:white; }
.routeCard header { display:flex; justify-content:space-between; gap:1rem; }
.routeMap { width:100%; height:320px; border:0; border-radius:14px; margin:.8rem 0; }
@media (max-width:760px){ .grid{grid-template-columns:1fr;} .topbar{flex-direction:column;align-items:stretch;} .tabs{grid-template-columns:1fr;} }
