:root{color:#172f34;font-synthesis:none;--bg:#f1f5f5;--card:#fff;--text:#172f34;--muted:#526b70;--line:#d7e2e3;--accent:#08766f;--soft:#e3f3ef;--warn:#fff1d6;--warntext:#704900;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background:#f1f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,input,select{min-height:46px}button{cursor:pointer;border:1px solid var(--line);color:var(--text);background:var(--card);border-radius:12px;padding:10px 14px;font-weight:600}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:#ba3333}button.ghost{background:0 0;border-color:#0000}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #da9b18}h1{letter-spacing:-.055em;margin:8px 0;font-size:2rem}h2{letter-spacing:-.03em;margin:0 0 12px;font-size:1.3rem}h3{margin:12px 0 6px;font-size:1rem}p{margin:8px 0;line-height:1.5}small,.muted{color:var(--muted)}small{font-size:.8rem;line-height:1.5}header{max-width:900px;padding:calc(22px + env(safe-area-inset-top)) 20px 12px;margin:auto}.brand{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);align-items:center;gap:10px;font-size:.8rem;font-weight:750;display:flex}.brand svg{width:28px;height:28px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:750}.heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.device{border:1px solid var(--line);white-space:nowrap;border-radius:20px;padding:7px 9px;font-size:.7rem}main{max-width:900px;padding:6px 20px calc(108px + env(safe-area-inset-bottom));margin:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;margin-bottom:16px;padding:19px;box-shadow:0 3px 10px #163e4003}.hero{background:var(--accent);color:#fff;border:0}.hero .muted,.hero small{color:#d8f1ed}.hero h2{letter-spacing:-.06em;margin:10px 0 0;font-size:2.6rem;font-weight:700}.hero .eyebrow{color:#daf3ee}.hero .actions{margin-top:18px}.hero button{border-color:#0000}.stats{grid-template-columns:1fr 1fr;gap:12px;margin:12px 0;display:grid}.stats>div{background:var(--soft);border-radius:13px;padding:14px}.stats strong{letter-spacing:-.04em;font-size:1.45rem;display:block}.stats span{color:var(--muted);font-size:.8rem}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions>*{flex:1}.actions .wide{flex-basis:100%}nav{background:var(--card);border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav button{max-width:180px;color:var(--muted);background:0 0;border:0;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;min-height:54px;padding:8px 2px;font-size:.72rem;display:flex}nav button[aria-current=page]{color:var(--accent);background:var(--soft)}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.empty{text-align:center;padding:26px 10px}.empty svg{width:42px;height:42px;color:var(--accent);margin-bottom:10px}.badge{letter-spacing:.025em;background:var(--soft);color:var(--accent);border-radius:7px;padding:5px 8px;font-size:.68rem;font-weight:700;display:inline-block}.badge.off{background:var(--bg);color:var(--muted)}.warning{background:var(--warn);color:var(--warntext);border-radius:12px;margin:12px 0;padding:12px;font-size:.85rem;line-height:1.45}.note{color:var(--muted);font-size:.82rem;line-height:1.5}.daytitle{justify-content:space-between;align-items:flex-start;gap:10px;margin:22px 0 10px;display:flex}.daytitle h3{margin:0}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.toll{text-align:left;border-radius:15px;width:100%;margin:0 0 8px;padding:15px;display:block}.tolltop{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tolltop strong:first-child{overflow-wrap:anywhere;font-size:.95rem;line-height:1.4}.tollmeta{color:var(--muted);align-items:center;gap:9px;margin-top:10px;font-size:.75rem;display:flex}.toll .source{color:var(--muted);overflow-wrap:anywhere;margin-top:8px;font-size:.7rem;display:block}.chips{flex-wrap:wrap;gap:7px;margin-bottom:16px;display:flex}.chips button{border-radius:30px;padding:8px 13px;font-size:.8rem}.chips .selected{background:var(--soft);border-color:var(--accent);color:var(--accent)}label{margin:14px 0 6px;font-size:.85rem;font-weight:600;display:block}input:not([type=file]),select,textarea{border:1px solid var(--line);background:var(--card);width:100%;color:var(--text);border-radius:10px;padding:12px;display:block}input[type=file]{width:100%;padding:10px 0;font-size:.85rem}input::file-selector-button{font:inherit;border:1px solid var(--line);background:var(--soft);min-height:44px;color:var(--accent);border-radius:9px;margin-right:10px;padding:10px}.split{grid-template-columns:1fr 1fr;gap:12px;min-width:0;display:grid}.split>*{min-width:0}.calhead{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calhead h2{margin:0;font-size:1.15rem}.week,.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.week span{text-align:center;color:var(--muted);padding:8px 0;font-size:.7rem}.calendar button{border:0;border-radius:10px;min-height:48px;padding:5px 0;font-size:.95rem}.calendar button.selected{background:var(--accent);color:#fff}.calendar button small{color:inherit;font-size:.58rem;line-height:1;display:block}.calendar .blank{min-height:48px}.monthlabel{margin-top:10px}.scrolltable{margin:12px -3px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.76rem}td,th{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:10px 7px}th{color:var(--muted);background:var(--bg);font-weight:650}td.num{text-align:right;white-space:nowrap}tr.subtotal td{background:var(--soft);font-weight:650}.pdfpreview{border:1px solid var(--line);border-radius:12px;width:100%;height:420px;margin-top:15px}.row{border-bottom:1px solid var(--line);justify-content:space-between;gap:15px;padding:13px 0;font-size:.9rem;display:flex}.row span:last-child{text-align:right;overflow-wrap:anywhere;max-width:66%}.back{margin:0 0 14px}#notice{bottom:calc(90px + env(safe-area-inset-bottom));color:#fff;z-index:10;background:#173e3b;border-radius:12px;max-width:700px;margin:auto;padding:13px 17px;display:none;position:fixed;left:20px;right:20px;box-shadow:0 6px 20px #0002}.install{background:var(--soft);color:var(--accent);border-radius:12px;margin-top:14px;padding:12px 15px;font-size:.8rem}.startup{padding:40px}.mapping{grid-template-columns:1fr 1.4fr;align-items:center;gap:10px;margin-bottom:10px;display:grid}.mapping label{margin:0}.fileitem{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:13px 0}.fileitem button{margin-top:8px;font-size:.8rem}.step{color:var(--accent);margin-bottom:12px;font-size:.75rem;font-weight:700}a{color:var(--accent)}@media (prefers-color-scheme:dark){:root{--bg:#101d21;--card:#18292d;--text:#edf6f6;--muted:#a6bfc2;--line:#31494e;--accent:#42b9aa;--soft:#203f3d;--warn:#42361d;--warntext:#f5d99c;background:var(--bg);color:var(--text)}button.primary,.hero{color:#fff;background:#117f76}.hero .primary{color:#11675f;background:#fff}button.danger{color:#ff9c9c}}@media (min-width:700px){.two-col{grid-template-columns:1fr 1fr;gap:18px;display:grid}.calendar button{min-height:65px}h1{font-size:2.5rem}header{padding-top:32px}main{padding-top:10px}}@media (prefers-reduced-motion:no-preference){button{transition:background .12s}}@media print{nav,header,button{display:none}main{padding:0}.card{box-shadow:none}}button{min-width:44px}.calendar-card{padding:16px 12px}.calendar{grid-template-columns:repeat(7,minmax(44px,1fr));gap:0;overflow-x:auto}.calendar button{min-width:44px}.calendar small{font-size:.62rem}summary{cursor:pointer;min-height:44px;padding:12px 0}input[hidden]{display:none}
