html,body,#root{min-height:100%;margin:0}button,a{font:inherit}:root{font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{background:#0e1116;margin:0}.app{grid-template-rows:auto 1fr;gap:.4rem;height:100dvh;min-height:100dvh;padding:clamp(.4rem,.8vw,.75rem);transition:background 1s,color 1s;display:grid;overflow:hidden}.theme-dark{color:#eef3fb;background:#0e1116}.theme-light{color:#131722;background:#faf7f2}.hero-strip{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.date-weather{align-items:center;gap:.75rem;display:flex}.date-weather h1{margin:0;font-size:1.15rem;font-weight:600}.weather{opacity:.8;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.refresh-btn{min-height:48px;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#ffffff1f;border:none;border-radius:14px;align-items:center;gap:.35rem;padding:0 .85rem;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s;display:flex}.refresh-btn:hover{background:#fff3}.refresh-btn:active{transform:scale(.95)}.refresh-btn.stale{color:#ffaf50}.refresh-btn:disabled{cursor:default;opacity:.85}.refresh-btn.refreshing svg{animation:.9s linear infinite refresh-spin}@keyframes refresh-spin{to{transform:rotate(360deg)}}.theme-light .refresh-btn{background:#1317220f}.theme-light .refresh-btn:hover{background:#1317221f}.view-switch{background:#ffffff14;border:1px solid #ffffff1f;border-radius:14px;align-items:center;gap:.25rem;padding:.2rem;display:flex}.view-switch button{color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:none;border-radius:11px;min-height:44px;padding:.4rem .9rem;font-size:.95rem;font-weight:600;transition:background .15s,color .15s}.view-switch button.active{color:#fff;background:#4f9dff;box-shadow:0 2px 8px #4f9dff59}.nav-controls{gap:.4rem;margin-left:auto;display:flex}.nav-btn{min-width:48px;min-height:48px;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#ffffff1f;border:none;border-radius:14px;justify-content:center;align-items:center;padding:0;transition:background .15s,transform .1s;display:flex}.nav-btn:hover{background:#fff3}.nav-btn:active{background:#ffffff47;transform:scale(.93)}.nav-btn.today-btn{padding:0 1rem;font-size:1rem;font-weight:600}.theme-light .view-switch,.theme-light .nav-btn{background:#1317220f;border-color:#1317221f}.timer-btn{min-height:48px;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#ffffff1f;border:none;border-radius:14px;align-items:center;gap:.35rem;padding:0 .85rem;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s;display:flex}.timer-btn:hover{background:#fff3}.timer-btn:active{transform:scale(.95)}.timer-btn.running{color:#cfe4ff;background:#4f9dff40}.timer-btn.warning{color:#ffd9a3;background:#ffaf504d;animation:1s ease-in-out infinite timer-pulse}.timer-label{font-variant-numeric:tabular-nums}.theme-light .timer-btn{background:#1317220f}.theme-light .timer-btn:hover{background:#1317221f}.theme-light .timer-btn.running{color:#1c4f8f;background:#4f9dff33}.theme-light .timer-btn.warning{color:#8a4b00;background:#ffaf5059}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.timer-card h2{margin:.25rem 0 .75rem}.timer-running-note{font-variant-numeric:tabular-nums;color:#6fb1ff;margin:0 0 .75rem}.timer-presets{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.timer-preset{color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#ffffff0f;border:1px solid #ffffff24;border-radius:12px;min-height:52px;font-size:1rem;font-weight:600;transition:background .15s,transform .1s}.timer-preset:hover{background:#4f9dff40}.timer-preset:active{transform:scale(.95)}.timer-custom{gap:.5rem;margin-bottom:1rem;display:grid}.timer-custom-header{justify-content:space-between;align-items:baseline;display:flex}.timer-custom-label{opacity:.85;font-size:.9rem}.timer-custom-value{font-variant-numeric:tabular-nums;color:#6fb1ff;font-size:1.35rem;font-weight:700}.timer-stepper{align-items:center;gap:.75rem;display:flex}.timer-step-btn{width:56px;height:56px;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#ffffff14;border:1px solid #ffffff29;border-radius:14px;flex:none;font-size:1.6rem;font-weight:700;line-height:1;transition:background .15s,transform .1s}.timer-step-btn:hover{background:#4f9dff40}.timer-step-btn:active{transform:scale(.92)}.timer-slider{appearance:none;cursor:pointer;touch-action:manipulation;background:0 0;flex:1;min-width:0;height:44px;margin:0}.timer-slider::-webkit-slider-runnable-track{background:#ffffff29;border-radius:999px;height:10px}.timer-slider::-moz-range-track{background:#ffffff29;border-radius:999px;height:10px}.timer-slider::-webkit-slider-thumb{appearance:none;background:#4f9dff;border:3px solid #fff;border-radius:50%;width:34px;height:34px;margin-top:-12px;box-shadow:0 2px 8px #0006}.timer-slider::-moz-range-thumb{background:#4f9dff;border:3px solid #fff;border-radius:50%;width:34px;height:34px;box-shadow:0 2px 8px #0006}.timer-slider:focus-visible{outline-offset:4px;border-radius:999px;outline:2px solid #4f9dff}.timer-slider-scale{opacity:.6;justify-content:space-between;padding:0 .25rem;font-size:.72rem;display:flex}.theme-light .timer-step-btn{background:#1317220f;border-color:#13172224}.theme-light .timer-slider::-webkit-slider-runnable-track{background:#13172229}.theme-light .timer-slider::-moz-range-track{background:#13172229}.timer-actions{justify-content:flex-end;gap:.5rem;display:flex}.timer-actions button{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;border-radius:12px;min-height:48px;padding:0 1.25rem;font-size:1rem;font-weight:600;transition:background .15s,transform .1s}.timer-actions button:active{transform:scale(.96)}.timer-ok{color:#fff;background:#4f9dff}.timer-ok:disabled{opacity:.45;cursor:default}.timer-cancel{color:inherit;background:#ffffff1a}.timer-cancel:hover{background:#ffffff2e}.timer-warning-popup{color:#2a1600;z-index:45;background:#ffaf50f2;border-radius:16px;align-items:center;gap:.75rem;padding:.75rem 1.25rem;font-weight:700;animation:1s step-end infinite timer-blink;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.timer-warning-label{font-size:.95rem}.timer-warning-count{font-variant-numeric:tabular-nums;font-size:1.6rem}@keyframes timer-blink{0%,to{opacity:1}50%{opacity:.25}}.timer-finished-card{text-align:center;width:min(420px,100vw - 2rem)}.timer-finished-icon{font-size:3.5rem;animation:.8s ease-in-out infinite timer-pulse}.timer-finished-card h2{margin:.5rem 0 .25rem}.timer-finished-card p{opacity:.85;margin:0 0 1rem}.timer-finished-card .timer-ok{width:100%}.theme-light .view-switch button.active{color:#fff;background:#4f9dff}.theme-light .nav-btn:hover{background:#1317221f}.theme-light .nav-btn:active{background:#1317222e}.board{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr;justify-items:center;gap:.5rem;min-height:0;display:grid;overflow:hidden}.calendar-frame{border:1px solid #ffffff24;border-radius:12px;width:100%;min-width:0;max-width:1400px;height:100%;min-height:0;padding:.4rem;overflow:hidden}.fc{--fc-border-color:#ffffff1f;--fc-page-bg-color:transparent;--fc-neutral-bg-color:#ffffff0a;--fc-today-bg-color:#4f9dff1f;--fc-now-indicator-color:#ffaf50;height:100%}.fc .fc-toolbar-title,.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-number,.fc .fc-list-day-text,.fc .fc-list-day-side-text{color:inherit}.fc .fc-event{border-width:0 0 0 3px;border-radius:5px;padding:1px 3px}.event-chip{flex-direction:column;line-height:1.15;display:flex;overflow:hidden}.event-chip-title{white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.event-chip-time{opacity:.75;margin-top:1px;font-size:.72em}.theme-light .fc{--fc-border-color:#13172224;--fc-neutral-bg-color:#1317220a}.overlay{z-index:20;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.card{color:#f1f4f9;background:#151a23;border-radius:16px;width:min(700px,100vw - 2rem);max-height:calc(100vh - 2rem);padding:1rem;position:relative;overflow:auto}.close{color:inherit;background:0 0;border:none;position:absolute;top:.5rem;right:.5rem}pre{white-space:pre-wrap;background:#ffffff0f;border-radius:8px;padding:.5rem;font-family:inherit}.attachments{flex-wrap:wrap;gap:.5rem;display:flex}.attachments img{object-fit:cover;border-radius:8px;width:80px;height:80px}.viewer{z-index:30;background:#000000e6;border:none;position:fixed;inset:0}.viewer img{object-fit:contain;width:100%;height:100%}.toasts{z-index:40;gap:.5rem;display:grid;position:fixed;top:1rem;right:1rem}.toast{color:inherit;text-align:left;background:#ffffff0f;border:1px solid #ffffff1f;border-left:4px solid;border-radius:12px;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.card button,.card a{color:inherit;text-align:left;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;padding:.5rem .75rem}.dot{border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.day-header-content{justify-content:center;align-items:center;gap:.4rem;padding:.25rem 0;display:flex}.day-cell-content{justify-content:space-between;align-items:center;gap:.25rem;width:100%;display:flex}.day-weather-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.15rem .3rem;font-size:1.15rem;line-height:1;transition:background .15s,transform .1s}.day-weather-btn:hover{background:#ffffff26;transform:scale(1.15)}.theme-light .day-weather-btn:hover{background:#1317221a}.fc .fc-time-grid .day-weather-btn,.fc .fc-time-grid .day-cell-content .day-weather-btn{display:none}.day-weather-btn-small{padding:.1rem .2rem;font-size:.9rem}.forecast-card h2{align-items:center;gap:.5rem;margin:.25rem 0;display:flex}.forecast-big-icon{font-size:2rem}.forecast-condition{opacity:.85;margin:.25rem 0 .75rem;font-size:1.05rem}.forecast-summary{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.summary-item{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;gap:.15rem;padding:.5rem .75rem;display:grid}.summary-label{opacity:.7;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.summary-value{font-size:1.15rem;font-weight:600}.hourly-strip{grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:.35rem;display:grid}.hour-col{background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;justify-items:center;gap:.3rem;min-width:0;padding:.5rem .25rem;display:grid}.hour-time{opacity:.7;font-size:.75rem}.hour-icon{font-size:1.35rem}.hour-temp{font-size:1.05rem;font-weight:600}.hour-precip{color:#6fb1ff;justify-items:center;min-height:2em;font-size:.72rem;display:grid}.night{filter:brightness(.3);align-content:center;justify-items:center;gap:1rem;display:grid}.clock{font-size:clamp(3rem,8vw,6rem);font-weight:700}@media (width<=900px){.app{height:100dvh;min-height:100dvh;overflow:hidden}.hero-strip{flex-wrap:wrap;gap:.4rem}.date-weather h1{font-size:1rem}.board{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr;overflow:hidden}.calendar-frame{min-height:0}}
