:root{color-scheme:dark;--bg:#121821;--panel:#19212c;--line:#2b3747;--muted:#aebbd0;--accent:#62a4ff;--scale:1;--safe:2vw;font-family:Arial,Helvetica,sans-serif;font-size:calc(16px * var(--scale))}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top left,#1d2633 0,#121821 65%);color:#f1f4fa}button,input,select{font:inherit}button{border:1px solid var(--line);background:#202936;color:inherit;border-radius:9px;padding:.65rem 1rem;cursor:pointer;min-height:44px}button:hover{background:#2a3749}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button[aria-pressed=true],.primary{background:#215ba1;border-color:#61a6ff}button:disabled{opacity:.5;cursor:wait}a{color:#a9cdff}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.6rem,2.8vw,3.4rem);letter-spacing:-.04em}h2{font-size:1.25rem}h3{font-size:1.1rem;margin-bottom:.8rem}.eyebrow{font-size:.75rem;letter-spacing:.18em;color:var(--muted);font-weight:700}#app{padding:var(--safe);height:100vh;display:flex;flex-direction:column;gap:1rem}header{display:flex;align-items:center;justify-content:space-between;gap:1.2rem}.brand{min-width:25%}.brand .eyebrow{margin-bottom:.35rem}#period{margin-top:.35rem;color:#c7d3e5;font-size:1.15rem}nav{display:flex;gap:3px;background:#1d2531;border:1px solid var(--line);padding:4px;border-radius:12px}nav button{border-color:transparent;background:transparent;padding:.9rem 1.4rem}.tools{display:flex;gap:.6rem;font-size:1.45rem}.navigation{display:flex;gap:1rem;align-items:center;min-height:44px}.navigation>div:first-child{display:flex;gap:.4rem}.navigation button{padding:.45rem .85rem}#calendar-legend{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}#message{margin-left:auto;font-size:.85rem;color:#f2c87a}main{display:flex;gap:1.1rem;flex:1;min-height:0}#calendar{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;overflow:auto;background:#141d28}aside{width:22%;min-width:240px;max-width:390px;border:1px solid var(--line);border-radius:12px;background:#161e29;padding:1.3rem;display:flex;flex-direction:column;gap:1.2rem;overflow:auto}.clock-card #clock{font-size:clamp(3rem,5.5vw,7rem);font-weight:700;letter-spacing:-.06em;line-height:1.1;margin:.4rem 0}.clock-card #date{font-size:1.05rem;line-height:1.4;color:#c6d1e2}.current-card{border-left:4px solid #42aeff;border-radius:7px;padding:1rem;background:#202c3a;line-height:1.5}.current-card h2{margin-bottom:.4rem}.current-card .small{color:var(--muted);font-size:.9rem}.weather{border-top:1px solid var(--line);padding-top:1rem}.weather-heading{display:flex;flex-wrap:wrap;gap:.3rem;align-items:baseline;justify-content:space-between}.weather-heading span{font-size:.8rem;color:var(--muted)}.weather-now{display:flex;align-items:center;justify-content:space-between;margin:.5rem 0}.temperature{font-size:3.2rem;font-weight:700}.weather-icon{font-size:2.7rem}.weather-summary{font-size:.9rem;color:#ced8e8}.weather-range{font-size:.8rem;color:var(--muted);margin:.4rem 0 .8rem}.hourly{display:flex;gap:.3rem;overflow-x:auto;padding:.5rem .1rem;scrollbar-width:thin}.hourly button{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:54px;padding:.5rem .2rem;border:0;background:transparent;font-size:.85rem}.hourly .icon{font-size:1.6rem}.rain{color:#80c5ff;font-size:.7rem}.attribution{font-size:.65rem;margin-top:.7rem;color:var(--muted)}.attribution a{color:var(--muted)}footer{margin-top:auto;color:var(--muted);font-size:.8rem;line-height:1.5}.sync-dot{display:inline-block;background:#28da8b;border-radius:50%;width:9px;height:9px;margin-right:7px}.sync-dot.stale{background:#efb44e}.week{height:100%;display:flex;flex-direction:column;min-height:560px;position:relative}.day-head{display:grid;margin-left:56px;grid-template-columns:repeat(var(--days),minmax(0,1fr));min-height:54px;position:sticky;top:0;z-index:4;background:#18222e;border-bottom:1px solid var(--line)}.day-head button{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;font-size:.85rem;padding:.5rem .1rem}.day-head button.current{color:#9ac5ff;background:#203a5c}.timeline{display:flex;flex:1;min-height:0;position:relative}.time-axis{width:56px;flex-shrink:0;position:relative}.time-label{position:absolute;left:4px;color:var(--muted);font-size:.7rem;transform:translateY(-50%)}.days{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));flex:1;position:relative}.day-column{border-right:1px solid var(--line);position:relative;min-width:0}.hour-line{position:absolute;left:0;right:0;border-top:1px solid #273344;pointer-events:none}.event{position:absolute;border:1px solid #ffffff24;border-radius:5px;padding:.35rem .4rem;overflow:hidden;text-align:left;font-size:.78rem;line-height:1.25;min-height:0;box-shadow:0 2px 5px #0002}.event strong{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis}.event .event-time{display:block;margin-top:.25rem;font-size:.72rem;color:#edf3ffd9}.now-line{position:absolute;height:2px;background:#fc6388;z-index:3;left:0;right:0;pointer-events:none}.now-line:before{content:'';width:8px;height:8px;position:absolute;left:-4px;top:-3px;background:#fc6388;border-radius:50%}.all-day{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));margin-left:56px;max-height:90px;overflow:auto;border-bottom:1px solid var(--line)}.all-day>div{border-right:1px solid var(--line);padding:2px}.all-day button{display:block;width:100%;min-height:24px;padding:.25rem .3rem;margin:2px 0;font-size:.7rem;text-align:left}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:100%;min-height:420px;grid-template-rows:36px repeat(var(--rows),minmax(80px,1fr))}.month-name{text-align:center;padding:.6rem;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line)}.month-cell{background:transparent;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:.5rem;text-align:left;display:flex;flex-direction:column;gap:.35rem;min-width:0;overflow:hidden}.month-cell.outside{opacity:.4}.month-cell.current .number{background:#326abb;border-radius:50%;padding:.25rem}.month-event{font-size:.7rem;padding:.25rem;border-left:3px solid;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#ffffff08;width:100%}.number{font-size:.95rem;align-self:flex-start}.empty{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;flex-direction:column;gap:1rem;color:var(--muted)}.empty h2{color:#fff}.empty p{max-width:400px;line-height:1.6}dialog{background:#1a2431;color:#f1f4fa;border:1px solid #42516a;border-radius:16px;max-width:660px;width:90%;max-height:90vh;padding:1.5rem}dialog::backdrop{background:#080e18c9}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}dialog p{line-height:1.5;color:var(--muted);margin:.7rem 0}dialog section,dialog form{padding:1.2rem 0;border-top:1px solid var(--line)}label{display:block;margin:.75rem 0;color:#c5d0e1}input,select{display:block;width:100%;padding:.8rem;border:1px solid #46566c;background:#101923;color:#fff;border-radius:7px;margin-top:.4rem}input[type=checkbox]{display:inline;width:20px;height:20px;vertical-align:middle;margin:0 .5rem 0 0}.account{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem 0;word-break:break-all}.account button{font-size:.8rem}.error,#settings-message{color:#ffb58b;margin-top:.8rem}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:430px;max-width:100%;padding:2.5rem;background:#1a2430;border:1px solid #324158;border-radius:20px}.login-card h1{margin:1rem 0}.login-card p{color:var(--muted);line-height:1.5}.login-card button{width:100%;margin:.8rem 0}.login-card small{display:block;color:var(--muted);line-height:1.5}@media(min-width:2200px){:root{font-size:calc(24px * var(--scale))}}@media(max-width:1000px){#app{height:auto;min-height:100vh}header{flex-wrap:wrap}nav{order:3;width:100%;justify-content:center}main{flex-direction:column}aside{width:100%;max-width:none;display:grid;grid-template-columns:1fr 1fr;min-width:0}aside footer{grid-column:1/-1}#calendar{min-height:650px}.clock-card #clock{font-size:4rem}.event{font-size:.7rem}.navigation{flex-wrap:wrap}#message{margin-left:0}#calendar-legend{display:none}}@media(max-width:550px){:root{font-size:14px}aside{display:flex}.brand h1{font-size:1.8rem}nav button{padding:.7rem .9rem}.month-cell{padding:.25rem}.month-event{font-size:.6rem}.event .event-time{font-size:.6rem}.tools button{padding:.5rem}}
@media(min-width:1001px) and (max-height:850px){:root{font-size:calc(14px * var(--scale))}#app{padding:1.4vw;gap:.65rem}h1{font-size:2.2rem}#period{font-size:1rem}.brand .eyebrow{margin-bottom:.15rem}.navigation{min-height:36px}button{min-height:36px}nav button{padding:.7rem 1.2rem}.week{min-height:420px}aside{padding:1rem;gap:.7rem}.clock-card #clock{font-size:4rem;margin:.2rem 0}.current-card{padding:.7rem;line-height:1.35}.current-card h2{font-size:1.15rem}.weather{padding-top:.7rem}.temperature{font-size:2.7rem}.weather-now{margin:.25rem 0}.weather-range{margin:.3rem 0 .5rem}.hourly{padding:.3rem 0}.hourly button{gap:.3rem;min-width:48px;padding:.3rem .1rem}.hourly .icon{font-size:1.3rem}.attribution{margin-top:.35rem}footer{font-size:.75rem}}
