:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172131;background:#f2f5fa;font-synthesis:none;--blue:#087aff;--muted:#758093;--line:#e9edf3;--green:#138751;--red:#bc3544}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;min-height:46px;border:0;border-radius:15px;padding:12px 17px;background:#eef4ff;color:#075fd3;font-weight:600}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #76adff;outline-offset:3px}h1{font-size:34px;letter-spacing:-1px;margin:8px 0}h2{font-size:21px;margin:0 0 18px}h3{font-size:17px;margin:0 0 12px}p{line-height:1.5}.muted,.note{color:var(--muted)}.note{font-size:13px;line-height:1.5}.shell{max-width:550px;margin:auto;padding:calc(env(safe-area-inset-top) + 23px) 20px calc(100px + env(safe-area-inset-bottom))}header{margin:0 0 25px}.subtitle{margin:5px 0;color:var(--muted)}.card{background:white;border-radius:24px;padding:23px;margin:17px 0;box-shadow:0 3px 18px #23395203}.hero .big{font-size:clamp(40px,11vw,62px);font-weight:700;letter-spacing:-2px;line-height:1.25;margin:15px 0}.hero .label{font-size:18px;color:#5e6878}.positive{color:var(--green)}.negative{color:var(--red)}.primary{background:var(--blue);color:white}.wide{display:block;width:100%;margin:16px 0;min-height:56px;font-size:18px}.outline{border:1.5px solid var(--blue);background:transparent;color:#0767dd}.danger{color:var(--red);background:#fff0f2}.status{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;background:#edf3fd;color:#35659c;padding:8px 11px;border-radius:30px}.status.progress{background:#e9f6f0;color:#14784c}.status.attention{background:#fff0ed;color:#af4232}.status.pending{background:#fff4df;color:#805b13}.status.finished{background:#eaf6ee;color:#167c4c}.statusline{text-align:center;margin:19px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}.row strong{white-space:nowrap;font-variant-numeric:tabular-nums}.cardtop{display:flex;align-items:center;justify-content:space-between;gap:10px}.cardtop h2{margin:0}.cardtop+.row{margin-top:12px}.session{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.session small{display:block;color:var(--muted);margin-top:6px}.actions{display:flex;gap:6px;flex-shrink:0}.iconbtn{padding:8px;min-width:40px;background:transparent}.icon{width:22px;height:22px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}nav{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(16px);border-top:1px solid #e3e8f1;z-index:5;padding-bottom:env(safe-area-inset-bottom)}.navinner{max-width:550px;margin:auto;display:flex;justify-content:space-around}nav button{flex:1;background:transparent;border-radius:0;padding:12px 3px 9px;color:#7e8796;font-size:11px;min-height:67px}nav button.selected{color:var(--blue)}nav .icon{display:block;margin:0 auto 5px;width:25px;height:25px}.monthbar{display:flex;justify-content:space-between;align-items:center;gap:8px}.monthbar input{width:175px;min-height:46px}.weekdays,.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays{font-size:11px;color:var(--muted);text-align:center;margin:18px 0 10px}.day{background:transparent;color:#233047;border-radius:13px;min-height:58px;padding:6px 1px;font-size:15px;font-weight:500}.day small{display:block;font-size:8px;margin-top:3px;font-variant-numeric:tabular-nums}.day.selected{background:var(--blue);color:white}.day.weekend{color:#8a94a5}.day.selected.weekend{color:white}.day .mark{display:block;font-size:10px;height:11px}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;line-height:1.6;color:var(--muted);margin:14px 0}label{display:block;font-size:14px;margin:16px 0 7px;color:#4e5b6e}input,select{width:100%;min-height:49px;max-width:100%;border:1px solid #d5dde9;border-radius:12px;padding:10px 11px;background:#fff;color:#172131;font-size:16px}input[type=checkbox]{width:24px;min-height:24px}.switchrow{display:flex;align-items:center;gap:15px}.switchrow label{flex:1;margin:0}.switchrow input{accent-color:var(--blue)}.notice{padding:16px;border-radius:16px;background:#fff3dd;color:#795511;margin:17px 0;font-size:14px;line-height:1.5}.notice button{margin-top:9px;background:#fff9ed}.toast{font-size:12px;color:var(--muted);text-align:center;margin:20px 0}.back{padding-left:0;background:transparent}dialog{border:0;border-radius:26px;padding:26px;max-width:500px;width:calc(100% - 24px);max-height:90dvh;color:#172131;box-shadow:0 20px 80px #15264433}dialog::backdrop{background:#111b2b70}dialog h2{margin:0 0 12px}dialog .buttons{display:flex;gap:10px;margin-top:22px}dialog .buttons button{flex:1}.sheetform{overflow:auto}a{color:#0869db}details summary{cursor:pointer;padding:12px 0;color:#0869db}.smalltitle{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted)}@media(min-width:700px){body{background:#e9eef6}.shell{margin:30px auto;min-height:90vh;background:#f2f5fa;border-radius:32px;padding-top:30px}nav{max-width:550px;left:50%;transform:translateX(-50%);border-radius:22px 22px 0 0}.hero .big{font-size:62px}}@media(prefers-reduced-motion:no-preference){button{transition:background .12s}}@media(max-width:370px){.shell{padding-left:12px;padding-right:12px}.card{padding:17px}.actions{gap:0}.session{font-size:14px}}
/* 0.2.0: reference-inspired compact iPhone layout. */
:root{--green:#07864f;--red:#ed3c43;background:#f5f6fa;color:#111b2b}
.shell{max-width:550px;padding:calc(env(safe-area-inset-top) + 19px) 16px calc(91px + env(safe-area-inset-bottom));background:#f5f6fa}
header{margin-bottom:19px}h1{font-size:25px;letter-spacing:-.6px}h2{font-size:18px;margin-bottom:15px}h3{font-size:17px}.subtitle{font-size:15px;color:#283343;line-height:1.5}.card{border-radius:20px;padding:19px;margin:14px 0;box-shadow:0 3px 18px #1d354105}
.home-header .title-row{display:flex;justify-content:space-between;align-items:center}.home-header h1{margin:0}.home-header .subtitle{margin-top:7px}.home-header .iconbtn{color:#162333}
.hero .big{font-size:clamp(39px,11vw,56px);text-align:center;letter-spacing:-1.7px;margin:15px 0 6px}.hero h2{font-size:17px;margin:0}.hero .mini-info{font-size:20px;color:#85909d}.balance-note{text-align:center;margin:0 0 18px;font-size:11px}.month-metrics .smalltitle{font-size:10px;letter-spacing:.4px;margin-bottom:9px}
.metric-pair{display:flex;justify-content:space-between;gap:12px}.metric-pair>div:last-child{text-align:right}.metric-pair span,.day-metrics>div>span{display:block;color:#6a7584;font-size:12px;margin-bottom:6px}.metric-pair strong{font-size:15px;font-variant-numeric:tabular-nums}.time-progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:9px;margin:12px 0;border:0;border-radius:20px;overflow:hidden;background:#e4e7ec}.time-progress::-webkit-progress-bar{background:#e4e7ec;border-radius:20px}.time-progress::-webkit-progress-value{background:#438ef5;border-radius:20px}.time-progress::-moz-progress-bar{background:#438ef5;border-radius:20px}.time-progress.monthly::-webkit-progress-value{background:#29a371}.time-progress.monthly::-moz-progress-bar{background:#29a371}.no-target{margin:10px 0}
.today-card .cardtop{align-items:baseline}.today-balance{font-size:23px;letter-spacing:-.6px;white-space:nowrap}.today-target{margin:3px 0 18px}.completed-label{font-size:13px;color:#687483}.worked-total{font-size:27px;font-weight:700;letter-spacing:-.8px;margin-top:4px}.today-footer{margin-top:13px}.today-card .note{font-size:11px}.clock-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.clock-controls button{min-height:55px;padding:12px 7px;font-size:14px;border-radius:15px}.clock-controls .icon{width:19px;height:19px;margin-right:4px}.clock-in{background:#07864f;color:white}.clock-out-muted{background:#eaf0f8;color:#536174}.clock-out-muted:disabled{opacity:1}.clock-out{background:#f5363e;color:white}.working-panel{background:#e5f5ea;text-align:center}.working-label{color:#087c43;font-size:14px;font-weight:600}.live-timer{font-size:41px;letter-spacing:-1px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums}.working-panel .muted{font-size:13px}.working-panel .wide{margin-bottom:0;font-size:18px}.working-panel .icon{margin-right:7px}
.home-sessions h2{font-size:15px;margin-bottom:7px}.session{gap:8px}.session-dot{width:9px;height:9px;background:#a1a9b4;border-radius:50%;flex-shrink:0}.session-dot.running{background:#12a85a}.session-text{flex:1;min-width:0}.session strong{font-size:13px;font-weight:500}.session small{font-size:11px}.session .actions{gap:0}.session .iconbtn{min-width:36px;padding:5px}.session .actions .icon{width:19px;height:19px}.session .danger{background:transparent;color:#f03b43}.add-session{min-height:44px;background:#edf3fc;font-size:14px;margin:13px 0 0;color:#006be7}.wide.outline{font-size:16px;min-height:48px;border-color:#d2dce9;background:#fff;color:#2864a1}
.grid{gap:5px}.day{border-radius:17px;background:#f7f8fa;min-height:61px}.day.day-met{background:#eaf6ed}.day.day-under{background:#fff0ef}.day.day-off{background:#f0f2f6}.day.selected{background:#087aff;color:white}.day small{font-size:8px}.day.day-under .mark{color:#d63641}.day.day-met .mark{color:#07864f}.day.selected .mark{color:white}.day-metrics{display:flex;gap:12px;align-items:stretch;margin-top:18px}.day-metrics .metric-pair{flex:2}.day-metrics>div:last-child{flex:1;text-align:right}.day-metrics strong{font-size:17px;white-space:nowrap}.day-metrics .metric-pair>div:last-child{text-align:center}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat-grid .card{margin:0;padding:14px 10px;border-radius:16px}.stat-grid span{display:block;color:#6a7584;font-size:11px;min-height:28px}.stat-grid strong{font-size:18px;letter-spacing:-.4px;display:block;overflow-wrap:anywhere}.monthly-hero .big{margin-bottom:18px}.breakdown-row{width:100%;display:flex;align-items:center;gap:8px;border-radius:0;padding:13px 0;background:transparent;border-bottom:1px solid #edf0f4;font-size:12px;color:#263446;font-weight:400;text-align:left;min-height:47px}.breakdown-row:last-child{border:0}.breakdown-date{flex:1.15}.breakdown-work{flex:1;font-variant-numeric:tabular-nums}.breakdown-balance{flex:1;text-align:right;font-size:11px}.daily-breakdown h2{margin-bottom:8px}nav button{font-size:10px}nav .selected{font-weight:700}nav .selected .icon{stroke-width:2.3}
@media(min-width:700px){.shell{padding-top:25px;background:#f5f6fa}.hero .big{font-size:56px}}
@media(max-width:370px){.shell{padding-left:12px;padding-right:12px}.card{padding:15px}.clock-controls button{font-size:12px}.session strong{font-size:12px}.session .iconbtn{min-width:32px}.today-balance{font-size:20px}.day-metrics{gap:7px}.day-metrics strong{font-size:14px}}

.session .iconbtn{min-width:44px;min-height:46px}
@media(max-width:370px){.session .iconbtn{min-width:44px}}
