:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background:var(--tg-theme-bg-color, #f3f5f6);color:var(--tg-theme-text-color, #182522);--accent: var(--tg-theme-button-color, #168b68);--muted: var(--tg-theme-hint-color, #7d8985);--surface: var(--tg-theme-secondary-bg-color, #fff);--line: color-mix(in srgb, var(--tg-theme-hint-color, #71817b) 18%, transparent);--soft-accent: color-mix(in srgb, var(--accent) 10%, var(--surface))}*{box-sizing:border-box}body{margin:0;padding:0 18px 32px;min-width:300px;min-height:100vh;background:var(--tg-theme-bg-color, #f3f5f6)}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}#app{max-width:520px;margin:0 auto}.topbar{height:62px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.brand-mark{width:29px;height:29px;display:grid;place-items:center;color:var(--accent);background:var(--soft-accent);border-radius:9px}.brand-mark svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.brand-name{font-size:11px;font-weight:800;letter-spacing:.12em}.topbar-dot{width:6px;height:6px;margin-left:auto;border-radius:50%;background:var(--accent);opacity:.65}.app-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;margin-top:14px;border-radius:12px;background:color-mix(in srgb,var(--tg-theme-hint-color, #71817b) 10%,transparent)}.tab-button{min-height:40px;border:0;border-radius:9px;color:var(--muted);background:transparent;font-size:13px;font-weight:650;cursor:pointer}.tab-button.active{color:var(--tg-theme-button-text-color, #fff);background:var(--accent)}.tab-button{padding:0 3px;font-size:12px}.settings-card{padding-bottom:16px}.settings-card h2{margin:0;font-size:17px}.settings-help{margin:6px 0 12px;color:var(--muted);font-size:12px;line-height:1.45}.tab-order{padding:0;margin:0;list-style:none}.tab-order-row{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line)}.tab-order-name{font-size:14px;font-weight:600}.order-controls{display:flex;gap:7px}.order-button{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;color:var(--accent);background:var(--soft-accent);font-size:20px;cursor:pointer}.order-button:disabled{opacity:.35;cursor:default}.order-button:focus-visible,.startup-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.startup-label{display:block;margin:19px 0 7px;font-size:13px;font-weight:650}.startup-select{width:100%;min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:11px;color:var(--tg-theme-text-color, #182522);background:var(--tg-theme-bg-color, #f3f5f6);font:inherit}.settings-save-note{margin-bottom:0}.sudoku-card{padding:14px 12px 16px}.sudoku-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;font-weight:650}.sudoku-toolbar .startup-select{min-height:44px;padding:0 8px;font-size:12px}.sudoku-toolbar .retry-button{min-height:44px;margin:0;padding:0 10px;font-size:12px;white-space:nowrap}.sudoku-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));aspect-ratio:1;border:2px solid var(--tg-theme-text-color, #182522);border-radius:4px;overflow:hidden}.sudoku-cell{min-width:0;padding:0;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--accent);background:var(--surface);font-size:clamp(15px,5vw,23px);font-weight:550;cursor:pointer}.sudoku-cell:nth-child(9n){border-right:0}.sudoku-cell.block-right{border-right:2px solid var(--tg-theme-text-color, #182522)}.sudoku-cell:nth-child(n+73){border-bottom:0}.sudoku-cell.block-bottom{border-bottom:2px solid var(--tg-theme-text-color, #182522)}.sudoku-cell.given{color:var(--tg-theme-text-color, #182522);font-weight:750}.sudoku-cell.related{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.sudoku-cell.same-number{background:color-mix(in srgb,var(--accent) 20%,var(--surface))}.sudoku-cell.selected{color:var(--tg-theme-button-text-color, #fff);background:var(--accent)}.sudoku-cell.mistake{color:var(--tg-theme-destructive-text-color, #d14b4b)}.sudoku-cell:focus-visible,.sudoku-digit:focus-visible,.sudoku-erase:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent);outline-offset:-2px}.sudoku-status{min-height:35px;display:grid;place-items:center;color:var(--muted);font-size:12px}.sudoku-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sudoku-digit{min-width:0;min-height:44px;padding:0;border:1px solid var(--line);border-radius:9px;color:var(--accent);background:var(--soft-accent);font-size:17px;font-weight:700;cursor:pointer}.sudoku-erase{width:100%;min-height:44px;margin-top:7px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:transparent;font-size:12px;cursor:pointer}.sudoku-hint{margin:11px 0 0;color:var(--muted);font-size:11px;text-align:center}[hidden]{display:none!important}.calendar-card{padding:14px 12px 16px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 8px 26px color-mix(in srgb,var(--tg-theme-text-color, #182522) 5%,transparent)}.month-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.month-heading h2{margin:0;font-size:16px;font-weight:700;text-transform:capitalize}.month-arrow{width:38px;height:38px;border:0;border-radius:10px;color:var(--accent);background:var(--soft-accent);font-size:26px;line-height:1;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekday-row{margin-bottom:5px;color:var(--muted);text-align:center;font-size:11px;font-weight:650}.weekday-row span{padding:6px 0}.day-button{position:relative;min-width:0;height:42px;border:0;border-radius:11px;color:var(--tg-theme-text-color, #182522);background:transparent;font-size:13px;cursor:pointer}.day-button.today{box-shadow:inset 0 0 0 1px var(--accent)}.day-button.selected{color:var(--tg-theme-button-text-color, #fff);background:var(--accent);box-shadow:none}.day-button.has-plans:after{position:absolute;bottom:4px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--accent);content:"";transform:translate(-50%)}.day-button.selected.has-plans:after{background:currentColor}.day-button:focus-visible,.month-arrow:focus-visible,.tab-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plans-card{margin-top:14px}.weather-card{padding:19px 17px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 8px 26px color-mix(in srgb,var(--tg-theme-text-color, #182522) 5%,transparent)}.weather-message{min-height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;color:var(--muted);text-align:center;font-size:13px}.weather-message strong{color:var(--tg-theme-text-color, #182522);font-size:15px}.weather-spinner{width:27px;height:27px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.weather-error-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--tg-theme-destructive-text-color, #d14b4b);background:color-mix(in srgb,var(--tg-theme-destructive-text-color, #d14b4b) 10%,transparent);font-weight:800}.retry-button{min-height:42px;margin-top:5px;padding:0 17px;border:0;border-radius:10px;color:var(--tg-theme-button-text-color, #fff);background:var(--accent);font-size:13px;font-weight:650;cursor:pointer}.retry-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.current-weather{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:125px}.weather-caption{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em}.current-weather h2{margin:0;font-size:20px}.weather-details{max-width:220px;margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.current-temperature{display:flex;align-items:center;gap:4px;white-space:nowrap}.current-temperature span{font-size:31px}.current-temperature strong{font-size:clamp(39px,12vw,52px);font-weight:650;letter-spacing:-.06em}.weather-updated{margin:0;color:var(--muted);font-size:11px}.forecast-heading{margin:24px 0 8px;font-size:15px}.forecast-list{padding:0;margin:0;list-style:none}.forecast-row{min-height:53px;display:grid;grid-template-columns:minmax(54px,.8fr) minmax(0,1.5fr) 42px auto;align-items:center;gap:5px;border-top:1px solid var(--line);font-size:11px}.forecast-date{color:var(--tg-theme-text-color, #182522);text-transform:capitalize}.forecast-condition{min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.forecast-rain{color:var(--muted);white-space:nowrap}.forecast-temps{display:flex;gap:5px;justify-content:flex-end;white-space:nowrap;font-size:12px}.forecast-temps span{color:var(--muted)}.weather-source{margin:14px 0 0;color:var(--muted);font-size:10px;text-align:right}main{padding-top:28px}.intro{margin-bottom:23px}.eyebrow{color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.14em}h1{margin:7px 0 2px;font-size:clamp(34px,10vw,43px);line-height:1.08;letter-spacing:-.055em;font-weight:760}.title-period{color:var(--accent)}.intro p{margin:7px 0 0;color:var(--muted);font-size:14px}.list-card{overflow:hidden;padding:19px 17px 0;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:0 8px 26px color-mix(in srgb,var(--tg-theme-text-color, #182522) 5%,transparent)}.list-heading-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.list-heading-row h2{margin:0;font-size:17px;letter-spacing:-.025em}.list-summary{margin:4px 0 0;color:var(--muted);font-size:12px}.list-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;color:var(--accent);background:var(--soft-accent)}.list-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.add-form{display:flex;gap:8px;margin-bottom:8px}.add-form input{min-width:0;height:47px;flex:1;padding:0 14px;color:var(--tg-theme-text-color, #182522);background:var(--tg-theme-bg-color, #f3f5f6);border:1px solid var(--line);border-radius:11px;outline:none;font-size:14px;transition:border-color .15s,box-shadow .15s}.add-form input::placeholder{color:var(--muted);opacity:.85}.add-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.add-button{display:grid;place-items:center;width:47px;height:47px;flex:0 0 47px;padding:0;border:0;border-radius:11px;background:var(--accent);color:var(--tg-theme-button-text-color, #fff);cursor:pointer;transition:transform .12s,opacity .12s}.add-button:active{transform:scale(.95)}.add-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.item-list{padding:0;margin:0;list-style:none}.item-row{min-height:57px;display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);animation:appear .18s ease-out}.item-label{min-width:0;flex:1;min-height:56px;display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.item-label input{position:absolute;width:1px;height:1px;opacity:0}.checkmark{position:relative;display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border:1.6px solid color-mix(in srgb,var(--muted) 48%,transparent);border-radius:7px;transition:background .15s,border-color .15s,transform .15s}.checkmark:after{content:"";width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px) scale(0);transition:transform .13s ease-out}.item-label input:focus-visible+.checkmark{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px}.item-label input:checked+.checkmark{border-color:var(--accent);background:var(--accent)}.item-label input:checked+.checkmark:after{transform:rotate(45deg) translate(-1px,-1px) scale(1)}.item-name{overflow:hidden;font-size:14px;line-height:1.35;text-overflow:ellipsis;overflow-wrap:anywhere;transition:color .15s}.is-checked .item-name{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.remove-button{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;padding:0;border:0;border-radius:9px;color:var(--muted);background:transparent;opacity:.65;cursor:pointer}.remove-button:hover,.remove-button:focus-visible{color:var(--tg-theme-destructive-text-color, #d14b4b);background:color-mix(in srgb,var(--tg-theme-destructive-text-color, #d14b4b) 9%,transparent);opacity:1;outline:none}.remove-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.empty-state{min-height:142px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;color:var(--muted);font-size:12px}.empty-state[hidden],.all-done[hidden],.clear-button[hidden]{display:none}.empty-icon{margin-bottom:2px;color:var(--accent);font-size:24px;line-height:1}.empty-state strong{color:var(--tg-theme-text-color, #182522);font-size:14px;font-weight:650}.all-done{display:flex;justify-content:center;align-items:center;gap:7px;padding:18px 0;color:var(--accent);font-size:13px;font-weight:650}.all-done span{font-size:17px}.list-footer{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.clear-button{padding:7px 0 7px 8px;border:0;color:var(--accent);background:transparent;font-size:11px;font-weight:650;cursor:pointer}.clear-button:focus-visible{border-radius:4px;outline:2px solid var(--accent);outline-offset:2px}.save-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:15px 0 0;color:var(--muted);font-size:11px}.storage-error{margin:12px 0 0;color:var(--tg-theme-destructive-text-color, #b42318);font-size:13px}.save-note svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@keyframes appear{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:600px){body{padding:0 24px 40px}main{padding-top:42px}.list-card{padding-right:22px;padding-left:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:370px){.app-tabs{gap:2px}.tab-button{font-size:11px}.weather-card{padding-right:13px;padding-left:13px}.forecast-row{grid-template-columns:minmax(48px,.8fr) minmax(0,1.3fr) 37px auto;gap:3px;font-size:10px}.forecast-condition{font-size:10px}}
