:root{--pine:#174a37;--green:#197a54;--mint:#e7f5ed;--ink:#17251f;--muted:#66736b;--line:#dce5df;--paper:#fff;--canvas:#f3f6f4;--danger:#9d3e34}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}.shell{max-width:1100px;margin:auto;padding:22px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.brand{font-size:20px;font-weight:800;color:var(--pine);display:flex;align-items:center;gap:9px}.brand span{display:grid;place-items:center;background:var(--pine);color:#fff;width:35px;height:35px;border-radius:12px}.brand small{font-size:12px;color:var(--muted);font-weight:600}.connection{font-size:13px;color:var(--muted)}.connection.offline{color:#a05b17}.auth-card,.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 14px 42px #174a3710}.auth-card{max-width:560px;margin:9vh auto}.eyebrow{font-size:11px;letter-spacing:.09em;font-weight:800;color:var(--green)}h1{font-size:29px;line-height:1.15;letter-spacing:-.6px;margin:10px 0}h2{font-size:19px;margin:0}h3{font-size:15px;margin:0}p{color:var(--muted)}.tabs{display:flex;border-bottom:1px solid var(--line);margin:24px 0 18px;gap:8px}.tab{border:0;background:none;padding:9px 5px;color:var(--muted);font:inherit;cursor:pointer}.tab.active{color:var(--pine);font-weight:800;border-bottom:3px solid var(--green)}.auth-form{display:grid;gap:13px}label{display:grid;gap:5px;font-weight:700;font-size:13px}label small{font-weight:400;color:var(--muted)}input,select{font:inherit;padding:11px;border:1px solid #bdc9c1;border-radius:10px;background:#fff}button{border:0;border-radius:10px;background:var(--pine);color:white;font:inherit;font-weight:750;padding:11px 14px;cursor:pointer}button:hover{background:var(--green)}button.secondary{background:#e8f0ea;color:var(--pine)}button.danger{background:#f8eae7;color:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}.hidden{display:none!important}.message{min-height:22px;margin-top:14px;font-size:14px;color:var(--danger)}.app-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.app-head h1{margin:0;font-size:26px}.app-head p{margin:3px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.notice{border-left:4px solid #d99736;background:#fff8ea;border-radius:8px;padding:10px 13px;font-size:13px;color:#714a1a;margin:0 0 16px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.card{padding:18px;box-shadow:none}.stat strong{display:block;font-size:26px;margin-top:7px}.stat small,.muted{color:var(--muted)}.visit{border-top:1px solid var(--line);padding:14px 0}.visit:first-child{border:0;padding-top:0}.visit-top{display:flex;justify-content:space-between;gap:12px}.visit-title{font-weight:800;font-size:17px}.visit-time{font-size:13px;color:var(--green);font-weight:700}.visit-address{font-size:14px;margin-top:4px;color:var(--muted)}.phase-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}.phase-buttons button{padding:10px;font-size:14px}.phase-buttons .drive{background:#2c689d}.phase-buttons .break{background:#9a5c14}.phase-buttons .other{background:#58665f}.log-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf1ee;font-size:14px}.pill{font-size:11px;background:var(--mint);color:var(--pine);border-radius:20px;padding:4px 7px;font-weight:800;white-space:nowrap}.pill.offline{background:#fff0dd;color:#985511}.manager-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:15px}.live-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid #edf1ee}.live-row:last-child{border:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.form-grid .wide{grid-column:1/-1}.worker-checks{display:flex;gap:8px;flex-wrap:wrap}.worker-checks label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:9px;padding:8px;font-weight:600}.worker-checks input{padding:0}.history-search{display:flex;gap:8px;margin:12px 0}.history-search input{flex:1}.history{max-height:360px;overflow:auto}.queue{font-size:13px;color:var(--muted);margin-top:12px}.section-title{margin-bottom:13px}.empty{color:var(--muted);font-size:14px;padding:12px 0}@media(max-width:760px){.shell{padding:14px}.auth-card{margin:4vh auto;padding:20px}.grid,.manager-layout{grid-template-columns:1fr}.app-head{flex-direction:column}.form-grid{grid-template-columns:1fr}.phase-buttons{grid-template-columns:1fr 1fr}h1{font-size:26px}}
.language-choice{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.language-choice select{padding:8px;font-size:14px}
.language-choice{min-height:44px}button,input,select{min-height:44px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #91cbb0;outline-offset:2px}.shell{width:min(100%,1180px)}@media(min-width:900px){.shell{padding:30px}.card{padding:24px}.app-head{align-items:center}}@media(max-width:760px){body{min-width:320px}.shell{padding:14px max(14px,env(safe-area-inset-right)) 24px max(14px,env(safe-area-inset-left))}header{align-items:flex-start;margin-bottom:18px}.brand{font-size:19px}.connection{max-width:260px}.app-head{gap:12px}.app-head h1{font-size:24px}.actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.actions .language-choice{grid-column:1/-1;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--paper)}.actions button{width:100%}.card,.auth-card{border-radius:15px;padding:17px}.notice{font-size:14px}.history-search{align-items:stretch}.history-search button{min-width:74px}.log-row{align-items:flex-start}.visit-title{font-size:18px}.phase-buttons button{min-height:52px;font-size:15px}}@media(max-width:420px){.grid{grid-template-columns:1fr}.history-search{flex-direction:column}.history-search button{width:100%}.visit-top,.productivity-line{flex-direction:column;gap:3px}.visit-time{margin-top:4px}.day-strip{gap:3px}.day-choice{min-height:54px}.day-choice strong{font-size:16px}}
