:root {
  --bg:#0d1117;
  --panel:#151b23;
  --panel2:#1d2530;
  --line:#293442;
  --text:#f2f5f7;
  --muted:#8d9aaa;
  --accent:#aaee22;
  --accent2:#7fb817;
  --danger:#ff6b6b;
  --gold:#f5b942;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { background:var(--bg); }
body { margin:0; min-height:100vh; background:var(--bg); color:var(--text); font:15px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,.button,input,select,textarea { font:inherit; }
button,.button { border:0; border-radius:10px; padding:10px 14px; background:var(--accent); color:#10140b; font-weight:800; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
button.ghost,.button.ghost { background:transparent; color:var(--text); border:1px solid var(--line); }
button.wide { width:100%; padding:14px; }
.hidden { display:none!important; }
.topbar { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; padding:14px 16px 10px; background:rgba(13,17,23,.94); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.topbar h1 { margin:0; font-size:22px; letter-spacing:.2px; }
.eyebrow { color:var(--accent); font-size:10px; font-weight:900; letter-spacing:2px; }
.app { max-width:760px; margin:0 auto; padding:18px 14px 170px; }
.bottomnav { position:fixed; left:50%; transform:translateX(-50%); bottom:0; z-index:30; width:min(760px,100%); display:grid; grid-template-columns:repeat(5,1fr); gap:1px; padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); background:#090c10; border-top:1px solid var(--line); }
.bottomnav button { background:transparent; color:var(--muted); border-radius:8px; padding:10px 4px; font-size:12px; }
.bottomnav button.active { color:var(--accent); background:rgba(170,238,34,.08); }
.hero,.section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.hero h2,.section-head h2 { margin:2px 0 0; font-size:28px; line-height:1.1; }
.route-score { width:58px; height:58px; display:grid; place-items:center; border:2px solid var(--accent); border-radius:50%; color:var(--accent); font-weight:900; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:16px; margin-bottom:14px; }
.card h3 { margin:0 0 12px; }
.route-list,.pool-list,.history-list,.profit-list { display:grid; gap:10px; }
.route-card { display:grid; grid-template-columns:42px 1fr; gap:10px; padding:14px; border:1px solid var(--line); background:var(--panel); border-radius:14px; }
.route-card.status-done { border-color:rgba(170,238,34,.45); }
.route-card.status-skipped { opacity:.65; }
.route-num { width:34px; height:34px; border-radius:50%; background:var(--panel2); display:grid; place-items:center; font-weight:900; color:var(--muted); }
.route-title,.profit-top { display:flex; gap:8px; align-items:center; justify-content:space-between; }
.route-title strong { font-size:17px; }
.pill,.flag { font-size:10px; letter-spacing:.8px; font-weight:900; padding:4px 7px; border-radius:99px; background:var(--panel2); color:var(--muted); white-space:nowrap; }
.status-done .pill,.flag-keep { color:var(--accent); }
.flag-review { color:var(--gold); }
.flag-raise-price { color:#ff9d5c; }
.flag-drop { color:var(--danger); }
.muted { color:var(--muted); }
.micro { color:var(--muted); font-size:12px; margin-top:4px; }
.fineprint { color:var(--muted); font-size:11px; }
.actions,.row-actions { display:flex; gap:8px; margin-top:12px; }
.actions.wrap { flex-wrap:wrap; }
.pool-row { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; }
.week-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; text-align:center; }
.week-grid div { display:grid; gap:4px; }
.week-grid strong { font-size:10px; color:var(--muted); }
.week-grid span { font-size:18px; font-weight:900; }
.form { display:grid; gap:14px; }
.form label { display:grid; gap:6px; color:var(--muted); font-size:12px; font-weight:700; }
input,select,textarea { width:100%; border:1px solid var(--line); background:#0f141b; color:var(--text); border-radius:9px; padding:11px 12px; outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--accent2); box-shadow:0 0 0 3px rgba(170,238,34,.08); }
.two { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.three { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.checkline { display:flex!important; grid-auto-flow:column; align-items:center; justify-content:flex-start; gap:8px!important; align-self:end; min-height:43px; }
.checkline input { width:auto; }
.reading-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.reading-grid label { display:grid; gap:4px; }
.reading-grid span { font-weight:900; color:var(--muted); font-size:11px; }
.reading-grid input { text-align:center; padding:10px 4px; }
.check-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.checktile { display:flex!important; align-items:center; justify-content:center; gap:6px!important; min-height:48px; border:1px solid var(--line); border-radius:10px; color:var(--text)!important; background:#0f141b; }
.checktile input { position:absolute; opacity:0; pointer-events:none; }
.checktile span { color:var(--muted); }
.checktile:has(input:checked) { border-color:var(--accent); background:rgba(170,238,34,.08); }
.checktile:has(input:checked) span { color:var(--accent); }
.chem-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.calc-line { margin-top:12px; padding:10px; background:#0f141b; border-radius:8px; color:var(--accent); font-weight:800; }
.report { text-align:left; }
.report-check { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 12px; border-radius:50%; background:var(--accent); color:#111; font-size:32px; font-weight:900; }
.report h3 { text-align:center; font-size:24px; margin-bottom:2px; }
.report > .muted { text-align:center; }
hr { border:0; border-top:1px solid var(--line); margin:18px 0; }
.photo-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:12px 0; }
.photo-grid img { width:100%; border-radius:10px; border:1px solid var(--line); }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
.metric { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px; }
.metric span { display:block; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.7px; }
.metric strong { display:block; margin-top:4px; font-size:18px; }
.profit-row { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; }
.profit-money { margin:8px 0; font-size:21px; font-weight:900; }
.profit-money span { color:var(--muted); font-size:11px; font-weight:600; }
.bar { height:6px; background:#0f141b; border-radius:99px; overflow:hidden; margin:8px 0; }
.bar i { display:block; height:100%; background:var(--accent); }
.empty { padding:30px 18px; border:1px dashed var(--line); border-radius:12px; text-align:center; color:var(--muted); display:grid; gap:5px; }
.empty strong { color:var(--text); }
.toast { position:fixed; z-index:60; left:50%; transform:translate(-50%,20px); bottom:82px; background:var(--text); color:#111; padding:10px 16px; border-radius:99px; font-weight:800; opacity:0; pointer-events:none; transition:.2s; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.file-hidden { display:none; }
.danger { border-color:var(--danger); }
@media (max-width:560px) {
  .two,.three { grid-template-columns:1fr; }
  .reading-grid { grid-template-columns:repeat(4,1fr); }
  .chem-grid { grid-template-columns:1fr 1fr; }
  .metrics { grid-template-columns:1fr; }
  .week-grid { overflow-x:auto; }
  .row-actions { flex-direction:column; margin:0; }
}
@media print {
  .topbar,.bottomnav,.section-head button,.report .actions { display:none!important; }
  body,.app,.card { background:white!important; color:black!important; border:0!important; }
  .app { padding:0; }
  .muted,.micro { color:#555!important; }
}

button.compact { min-width:40px; padding:10px; }

.techbar { display:flex; gap:7px; overflow-x:auto; padding:0 0 14px; scrollbar-width:none; }
.techbar::-webkit-scrollbar { display:none; }
.techbar button { flex:0 0 auto; gap:6px; background:transparent; color:var(--muted); border:1px solid var(--line); padding:8px 10px; }
.techbar button.active { background:rgba(170,238,34,.10); color:var(--accent); border-color:rgba(170,238,34,.45); }
.techbar button span { min-width:20px; padding:1px 5px; border-radius:99px; background:var(--panel2); font-size:10px; }
.tech-summary { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:12px; }
.tech-summary div { display:grid; grid-template-columns:1fr auto; gap:2px 10px; align-items:center; padding:10px; background:#0f141b; border:1px solid var(--line); border-radius:9px; }
.tech-summary strong { grid-column:1; }
.tech-summary span { grid-column:1; color:var(--muted); font-size:11px; }
.tech-summary b { grid-column:2; grid-row:1/3; font-size:22px; color:var(--accent); }

.optimizer-status,.optimizer-result { display:grid; gap:3px; padding:10px 12px; margin-bottom:12px; border:1px solid var(--line); background:#0f141b; border-radius:9px; }
.optimizer-status strong,.optimizer-result strong { color:var(--accent); }
.optimizer-status span,.optimizer-result span { color:var(--muted); font-size:12px; }
.optimizer-count { display:flex; align-items:baseline; gap:8px; margin:10px 0; }
.optimizer-count strong { font-size:24px; color:var(--accent); }
.optimizer-count span { color:var(--muted); font-size:12px; }
button:disabled { opacity:.45; cursor:not-allowed; }

.history-count { margin-top:5px; color:var(--accent); font-size:11px; font-weight:800; }
.calendar-wrap { overflow-x:auto; margin:0 -14px 14px; padding:0 14px 6px; }
.route-calendar { min-width:760px; display:grid; grid-template-columns:120px repeat(7,1fr); gap:6px; align-items:stretch; }
.calendar-corner,.calendar-day,.calendar-tech,.calendar-cell { min-height:66px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.calendar-corner { display:grid; place-items:center; color:var(--muted); font-size:11px; font-weight:900; letter-spacing:1px; }
.calendar-day { display:grid; place-items:center; gap:2px; padding:8px; }
.calendar-day strong { font-size:12px; }
.calendar-day span { color:var(--accent); font-size:18px; font-weight:900; }
.calendar-tech { display:flex; flex-direction:column; justify-content:center; padding:9px 10px; }
.calendar-tech strong { font-size:14px; }
.calendar-tech span { color:var(--muted); font-size:10px; }
.calendar-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:8px; color:var(--text); }
.calendar-cell strong { font-size:20px; color:var(--accent); }
.calendar-cell span { color:var(--muted); font-size:10px; }
.calendar-cell.today,.calendar-day.today { border-color:rgba(170,238,34,.55); background:rgba(170,238,34,.06); }
.calendar-cell:disabled { opacity:.32; }
.calendar-legend { display:grid; gap:4px; }
.calendar-legend span { color:var(--muted); font-size:12px; }

.tech-daybar { display:grid; grid-template-columns:repeat(7,minmax(54px,1fr)); gap:6px; overflow-x:auto; padding-bottom:12px; }
.tech-daybar button { min-width:54px; display:grid; gap:2px; padding:8px 6px; background:transparent; color:var(--muted); border:1px solid var(--line); }
.tech-daybar button strong { font-size:11px; }
.tech-daybar button span { font-size:15px; }
.tech-daybar button.active { color:var(--accent); border-color:rgba(170,238,34,.55); background:rgba(170,238,34,.08); }
.route-view-toggle { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:12px; }
.route-view-toggle button { background:transparent; color:var(--muted); border:1px solid var(--line); }
.route-view-toggle button.active { color:var(--accent); border-color:rgba(170,238,34,.55); background:rgba(170,238,34,.08); }
.route-map-card { overflow:hidden; background:var(--panel); border:1px solid var(--line); border-radius:14px; }
.route-map { width:100%; height:min(62vh,520px); min-height:390px; background:#111820; }
.route-map-meta { padding:10px 12px; color:var(--muted); font-size:12px; border-top:1px solid var(--line); }
.route-number-tooltip { background:transparent!important; border:0!important; box-shadow:none!important; color:#111!important; font-weight:900!important; font-size:12px!important; }
.route-number-tooltip:before { display:none!important; }
.tech-mode .app { padding-bottom:32px; }
.tech-mode .topbar { padding-bottom:12px; }
.tech-mode .route-card .actions button { flex:1 1 auto; }

.proof-card { border-color:rgba(245,185,66,.5); }
.required-mark { display:inline-block; margin-left:6px; padding:2px 6px; border-radius:99px; background:rgba(255,107,107,.12); color:var(--danger); font-size:9px; letter-spacing:.8px; vertical-align:middle; }
.camera-button { min-height:54px; display:flex!important; align-items:center; justify-content:center; padding:14px; border:1px solid rgba(170,238,34,.45); border-radius:10px; background:rgba(170,238,34,.08); color:var(--accent)!important; font-size:14px!important; cursor:pointer; }
.camera-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.proof-status { padding:10px 12px; border:1px solid rgba(245,185,66,.35); border-radius:9px; background:rgba(245,185,66,.06); color:var(--gold); font-size:12px; font-weight:800; }
.proof-status.ready { border-color:rgba(170,238,34,.45); background:rgba(170,238,34,.07); color:var(--accent); }
.proof-preview:empty { display:none; }
.proof-preview { grid-template-columns:1fr; }
.proof-preview img { max-height:320px; object-fit:cover; }

.topbar-actions { display:flex; gap:8px; align-items:center; }
.tour-active { overflow-x:hidden; }
.tour-layer { position:fixed; inset:0; z-index:1000; pointer-events:none; }
.tour-popover {
  position:fixed;
  left:50%;
  bottom:max(18px, env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(560px, calc(100% - 24px));
  max-height:46vh;
  overflow:auto;
  padding:16px;
  border:1px solid rgba(170,238,34,.55);
  border-radius:14px;
  background:rgba(13,17,23,.98);
  box-shadow:0 18px 60px rgba(0,0,0,.58);
  pointer-events:auto;
}
.tour-popover h3 { margin:5px 0 8px; font-size:20px; }
.tour-popover p { margin:0; color:var(--text); line-height:1.5; }
.tour-progress { color:var(--accent); font-size:10px; font-weight:900; letter-spacing:1.4px; }
.tour-keys { margin-top:10px; color:var(--muted); font-size:10px; }
.tour-actions { display:flex; justify-content:space-between; gap:10px; margin-top:14px; }
.tour-actions > div { display:flex; gap:8px; }
.tour-highlight {
  position:relative;
  z-index:80!important;
  outline:3px solid var(--accent)!important;
  outline-offset:4px;
  box-shadow:0 0 0 8px rgba(170,238,34,.12), 0 0 32px rgba(170,238,34,.25)!important;
}
@media (max-width:560px) {
  .tour-popover { bottom:max(10px, env(safe-area-inset-bottom)); max-height:42vh; }
  .tour-popover h3 { font-size:18px; }
  .tour-popover p { font-size:13px; }
  .tour-actions button { min-width:72px; }
}

.auth-shell{min-height:65vh;display:grid;place-items:center;padding:24px 0}.auth-card{width:min(100%,420px);display:grid;gap:14px}.auth-card h2{margin:0}.auth-card label{display:grid;gap:6px}.user-access-row{display:grid;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.user-access-row:first-child{border-top:0}.user-access-row>div:first-child{display:grid;gap:2px}.user-access-row span{color:var(--muted);font-size:.88rem}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.9rem}.compact-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
