*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font: ui-rounded, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--red: #f00;--text: #111;--text-2: #888;--text-3: #ccc;--border: rgba(0,0,0,.08);--bg: #fff;--bg-row: #fff;--bg-sub: #f4f4f4;--row-h: 42px}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--red: color(display-p3 1 .05 0)}}}@media (prefers-color-scheme: dark){:root{--text: #e8e8e8;--text-2: #777;--text-3: #444;--border: rgba(255,255,255,.07);--bg: #111;--bg-row: #111;--bg-sub: #1d1d1d}}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;overflow:hidden}html.is-dragging,html.is-dragging *{user-select:none!important;-webkit-user-select:none!important;touch-action:none!important;cursor:grabbing!important}#app{height:100dvh;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size}.app-header{display:flex;align-items:center;gap:.75rem;padding:0 1.25rem;height:52px;border-bottom:1px solid var(--border);flex-shrink:0}.app-title{font-size:.8rem;font-weight:700;letter-spacing:-.01em}.week-nav{display:flex;align-items:center;gap:.1rem}.nav-btn{background:none;border:none;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--text-2);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:5px}.nav-btn:hover{background:var(--bg-sub);color:var(--text)}.nav-today{background:none;border:none;cursor:pointer;font:inherit;font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-2);padding:.3rem .5rem;border-radius:5px}.nav-today:hover{background:var(--bg-sub);color:var(--text)}.nav-today.active{color:var(--red)}.settings-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-3);width:28px;height:28px;border-radius:5px}.settings-btn:hover{color:var(--text)}.settings-panel{display:flex;gap:.5rem;align-items:center;padding:.6rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-sub);flex-shrink:0}.settings-field{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;font:inherit;font-size:.8rem;color:var(--text);outline:none}.settings-field:focus{border-color:var(--red)}.settings-connect{background:var(--red);color:#fff;border:none;border-radius:6px;padding:.35rem .75rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.settings-connect:disabled{opacity:.35;cursor:default}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:.85rem}.week-columns{flex:1;display:grid;grid-template-columns:repeat(7,1fr);overflow:hidden;min-width:0}@container (max-width: 700px){.week-columns{grid-template-columns:repeat(7,80cqi);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}}.day-col{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden;scroll-snap-align:start}.day-col:last-child{border-right:none}.day-head{padding:1rem 1rem .85rem;border-bottom:2px solid var(--border);flex-shrink:0}.day-date{display:block;font-size:.6rem;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem}.day-name{display:block;font-size:clamp(.85rem,1.4cqi,1.3rem);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:1;color:var(--text)}.day-col--today .day-date,.day-col--today .day-name{color:var(--red)}.day-col--past .day-name,.day-col--past .day-date{color:var(--text-3)}.day-body{flex:1;overflow-y:auto;overflow-x:hidden;cursor:text;overscroll-behavior:contain;background-image:repeating-linear-gradient(to bottom,transparent 0px,transparent calc(var(--row-h) - 1px),var(--border) calc(var(--row-h) - 1px),var(--border) var(--row-h));background-size:100% var(--row-h)}.day-row{height:var(--row-h);display:flex;align-items:center;padding:0 .75rem;border-bottom:1px solid var(--border);background:var(--bg-row);position:relative}.day-drop-indicator{height:2px;background:var(--red);border-radius:2px;flex-shrink:0}.ev-item{cursor:default}.ev-item:hover{background:var(--bg-sub)}.ev-item:hover .ev-del{opacity:1}.ev-item--dragging{opacity:.3}.ev-item--editing{background:var(--bg-sub)}.ev-text{flex:1;min-width:0;font-size:.875rem;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;color:var(--text)}.ev-item--done .ev-text{text-decoration:line-through;color:var(--text-3)}.ev-edit-input{flex:1;min-width:0;background:none;border:none;outline:none;font:inherit;font-size:.875rem;color:var(--text);cursor:text}.ev-del{flex-shrink:0;opacity:0;background:none;border:none;cursor:pointer;color:var(--text-3);font-size:1rem;line-height:1;padding:0 .15rem;transition:opacity .1s,color .1s}.ev-del:hover{color:var(--red);opacity:1!important}.day-row--heading{background:var(--bg-sub);cursor:grab}.day-row--heading:hover .ev-del{opacity:1}.ev-heading{flex:1;min-width:0;font-size:.65rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-row--sep{gap:.5rem;cursor:grab}.day-row--sep:hover .ev-del{opacity:1}.ev-sep-line{flex:1;height:1px;background:var(--border);pointer-events:none}.day-row--input{cursor:text}.day-input{width:100%;background:none;border:none;outline:none;font:inherit;font-size:.875rem;color:var(--text)}.day-input::placeholder{color:var(--text-3)}
