:root{color-scheme:light;--paper:#f3f6fb;--surface:#fff;--ink:#172a42;--muted:#64748b;--line:#dbe3ef;--blue:#2459d3;--soft:#edf3ff;--mint:#c5efe3;--amber:#fff2d4;--red:#9b3838;font-family:'Segoe UI',system-ui,sans-serif;font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}[hidden]{display:none!important}a{color:var(--blue);text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.65}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #eaaa34;outline-offset:4px}button{min-height:44px;border-radius:9px;padding:9px 17px;background:var(--soft);color:var(--blue);font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #b8c7da;background:var(--surface);color:var(--ink);border-radius:8px}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;padding:0;margin:0;flex:0 0 20px;accent-color:var(--blue)}label{display:block;font-size:.9rem;font-weight:600;margin:12px 0 6px}.check-label{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:400;cursor:pointer}.primary{background:var(--blue);color:#fff;padding:13px 21px}.quiet{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.text-button{background:transparent;padding:6px;white-space:nowrap}.brand{font-size:1.45rem;font-weight:750;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:10px;letter-spacing:-.04em}.brand span{font-weight:400;font-size:.7rem;letter-spacing:.02em;border-left:1px solid var(--line);padding-left:12px;color:var(--muted)}.topbar{height:84px;padding:0 max(24px,calc((100vw - 1140px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--line);gap:16px}.top-meta{display:flex;align-items:center;gap:20px;font-size:.85rem;color:var(--muted)}nav{display:flex;gap:6px;max-width:1188px;padding:16px 24px 0;margin:auto}nav button{background:transparent;color:var(--muted);border-radius:8px 8px 0 0;border-bottom:3px solid transparent}nav button[aria-current]{color:var(--blue);border-bottom-color:var(--blue)}main{max-width:1188px;margin:auto;padding:12px 24px 40px}.connection{font-size:.78rem;color:var(--muted);min-height:24px;text-align:right}.connection.stale{color:var(--red)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 24px}.eyebrow{font-size:.8rem;color:var(--muted);margin:0 0 4px}h1{font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.2;letter-spacing:-.055em;margin:0;font-weight:680}h2{font-size:1.05rem;letter-spacing:-.02em;font-weight:650;margin:0 0 18px}p{margin:12px 0}.muted{color:var(--muted)}.small{font-size:.8rem}.badge{border:1px solid var(--line);padding:6px 12px;border-radius:20px;color:var(--muted);font-size:.75rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px;min-width:0}.home-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.3fr);gap:20px}.home-grid>.card{margin-bottom:0}.today-card{background:var(--soft);border-color:#c6d7f6;display:flex;flex-direction:column;align-items:flex-start}.section-label{text-transform:uppercase;font-size:.7rem;font-weight:650;letter-spacing:.12em;color:var(--muted)}.state{display:flex;align-items:center;gap:8px;font-size:.9rem;margin:22px 0 8px}.dot{width:8px;height:8px;border-radius:50%;background:#8190a4}.dot.inside{background:#25876b}.clock{font-size:3.3rem;letter-spacing:-.07em;line-height:1.2;font-variant-numeric:tabular-nums;font-weight:620}.today-card .primary{margin-top:12px;align-self:stretch}.today-card>a{font-size:.85rem;margin-top:4px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.card-heading h2{margin:0}.week-figures{display:flex;justify-content:space-between;margin:14px 0}.week-figures>div{display:flex;flex-direction:column}.week-figures>div:last-child{text-align:right}.week-figures strong{font-size:2rem;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.progress{height:9px;border-radius:5px;overflow:hidden;background:var(--soft)}.progress span{display:block;height:100%;background:var(--blue);width:0}.week-days{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}.workday{min-width:0}.workday .track{height:40px;background:var(--paper);border-radius:4px;position:relative;overflow:hidden}.workday .track span{position:absolute;bottom:0;left:0;right:0;background:#96b4f2}.workday.today .track span{background:var(--blue)}.workday strong,.workday small{display:block;font-size:.7rem;margin-top:4px;font-variant-numeric:tabular-nums}.workday small{color:var(--muted)}.forecast{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:8px 18px;border-top:1px solid var(--line);padding-top:12px}.forecast label{margin:0;font-weight:400;font-size:.85rem}.forecast p{grid-column:1/-1;font-size:.85rem;margin:0;color:var(--muted)}.totals-card{grid-column:1/-1}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.totals>div{display:flex;flex-direction:column;border-right:1px solid var(--line);padding-right:12px}.totals>div:last-child{border:0}.totals span{font-size:.85rem;color:var(--muted)}.totals strong{font-size:1.9rem;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.totals-card details{font-size:.8rem;border-top:1px solid var(--line);padding-top:12px}.totals-card summary{cursor:pointer;color:var(--blue);min-height:30px}.calendar-card{grid-column:1/-1}.upcoming-item{display:grid;grid-template-columns:70px 1fr;gap:18px;align-items:start;margin:14px 0}.upcoming-item time{font-size:.8rem;font-weight:650;color:var(--blue)}.upcoming-item p{margin:0;font-size:.85rem}.recent{margin-top:20px}.event-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:.85rem}.event-row:last-child{border-bottom:0}.event-row time{font-variant-numeric:tabular-nums}.event-tag{font-size:.75rem;background:var(--soft);padding:4px 10px;border-radius:6px;color:var(--blue)}.issues{background:var(--amber);border-color:#e8d09e}.issues p{font-size:.85rem}.notice{background:var(--amber);border:1px solid #e8d09e;border-radius:10px;padding:14px;font-size:.9rem;margin:12px 0}.filters{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.history-total{display:flex;align-items:baseline;gap:16px;margin:24px 0}.history-total strong{font-size:2.5rem;letter-spacing:-.06em}.month-chart{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.chart-row{display:grid;grid-template-columns:100px 1fr 90px;align-items:center;gap:10px;font-size:.8rem}.chart-row .bar{height:12px;background:var(--paper);border-radius:4px;overflow:hidden}.chart-row .bar span{display:block;height:100%;background:var(--blue)}.day-row{border-top:1px solid var(--line);padding:13px 0}.day-row summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;min-height:32px;font-size:.9rem}.day-row p{font-size:.8rem;color:var(--muted);margin:8px 0 0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:20px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays{text-align:center;font-size:.7rem;color:var(--muted);margin-bottom:8px}.calendar-grid button{min-height:67px;padding:8px 4px;font-size:.9rem;color:var(--ink);background:var(--paper);border:2px solid transparent;font-weight:500;display:flex;flex-direction:column;align-items:center;position:relative}.calendar-grid button small{font-size:.65rem;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}.calendar-grid button.has-context:after{content:'';width:4px;height:4px;border-radius:50%;background:#b38332;position:absolute;right:7px;top:7px}.calendar-grid button.has-work{background:var(--soft)}.calendar-grid button.selected{border-color:var(--blue)}.calendar-grid button.holiday{color:#a44435}.calendar-grid button.today{text-decoration:underline;text-underline-offset:4px}.calendar-grid button.empty{visibility:hidden}.calendar-layout aside p{font-size:.9rem}.context-label{display:block;border-left:3px solid var(--blue);padding:8px 12px;margin-bottom:12px;font-size:.85rem;background:var(--soft)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid .card{margin:0}dl{font-size:.85rem}dt{color:var(--muted);margin-top:14px}dd{margin:4px 0}.password-wrap{position:relative}.password-wrap input{padding-right:52px!important}.eye{position:absolute;right:2px;top:2px;width:44px;height:42px;min-height:42px;background:transparent;padding:11px;color:var(--muted)}.eye svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.auth{max-width:470px;margin:10vh auto;padding:30px}.auth .brand{margin-bottom:45px}.auth h1{font-size:2.6rem}.auth form{margin:25px 0}.auth .primary{width:100%}.error{color:var(--red);font-size:.9rem;min-height:1px}.loading{text-align:center;padding:20vh 20px;color:var(--muted)}footer{max-width:1188px;margin:auto;padding:0 24px 30px;font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:20px}
@media(min-width:1000px){.home-grid{grid-template-columns:.85fr 1.3fr .95fr}.totals-card{grid-column:1/3}.calendar-card{grid-column:3;grid-row:1/3}.totals strong{font-size:1.65rem}}
@media(max-width:680px){.topbar{height:70px;padding:0 16px}.brand span{display:none}.top-meta{gap:10px}.top-meta>span{font-size:.7rem}nav{padding:10px 12px 0;gap:0}nav button{padding:9px 13px;font-size:.85rem;flex:1}main{padding:8px 16px 30px}.connection{text-align:left;font-size:.7rem}.page-heading{margin:18px 0 22px;align-items:flex-start;flex-direction:column;gap:12px}.badge{display:none}.card{padding:20px;border-radius:13px}.home-grid,.settings-grid,.calendar-layout{grid-template-columns:1fr;gap:16px}.home-grid>.card{grid-column:auto;grid-row:auto}.clock{font-size:3.4rem}.today-card{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px 12px}.today-card .section-label,.today-card .state,.today-card #today-detail{grid-column:1}.today-card .state{margin:6px 0 0}.today-card .clock{grid-column:2;grid-row:1/4;justify-self:end;font-size:2.4rem}.today-card .primary,.today-card>.small,.today-card>a{grid-column:1/-1}.today-card p{margin:6px 0}.week-figures strong{font-size:1.8rem}.totals{gap:10px}.totals strong{font-size:1.35rem}.totals span{font-size:.75rem}.event-row{gap:12px;font-size:.78rem}.filters{grid-template-columns:1fr 1fr;gap:8px 12px}.filters>label:first-child{grid-column:1/-1}.calendar-grid,.calendar-weekdays{gap:3px}.calendar-grid button{min-height:58px;font-size:.8rem}.calendar-grid button small{font-size:.55rem}.calendar-layout>.card{padding:16px}.chart-row{grid-template-columns:80px 1fr 75px}.history-total{flex-direction:column;gap:0}.forecast{grid-template-columns:1fr 120px}.settings-grid>.card{margin:0}footer{flex-direction:column;padding:0 16px 24px;gap:6px}.auth{margin-top:5vh;padding:24px}.auth h1{font-size:2.2rem}}
@media(prefers-reduced-motion:no-preference){.progress span{transition:width .4s ease}button:not(:disabled):hover{filter:brightness(.96)}}
@media(max-width:420px){nav button{padding-inline:8px;font-size:.8rem;min-width:0}.today-card{display:block}.today-card .state{margin:12px 0}.today-card .clock{font-size:2.5rem;margin:8px 0}.today-card .primary{width:100%;margin:16px 0 8px}.today-card>a{display:inline-block;margin-top:12px}.today-card>.small{margin:8px 0}.top-meta{gap:8px}.top-meta>span{font-size:.65rem}.topbar .quiet{padding:9px 12px}.brand{font-size:1.3rem}.week-figures strong{font-size:1.6rem}}
