:root{--bg:#12151b;--bg-grade:#171b23;--panel:#1b2028;--panel-alt:#181d25;--panel-line:#2a3140;--text:#eef1f6;--text-dim:#9aa3b5;--text-faint:#5c6478;--accent:#ff8f4d;--accent-soft:rgba(255,143,77,.16);--accent-line:rgba(255,143,77,.55);--ok:#57d6a6;--weekend:#707a91;--now-line:#ff5470}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(140% 120% at 12% 8%,var(--bg-grade) 0%,var(--bg) 55%);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}.stage{height:100vh;width:100vw;display:grid;gap:clamp(10px,1.4vw,20px);padding:clamp(12px,1.8vw,24px);min-height:0}.stage>*{min-width:0;min-height:0}.slot{min-width:0;min-height:0;position:relative}.slot>*{height:100%}.booting{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-faint);font-family:IBM Plex Mono,monospace}.note-panel{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--panel-line);border-radius:20px;padding:clamp(14px,1.6vw,20px);display:flex;align-items:center;overflow:hidden}.note-panel p{margin:0;font-size:clamp(13px,1.3vw,17px);line-height:1.35;color:var(--text-dim);overflow-wrap:anywhere}.cal-panel{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--panel-line);border-radius:20px;padding:clamp(14px,1.6vw,22px);display:flex;flex-direction:column;min-height:0;box-shadow:0 20px 60px -30px var(--shadow)}.cal-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:clamp(8px,1.2vh,14px);flex:none}.cal-head h1{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(16px,1.7vw,21px);letter-spacing:-.01em}.cal-head span{font-family:IBM Plex Mono,monospace;font-size:clamp(10px,.9vw,12px);color:var(--text-faint)}.day-strip{display:flex;gap:clamp(4px,.6vw,8px);flex:none;margin-bottom:clamp(6px,1vh,10px)}.strip-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:clamp(4px,.7vh,7px) 2px;border:1px solid transparent;border-radius:9px;background:var(--sunk);color:var(--text-faint);font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease}.strip-day .sd-name{font-family:IBM Plex Mono,monospace;font-size:clamp(8.5px,.75vw,10px);letter-spacing:.08em}.strip-day .sd-num{font-size:clamp(12px,1.15vw,15px);font-weight:600;color:var(--text-dim)}.strip-day.is-active{background:var(--accent-soft);border-color:var(--accent-line)}.strip-day.is-active .sd-name{color:var(--accent)}.strip-day.is-active .sd-num{color:var(--text)}.strip-day.is-today:not(.is-active) .sd-num{color:var(--text)}.cal-window{display:flex;align-items:baseline;gap:10px;color:var(--accent)}.cal-window .cal-date{font-style:normal;color:var(--text-faint)}.edge-note{flex:none;font-family:IBM Plex Mono,monospace;font-size:clamp(9px,.8vw,11px);color:var(--text-faint);padding:2px 0 2px 2px}.edge-note.is-before{margin-bottom:2px}.edge-note.is-after{margin-top:4px}.allday-row{display:flex;flex-wrap:wrap;gap:4px;flex:none;margin-bottom:6px}.allday-chip{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent);font-size:clamp(11px,.95vw,13px);border-radius:6px;padding:2px 8px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.day-stage{flex:1;min-height:0;min-width:0;display:grid;grid-template-columns:clamp(38px,4vw,52px) 1fr;padding-top:6px;border-top:1px solid var(--panel-line)}.hour-gutter{position:relative}.hour-tick{position:absolute;right:7px;transform:translateY(-50%);font-family:IBM Plex Mono,monospace;font-size:clamp(10px,.9vw,12.5px);color:var(--text-faint);white-space:nowrap}.day-track{position:relative;min-width:0;border-left:1px solid var(--panel-line)}.hour-line{position:absolute;left:0;right:0;height:1px;background:var(--panel-line);opacity:.6}.half-line{position:absolute;left:0;right:0;height:1px;background:var(--panel-line);opacity:.25}.event-block{position:absolute;border-radius:8px;background:var(--accent-soft);border-left:3px solid var(--accent);padding:clamp(3px,.5vh,6px) clamp(6px,.8vw,10px);overflow:hidden;color:var(--text);display:flex;flex-direction:column;justify-content:flex-start;gap:1px}.event-block .eb-time{font-family:IBM Plex Mono,monospace;font-size:clamp(11px,1vw,13px);color:var(--accent);white-space:nowrap}.event-block .eb-subject{font-size:clamp(13px,1.35vw,17px);font-weight:600;line-height:1.2;overflow:hidden;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.event-block .eb-loc{font-size:clamp(11.5px,1.1vw,14px);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-block.is-tentative{background:repeating-linear-gradient(135deg,var(--accent-soft) 0px,var(--accent-soft) 6px,transparent 6px,transparent 12px);border-left-style:dashed}.eb-flag{margin-left:7px;padding:0 5px;border:1px solid var(--accent-line);border-radius:4px;font-size:.85em;letter-spacing:.04em;text-transform:uppercase}.event-block.is-medium .eb-subject{-webkit-line-clamp:1}.event-block.is-narrow .eb-flag{display:none}.event-block.is-narrow .eb-subject{font-size:clamp(11.5px,1.15vw,15px)}.agenda-flag{margin-left:8px;padding:0 5px;border:1px solid var(--accent-line);border-radius:4px;font-family:IBM Plex Mono,monospace;font-size:.72em;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);vertical-align:middle}.event-block.is-compact{flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;min-height:20px;padding-top:0;padding-bottom:0}.event-block.is-compact .eb-subject{flex:0 1 auto;min-width:0;font-size:clamp(12px,1.2vw,15.5px);white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:1}.event-block.is-compact .eb-loc{flex:0 1 auto;min-width:0}.event-block.is-compact .eb-loc:before{content:"· "}.day-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:clamp(12px,1.2vw,15px)}.now-line{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--now-line);z-index:5}.now-line:before{content:"";position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--now-line)}.peek-note{flex:none;margin-top:6px;text-align:center;font-family:IBM Plex Mono,monospace;font-size:clamp(9px,.8vw,10.5px);color:var(--accent);opacity:.85}.clock-panel{container-type:inline-size;background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--panel-line);border-radius:20px;padding:clamp(14px,1.6vw,20px) clamp(16px,2vw,24px);padding:clamp(8px,4cqi,20px) clamp(10px,5cqi,24px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}.weekday{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.24em;font-size:clamp(10px,1vw,12.5px);font-size:clamp(7.5px,3.6cqi,12.5px);color:var(--accent);margin:0 0 2px 1px}.time{font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(36px,5.6vw,64px);font-size:clamp(22px,24cqi,64px);line-height:.95;letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:0;display:flex;align-items:baseline;gap:6px}.time .secs{font-size:.34em;font-weight:700;color:var(--text-faint);min-width:2.1ch}.date-line{font-size:clamp(13px,1.3vw,16.5px);font-size:clamp(9.5px,6cqi,16.5px);font-weight:500;color:var(--text-dim);margin-top:4px}.date-line strong{color:var(--text);font-weight:600}.status-row{margin-top:10px;display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:clamp(9.5px,.85vw,11px);font-size:clamp(8px,4cqi,11px);color:var(--text-faint)}@container (max-width: 190px){.time .secs{display:none}.status-row{margin-top:6px}}@container (max-width: 150px){.date-line strong{display:none}.status-row span:last-child{display:none}}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint);flex:none}.dot.live{background:var(--ok);box-shadow:0 0 0 4px #57d6a624}.dot.stale{background:var(--accent);box-shadow:0 0 0 4px #ff8f4d24}.agenda-panel{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--panel-line);border-radius:20px;padding:clamp(14px,1.6vw,20px) clamp(14px,1.6vw,20px) clamp(10px,1.2vw,14px);min-height:0;display:flex;flex-direction:column}.agenda-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;flex:none}.agenda-head h2{margin:0;font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(15px,1.5vw,19px)}.agenda-head span{font-family:IBM Plex Mono,monospace;font-size:clamp(9.5px,.85vw,11px);color:var(--text-faint)}.agenda-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;min-height:0}.agenda-list::-webkit-scrollbar{width:0}.agenda-group-label{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(9.5px,.8vw,10.5px);color:var(--accent);margin:10px 0 5px}.agenda-group-label:first-child{margin-top:0}.agenda-item{display:flex;gap:10px;padding:6px 4px;align-items:baseline}.agenda-item+.agenda-item{border-top:1px solid var(--panel-line)}.agenda-time{font-family:IBM Plex Mono,monospace;font-size:clamp(10.5px,.95vw,12px);color:var(--text-dim);white-space:nowrap;min-width:4.4ch;font-variant-numeric:tabular-nums}.agenda-time.allday{color:var(--accent)}.agenda-body{min-width:0}.agenda-subject{font-size:clamp(12px,1.05vw,13.5px);font-weight:500;color:var(--text);overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.agenda-loc{font-size:clamp(11.5px,.95vw,13px);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-empty,.agenda-fallback{color:var(--text-faint);font-size:clamp(11.5px,1vw,13px);line-height:1.5;padding:6px 4px}.tile{container-type:inline-size;background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--panel-line);border-radius:20px;padding:clamp(8px,1.3vw,16px) clamp(10px,1.5vw,20px);padding:clamp(6px,4cqi,16px) clamp(8px,5cqi,20px);display:flex;flex-direction:column;justify-content:center;gap:1px;overflow:hidden;min-width:0}.tile.is-accent{border-color:var(--accent-line)}.tile-label{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(9px,.8vw,11px);font-size:clamp(7.5px,3.4cqi,11px);color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-value{font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(20px,2.6vw,34px);font-size:clamp(13px,13cqi,34px);line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tile-sub{font-size:clamp(11px,1vw,13.5px);font-size:clamp(9px,5cqi,13.5px);color:var(--text-dim);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tile-loc{font-size:clamp(11px,1vw,13px);font-size:clamp(9px,4.6cqi,13px);color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.load-bar{margin-top:6px;height:5px;border-radius:3px;background:var(--sunk);overflow:hidden;flex:none}.load-bar span{display:block;height:100%;background:var(--accent);border-radius:3px}.weather-tile{justify-content:center}.weather-main{display:flex;align-items:center;gap:clamp(8px,1.2vw,14px);min-width:0}.weather-icon{width:clamp(22px,17cqi,46px);height:clamp(22px,17cqi,46px);flex:none;color:var(--accent)}.weather-now{min-width:0}@container (max-width: 190px){.tile-sub{-webkit-line-clamp:1}.tile-label{letter-spacing:.1em}}@container (max-width: 150px){.weather-icon,.tile-loc{display:none}}@container (max-width: 118px){.tile-sub{display:none}}.reminder-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .35s ease}.reminder-overlay.show{opacity:1;pointer-events:auto}.reminder-card{width:min(560px,88vw);background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%);border:1px solid var(--accent-line);border-radius:24px;padding:clamp(24px,4vw,40px);box-shadow:0 30px 90px -20px var(--shadow),0 0 0 1px var(--accent-soft);transform:scale(.94) translateY(8px);transition:transform .35s cubic-bezier(.2,.8,.3,1.1)}.reminder-overlay.show .reminder-card{transform:scale(1) translateY(0)}.reminder-badge{display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.16em;font-size:clamp(11px,1.4vw,13px);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;padding:6px 14px;margin-bottom:clamp(14px,2.4vw,20px)}.reminder-badge .pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}@media (prefers-reduced-motion: no-preference){.reminder-badge .pulse-dot{animation:rpulse 1.4s ease-in-out infinite}}@keyframes rpulse{0%,to{box-shadow:0 0 0 0 var(--accent-line)}50%{box-shadow:0 0 0 7px transparent}}.reminder-subject{font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(24px,4.6vw,36px);line-height:1.1;letter-spacing:-.01em;margin:0 0 clamp(10px,1.6vw,14px);text-wrap:balance}.reminder-meta{display:flex;flex-direction:column;gap:6px;font-size:clamp(14px,2.2vw,17px);color:var(--text-dim);margin-bottom:clamp(20px,3.6vw,30px)}.reminder-meta .rm-time{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.reminder-ack{width:100%;border:none;border-radius:14px;background:var(--accent);color:var(--on-accent);font-family:IBM Plex Sans,sans-serif;font-weight:700;font-size:clamp(16px,2.6vw,19px);padding:clamp(14px,2.6vw,18px) 20px;cursor:pointer;transition:filter .15s ease,transform .15s ease}.reminder-ack:hover{filter:brightness(1.08)}.reminder-ack:active{transform:scale(.98)}.reminder-ack:focus-visible{outline:3px solid rgba(255,255,255,.4);outline-offset:3px}.editor{height:100vh;display:flex;flex-direction:column;background:radial-gradient(140% 120% at 12% 8%,var(--bg-grade) 0%,var(--bg) 55%);color:var(--text);overflow:hidden}.editor-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(14px,2vw,22px);border-bottom:1px solid var(--panel-line);background:var(--panel-alt)}.editor-title{display:flex;align-items:baseline;gap:10px}.editor-title strong{font-family:Archivo,sans-serif;font-weight:900;font-size:18px}.editor-title span{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-faint)}.editor-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.editor-msg{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-faint)}.editor-msg.is-ok{color:var(--ok)}.editor-msg.is-error{color:#ff6b8b}.editor-msg.is-warn{color:var(--accent)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:10px;background:var(--accent);color:var(--on-accent);font-family:IBM Plex Sans,sans-serif;font-weight:700;font-size:13px;padding:8px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:filter .15s ease,opacity .15s ease}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.4;cursor:default;filter:none}.btn.ghost{background:transparent;border-color:var(--panel-line);color:var(--text-dim);font-weight:600}.btn.ghost:hover{border-color:var(--accent-line);color:var(--text)}.btn.ghost.danger{color:#ff6b8b;border-color:#ff6b8b66}.editor-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,22vw,320px);gap:clamp(12px,1.6vw,20px);padding:clamp(12px,1.6vw,20px)}.canvas-wrap{display:flex;flex-direction:column;min-width:0;min-height:0;gap:8px}.canvas{--canvas-pad:clamp(8px,1vw,14px);--canvas-gap:clamp(8px,1vw,14px);flex:1;min-height:0;position:relative;display:grid;gap:var(--canvas-gap);padding:var(--canvas-pad);border:1px solid var(--panel-line);border-radius:16px;background:var(--sunk);touch-action:none}.cell-layer{position:absolute;top:var(--canvas-pad);left:var(--canvas-pad);right:var(--canvas-pad);bottom:var(--canvas-pad);display:grid;gap:var(--canvas-gap);pointer-events:none}.cell-layer .cell{border:1px dashed var(--panel-line);border-radius:6px}.canvas .slot{z-index:1}.canvas-hint{margin:0;font-family:IBM Plex Mono,monospace;font-size:11px;line-height:1.5;color:var(--text-faint)}.slot.is-editable .slot-inner{height:100%;pointer-events:none;overflow:hidden;border-radius:18px}.slot.is-editable .slot-inner>*{height:100%}.slot.is-editable{outline:1px solid transparent;outline-offset:2px;border-radius:20px;transition:outline-color .12s ease}.slot.is-editable:hover{outline-color:var(--panel-line)}.slot.is-selected{outline:2px solid var(--accent-line)}.slot.is-dragging{opacity:.9;z-index:5}.slot.is-invalid{outline:2px solid #ff6b8b}.slot.is-invalid .slot-inner{filter:saturate(.4)}.slot-grip{position:absolute;top:6px;left:8px;right:8px;height:24px;display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 8px;border-radius:8px;background:var(--overlay);border:1px solid var(--panel-line);font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);cursor:grab;opacity:0;transition:opacity .12s ease;z-index:2}.slot.is-editable:hover .slot-grip,.slot.is-selected .slot-grip,.slot.is-dragging .slot-grip{opacity:1}.slot-grip:active{cursor:grabbing}.slot-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--text-faint);font-size:15px;line-height:1;padding:2px 6px;cursor:pointer;border-radius:6px}.slot-remove:hover{color:#ff6b8b;background:#ff6b8b1f}.slot-resize{position:absolute;right:2px;bottom:2px;width:20px;height:20px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);border-bottom-right-radius:8px;cursor:nwse-resize;opacity:0;transition:opacity .12s ease;z-index:2}.slot.is-editable:hover .slot-resize,.slot.is-selected .slot-resize{opacity:.9}.inspector{min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:18px;padding:clamp(12px,1.4vw,18px);border:1px solid var(--panel-line);border-radius:16px;background:linear-gradient(180deg,var(--panel) 0%,var(--panel-alt) 100%)}.inspector h2{margin:0 0 10px;font-family:Archivo,sans-serif;font-weight:900;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.inspector section{border-bottom:1px solid var(--panel-line);padding-bottom:16px}.inspector section:last-child{border-bottom:none;padding-bottom:0}.muted{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--text-faint)}.palette{display:flex;flex-wrap:wrap;gap:8px}.fields{display:flex;flex-direction:column;gap:10px}.field{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-dim)}.field input[type=number],.field input[type=text]{width:96px;background:var(--sunk);border:1px solid var(--panel-line);border-radius:8px;color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12.5px;padding:6px 8px}.field input[type=text]{width:130px}.field input:focus{outline:2px solid var(--accent-line);outline-offset:1px}.field input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.swatch.is-active{border-color:var(--text)}.mode-toggle{display:flex;gap:8px}.mode-toggle .btn{flex:1;justify-content:center}.colour-fields{display:flex;flex-direction:column;gap:8px}.colour-field{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-dim)}.colour-field input[type=color]{width:44px;height:28px;padding:0;background:none;border:1px solid var(--panel-line);border-radius:8px;cursor:pointer}@media (max-width: 860px){.editor-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1.1fr) minmax(0,1fr)}}
