*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#000;color:#e8e8e8;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}body{font-size:14px}button,input,select{font:inherit}button{min-height:44px;min-width:44px;border:1px solid #222b35;background:#090c10;color:#8b98a8;border-radius:6px;padding:8px 12px;cursor:pointer}button:focus,input:focus,select:focus,a:focus{outline:2px solid #77afe6;outline-offset:2px}#dashboard{height:100%;padding:16px 18px 25px;transition:opacity 1s}body.dimmed #dashboard{opacity:.3}.layout{height:100%;display:-webkit-flex;display:flex}.agenda-panel{width:72%;min-width:0;padding-right:20px;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column}.calendar-heading,.section-title,.sidebar-controls,footer,.actions{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.calendar-heading{height:29px;min-height:29px;margin-bottom:7px}.calendar-heading h1,.section-title h2,.forecast-heading{margin:0;font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:#727d8e;font-weight:600}.calendar-heading h1{font-size:12px}.status{font-size:10px;color:#678a7b;max-width:53%;text-align:right;line-height:1.35}.status.warn{color:#b8965c}.agenda{-webkit-flex:1;flex:1;min-height:0;position:relative;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;overflow:hidden}.sidebar{width:28%;min-width:0;border-left:1px solid #1b1f27;padding-left:20px;position:relative}.sidebar-controls{height:44px;margin-top:-6px;margin-bottom:13px}.sidebar-controls button{padding:7px 8px;font-size:10px;background:transparent;border-color:#171e26;color:#687587}.sidebar-controls #dimButton{border-color:transparent;padding-left:0}.time-panel{margin-bottom:27px}#clock{white-space:nowrap;font-size:69px;line-height:1.08;font-weight:200;letter-spacing:-3px;font-variant-numeric:tabular-nums}#period{font-size:19px;font-weight:300;color:#888;letter-spacing:0;margin-left:6px}.eyebrow{font-size:16px;line-height:1.45;color:#9aa6b2;margin-top:8px}.time-zone{font-size:10px;color:#45505f;margin-top:5px}.section-title{min-height:17px}.current{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;margin:10px 0 7px}.weather-symbol{font-size:46px;color:#aebacb;width:66px;line-height:1}.weather-symbol svg{height:54px;width:54px}#temperature{font-size:56px;font-weight:200;letter-spacing:-2px;line-height:1.05}#temperature span{font-size:43px}#condition{font-size:17px;color:#c5c9cf;line-height:1.3;margin-bottom:7px}.weather-details{font-size:12px;color:#788394;line-height:1.7;min-height:35px;margin-bottom:4px}.weather-sun{font-size:10px;color:#667384;line-height:1.7;margin-bottom:22px}.forecast-heading{margin-bottom:8px}.forecast{display:block}.forecast-day{height:40px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between;border-bottom:1px solid #161a21;color:#9aa6b2;font-size:12px}.forecast-day>div:first-child,.forecast-day .forecast-label{width:49px;-webkit-flex-shrink:0;flex-shrink:0;font-size:12px}.forecast-icon{font-size:25px;width:29px;text-align:center;color:#aebacb}.forecast-icon svg{height:27px;width:27px}.forecast-temp{color:#d5d9df;font-size:13px;white-space:nowrap;letter-spacing:-.2px}.forecast-low{color:#667487;margin-left:4px}.rain{color:#5a8fc4;font-size:10px;text-align:right;white-space:nowrap;min-width:43px}.source{font-size:8px;color:#414e5c;margin-top:11px;line-height:1.7}.source a{color:#4a596b;text-decoration:none}.source span{display:block}footer{position:absolute;left:18px;right:18px;bottom:7px;color:#333e4c;font-size:8px;letter-spacing:.2px;line-height:1.3}.empty{margin:40px 52px;color:#6d7d8e;font-size:13px;line-height:1.7}.empty h2{font-size:20px;color:#b8c5d0;font-weight:300}.empty-symbol{font-size:32px}#calendarFrame{width:100%;-webkit-flex:1;flex:1;min-height:0;border:0;background:#fff}
/* Full civil day: midnight through midnight. No CSS grid or flex gap. */
.week-headers{display:-webkit-flex;display:flex;height:53px;min-height:53px}.week-gutter{width:52px;min-width:52px;font-size:8px;color:#445064;line-height:1.4;padding-top:5px}.week-header-days,.all-day-days{display:-webkit-flex;display:flex;-webkit-flex:1;flex:1;min-width:0}.week-day-heading{width:14.285714%;text-align:center;font-size:11px;color:#687587;letter-spacing:1px;line-height:1.35}.day-name{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase}.day-number{display:inline-block;font-size:22px;letter-spacing:0;font-weight:300;line-height:1.2;margin-top:3px;padding:0 7px}.week-day-heading.today .day-name{color:#5994df}.today .day-number{background:#2f6fca;border-radius:14px;color:#fff;font-weight:500}.all-day-row{display:-webkit-flex;display:flex;position:relative;min-height:25px;margin-bottom:5px;border-bottom:1px solid #1b1f27;-webkit-flex-shrink:0;flex-shrink:0}.all-day-cell{width:14.285714%;min-width:0;padding:0 2px 3px}.all-day-cell.today{background:rgba(74,144,226,.065)}.all-day-event{font-size:9px;line-height:14px;padding:1px 4px;margin-bottom:2px;border-left:2px solid #4a90e2;border-radius:3px;background:#11273f;color:#c5d9f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid{position:relative;-webkit-flex:1;flex:1;min-height:0;display:-webkit-flex;display:flex}.week-hours{position:relative;width:52px;min-width:52px;font-size:8px;color:#4b5669}.hour-label{position:absolute;left:0;right:4px;line-height:1;white-space:nowrap}.hour-label:last-child{margin-top:-7px}.week-days{position:relative;display:-webkit-flex;display:flex;-webkit-flex:1;flex:1;min-width:0;height:100%}.day-column{position:relative;width:14.285714%;height:100%;border-left:1px solid #1b1f27}.day-column.today{background:rgba(74,144,226,.065)}.hour-rule{position:absolute;left:0;right:0;height:1px;background:#1b1f27;pointer-events:none}.week-event{position:absolute;border-radius:4px;padding:3px 4px;font-size:10px;line-height:1.15;overflow:hidden;border-left:3px solid #4a90e2;background:#14304f;color:#cfe3fb;z-index:2}.week-event-title{display:block;font-weight:500;overflow:hidden;overflow-wrap:break-word}.week-event-time{display:block;font-size:8px;opacity:.7;line-height:1.25}.c1{background:#14304f;border-left-color:#4a90e2;color:#cfe3fb}.c2{background:#2a1f45;border-left-color:#9b72e6;color:#e0d4fa}.c3{background:#143a2c;border-left-color:#3fb985;color:#c8f0e0}.c4{background:#45301a;border-left-color:#e89b3c;color:#fae3c3}.now-line{position:absolute;left:0;right:0;height:2px;background:#e5534b;z-index:4;pointer-events:none}.now-dot{position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#e5534b}.calendar-note{font-size:9px;line-height:1.4;color:#586677;margin:8px 0 0 52px;min-height:13px;-webkit-flex-shrink:0;flex-shrink:0}.week-overflow{color:#ac8855;font-size:9px}.event{border-bottom:1px solid #202735;padding:10px;font-size:12px}.event-time{font-size:10px;color:#7890a5}.event-title{color:#c4d3df}
/* Settings stays bright, scrollable and usable while the display dims. */
.week-days{height:auto;-webkit-align-items:stretch;align-items:stretch}.day-column{height:auto}.week-event{min-height:0;min-width:0;margin:0;text-align:left;font-family:inherit;cursor:pointer;border:0;border-left:3px solid #4a90e2}.week-event.c1{border-left-color:#4a90e2}.week-event.c2{border-left-color:#9b72e6}.week-event.c3{border-left-color:#3fb985}.week-event.c4{border-left-color:#e89b3c}.week-event.compact{padding-top:1px;padding-bottom:1px}.week-event.compact .week-event-title{white-space:nowrap;text-overflow:ellipsis}.week-event.compact .week-event-time{display:none}.all-day-event{min-height:20px;min-width:0;max-width:100%;text-align:left;font-family:inherit;cursor:pointer;border:0;border-left:2px solid #4a90e2}.event-details-pane h2{font-size:21px;font-weight:400;line-height:1.4;color:#d9e3eb;overflow-wrap:break-word}.event-details-pane p{font-size:16px;line-height:1.7;color:#98adbe}
.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.93);z-index:10;padding:28px;overflow:auto;-webkit-overflow-scrolling:touch}.settings{max-width:610px;margin:0 auto;padding:25px;background:#111820;border:1px solid #344351;border-radius:10px}.settings .section-title h2{font-size:17px;letter-spacing:0;text-transform:none;color:#d1dce4}.settings label{display:block;font-size:13px;color:#bfd0da;margin:18px 0 8px}.settings input,.settings select{width:100%;min-height:44px;border:1px solid #3b4d5a;border-radius:6px;background:#080d13;color:#e9edf0;padding:10px}.help{color:#93a9b9;font-size:12px;line-height:1.6}.actions{-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-top:25px;-webkit-justify-content:flex-start;justify-content:flex-start}.actions button{margin:0 8px 8px 0}.primary{background:#b4d9d1;color:#10232b;border-color:#b4d9d1}#settingsMessage{font-size:13px;color:#d7b780;line-height:1.5}
@media(min-width:1200px){#dashboard{padding:24px 28px 30px}.sidebar{padding-left:28px}.agenda-panel{padding-right:28px}#clock{font-size:88px}.time-panel{margin-bottom:40px}.forecast-day{height:49px}.weather-sun{margin-bottom:32px}.week-event{font-size:12px}.week-event-time{font-size:10px}}
@media(max-width:800px) and (min-height:850px){#dashboard{padding:16px 18px 25px}.layout{display:block}.agenda-panel{width:100%;height:65%;padding:0 0 17px}.sidebar{width:100%;height:35%;padding:20px 0 0;border-left:0;border-top:1px solid #1b1f27;display:-webkit-flex;display:flex}.sidebar-controls{position:absolute;left:0;bottom:0;width:30%;margin:0}.time-panel{width:31%;margin:0;padding-top:6px;padding-right:14px}#clock{font-size:61px;letter-spacing:-2px}#period{font-size:16px}.eyebrow{font-size:16px}.time-zone{margin-top:9px}.weather-panel{width:69%;position:relative;padding-left:18px;border-left:1px solid #161c24}.weather-panel .section-title,.weather-panel .current,#condition,.weather-details,.weather-sun{width:50%}.weather-panel .status{font-size:8px}.current{margin:11px 0 5px}.weather-symbol{width:49px;font-size:36px}.weather-symbol svg{height:42px;width:42px}#temperature{font-size:43px}#temperature span{font-size:32px}#condition{font-size:14px}.weather-details{font-size:10px;margin-bottom:4px}.weather-sun{font-size:9px;line-height:1.6;margin-bottom:0}.forecast-heading{position:absolute;top:0;left:56%;margin:0}.forecast{position:absolute;top:21px;left:56%;right:0}.forecast-day{height:39px;font-size:10px}.forecast-day>div:first-child,.forecast-day .forecast-label{width:40px;font-size:10px}.forecast-icon{width:24px;font-size:20px}.forecast-temp{font-size:11px}.rain{font-size:8px;min-width:33px}.source{position:absolute;left:18px;bottom:0;font-size:8px}.week-event{font-size:10px}}
@media(max-width:650px){#dashboard{padding:10px 10px 24px}.agenda-panel{width:68%;padding-right:10px}.sidebar{width:32%;padding-left:10px}#clock{font-size:43px;letter-spacing:-2px}#period{font-size:12px;margin-left:3px}.eyebrow{font-size:12px}.sidebar-controls button{font-size:8px;padding:3px}.sidebar-controls{display:block;height:88px;margin-bottom:5px}.time-panel{margin-bottom:15px}.weather-symbol{width:35px;font-size:30px}#temperature{font-size:38px}#condition{font-size:12px}.weather-details{font-size:10px;margin-bottom:4px}.weather-sun{font-size:9px;margin-bottom:12px}.forecast-day{height:35px;-webkit-flex-wrap:wrap;flex-wrap:wrap}.forecast-day>div:first-child,.forecast-day .forecast-label{width:35px;font-size:9px}.forecast-temp{font-size:10px}.rain{font-size:8px;min-width:22px}.forecast-icon{width:20px;font-size:18px}.calendar-heading h1{font-size:9px}.calendar-heading .status{font-size:8px}.week-day-heading .day-number{font-size:17px}.week-hours,.week-gutter{width:32px;min-width:32px}.hour-label{font-size:7px}.week-event{font-size:8px;padding:2px;border-left-width:2px}.week-event-time{font-size:7px}.overlay{padding:12px}.settings{padding:18px}footer{left:10px;right:10px;font-size:7px}}
.event-list-item{display:block;width:100%;margin:8px 0;text-align:left;line-height:1.5;overflow-wrap:break-word}
@media(min-width:1200px) and (max-height:800px){#clock{font-size:72px}.time-panel{margin-bottom:24px}.forecast-day{height:36px}.weather-sun{margin-bottom:16px}}
