.planner-app{padding-bottom:110px}.owner-toolbar{background:linear-gradient(90deg, #c9ad781f, var(--surface));border:1px solid #c9ad7875;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:14px 16px;display:flex}.owner-toolbar>div:first-child{gap:3px;display:grid}.owner-kicker{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font:.61rem DM Mono,monospace}.owner-toolbar strong{font-size:.86rem;font-weight:500}.owner-toolbar-actions,.view-switch{display:flex}.owner-toolbar-actions{align-items:center;gap:10px}.owner-weather-control{justify-items:end;gap:4px;display:grid}.owner-weather-control span{color:var(--muted);font:.52rem DM Mono,monospace}.owner-weather-control span.is-error{color:#d7a49b}.weather-location-button{min-height:36px;color:var(--accent);cursor:pointer;text-transform:uppercase;background:#c9ad7814;border:1px solid #c9ad788c;padding:0 12px;font:.61rem DM Mono,monospace}.weather-location-button:hover{border-color:var(--accent);background:#c9ad7824}.weather-location-button:disabled{opacity:.5;cursor:wait}.view-switch button,.logout-button{border:1px solid var(--line);min-height:36px;color:var(--muted);cursor:pointer;text-transform:uppercase;background:#0d1012;padding:0 13px;font:.64rem DM Mono,monospace}.view-switch button+button{margin-left:-1px}.view-switch button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#0b0d0f;position:relative}.logout-button{margin-left:10px}.logout-button:hover{color:#d7a49b;border-color:#9c6e67}.planner-toolbar{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:28px;padding:28px 0 26px;display:flex}.planner-toolbar .eyebrow{margin-bottom:9px}.planner-toolbar h2{margin:0;font-size:clamp(1.8rem,3.4vw,3rem);font-weight:500}.calendar-controls{display:flex}.calendar-controls button{border:1px solid var(--line);background:var(--surface);min-width:46px;height:42px;color:var(--text);cursor:pointer;margin-left:-1px;font:.72rem DM Mono,monospace}.calendar-controls button:hover{border-color:var(--accent);color:var(--accent);position:relative}.planner-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:18px;display:grid}.calendar-panel,.day-panel{border:1px solid var(--line);background:var(--surface)}.weekday-row,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{border-bottom:1px solid var(--line)}.weekday-row span{color:var(--muted);text-align:center;text-transform:uppercase;padding:13px 8px;font:.65rem DM Mono,monospace}.calendar-day{border:1px solid var(--line);min-height:104px;color:var(--text);cursor:pointer;background:0 0;flex-direction:column;justify-content:space-between;align-items:flex-start;margin:-1px 0 0 -1px;padding:12px;display:flex;position:relative}.calendar-day:hover{z-index:1;background:#171d20;border-color:#645c4d}.calendar-day.is-selected{z-index:2;border-color:var(--accent);background:var(--accent-soft)}.calendar-day.is-today{overflow:hidden}.calendar-day.is-today .day-number{background:var(--accent);color:#0b0d0f;border-radius:50%;place-items:center;width:28px;height:28px;margin:-5px;display:grid}.day-weather-layer{z-index:0;pointer-events:none;position:absolute;inset:1px}.day-weather-icon{z-index:4;pointer-events:none;filter:drop-shadow(0 3px 5px #03060873);width:42px;height:42px;position:absolute;top:31px;right:8px}.day-weather-icon svg{width:100%;height:100%;display:block;overflow:visible}.day-weather-summary{z-index:4;color:#f4f1eadb;text-shadow:0 1px 5px #07090a;font:.58rem DM Mono,monospace;position:absolute;top:8px;right:9px}.weather-clear.is-weather-day .day-weather-layer{background:linear-gradient(145deg,#266082d1,#eea4427a)}.weather-clear.is-weather-night .day-weather-layer{background:linear-gradient(145deg,#10223af0,#2e3654c7)}.weather-cloudy .day-weather-layer{background:linear-gradient(145deg,#2d4f62cc,#63747b9e)}.weather-fog .day-weather-layer{background:linear-gradient(145deg,#415b65d1,#85929194)}.weather-rain .day-weather-layer{background:linear-gradient(145deg,#153d58eb,#32627ab3)}.weather-snow .day-weather-layer{background:linear-gradient(145deg,#3e6076db,#8ca9b0a3)}.weather-storm .day-weather-layer{background:linear-gradient(145deg,#1e2337f2,#4d445cb8)}.has-weather.is-weather-night .day-weather-layer{filter:brightness(.7)saturate(.85)}.current-time-line{z-index:3;background:linear-gradient(90deg, #03050647 0 var(--day-progress), #c9ad7817 var(--day-progress) 100%);pointer-events:none;position:absolute;inset:1px}.current-time-line:after{z-index:3;top:0;bottom:0;left:clamp(1px, var(--day-progress), calc(100% - 1px));background:var(--accent);content:"";width:1px;animation:1.25s ease-in-out infinite time-line-pulse;position:absolute;transform:translate(-50%);box-shadow:0 0 7px #c9ad7857}@keyframes time-line-pulse{0%,to{opacity:.72}50%{opacity:1}}.calendar-day.is-blank{cursor:default;background:#0d1012}.day-number{z-index:4;font:.78rem DM Mono,monospace;position:relative}.day-indicators{z-index:4;flex-wrap:wrap;align-items:center;gap:5px;display:flex;position:relative}.day-event-icon{width:20px;height:20px;color:var(--accent);border:1px solid #c9ad7861;place-items:center;display:inline-grid}.day-event-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.pending-dot,.done-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.pending-dot{background:var(--warm)}.done-dot{background:var(--accent)}.calendar-legend{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;gap:22px;padding:15px 18px;font:.65rem DM Mono,monospace;display:flex}.calendar-legend span{align-items:center;gap:7px;display:inline-flex}.day-panel{padding:22px}.selected-day-heading{border-bottom:1px solid var(--line);padding-bottom:20px}.selected-day-heading .eyebrow{margin-bottom:8px}.selected-day-heading h3{margin:0;font-size:1.28rem;font-weight:500;line-height:1.3}.owner-editor{border-bottom:1px solid var(--line);gap:18px;padding:20px 0;display:grid}.is-owner-display .owner-editor{display:none}.entry-method{gap:9px;display:grid}.entry-method>span{color:var(--muted);text-transform:uppercase;font:.62rem DM Mono,monospace}.entry-method form{grid-template-columns:minmax(0,1fr) 96px 54px;display:grid}.entry-method input,.entry-method select,.entry-method form button{border:1px solid var(--line);min-width:0;height:40px;color:var(--text);background:#0d1012;border-radius:0;padding:0 10px;font:.72rem Manrope,sans-serif}.entry-method select,.entry-method form button{text-transform:uppercase;margin-left:-1px;font:.62rem DM Mono,monospace}.entry-method input:focus,.entry-method select:focus{border-color:var(--accent);outline:none;position:relative}.entry-method form button{background:var(--accent);border-color:var(--accent);color:#0b0d0f;cursor:pointer}.icon-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.icon-picker button{border:1px solid var(--line);min-width:0;min-height:56px;color:var(--muted);cursor:pointer;background:#0d1012;place-items:center;gap:5px;padding:7px 2px;display:grid}.icon-picker button:hover{border-color:var(--accent);color:var(--accent)}.icon-picker button:disabled{opacity:.45;cursor:wait}.icon-picker svg,.status-indicator svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.icon-picker small{text-overflow:ellipsis;max-width:100%;font:.52rem DM Mono,monospace;overflow:hidden}.owner-feedback{min-height:18px;color:var(--warm);margin:0;font:.62rem DM Mono,monospace}.owner-feedback.is-error{color:#d7a49b}.task-summary{border-bottom:1px solid var(--line);color:var(--muted);text-transform:uppercase;justify-content:space-between;gap:12px;padding:16px 0;font:.63rem DM Mono,monospace;display:flex}.task-summary strong{color:var(--text);font-weight:500}.task-list{display:grid}.task-item{border-bottom:1px solid var(--line);grid-template-columns:30px minmax(0,1fr);align-items:start;gap:11px;padding:15px 0;display:grid}.task-item:has(.task-actions){grid-template-columns:30px minmax(0,1fr) auto}.task-item h4{margin:1px 0 4px;font-size:.88rem;font-weight:500}.task-item div>span{color:var(--warm);text-transform:uppercase;font:.62rem DM Mono,monospace}.task-item.is-done h4{color:var(--muted)}.task-item.is-done div>span{color:var(--accent)}.status-indicator{border:1px solid var(--warm);width:28px;height:28px;color:var(--warm);place-items:center;font:.72rem DM Mono,monospace;display:grid}.is-done .status-indicator{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.task-actions{gap:5px;display:flex}.task-actions button{border:1px solid var(--line);min-height:28px;color:var(--muted);cursor:pointer;text-transform:uppercase;background:0 0;padding:0 7px;font:.55rem DM Mono,monospace}.task-actions button:hover{border-color:var(--accent);color:var(--accent)}.task-actions button.is-danger:hover{color:#d7a49b;border-color:#9c6e67}.empty-tasks{margin:0;padding:24px 0 8px;font-size:.8rem}.calendar-privacy-note{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}.calendar-privacy-note span{color:var(--accent);letter-spacing:.08em;font:.64rem DM Mono,monospace}.calendar-privacy-note p{margin:9px 0 0;font-size:.74rem;line-height:1.55}@media (width<=1020px){.planner-layout{grid-template-columns:1fr}}@media (width<=650px){.planner-app{padding-bottom:70px}.owner-toolbar{align-items:stretch}.owner-toolbar,.owner-toolbar-actions{display:grid}.owner-weather-control{justify-items:stretch}.logout-button{margin:7px 0 0}.planner-toolbar{display:grid}.calendar-controls{width:100%}.calendar-controls button{flex:1}.weekday-row span{font-size:.58rem}.calendar-day{min-height:68px;padding:8px}.day-weather-icon{width:25px;height:25px;top:31px;right:3px}.day-weather-summary{font-size:.48rem;top:5px;right:5px}.day-event-icon{width:17px;height:17px}.day-event-icon svg{width:11px;height:11px}.calendar-legend{flex-wrap:wrap}.entry-method form{grid-template-columns:1fr;gap:6px}.entry-method select,.entry-method form button{margin:0}.icon-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.task-item:has(.task-actions){grid-template-columns:30px minmax(0,1fr)}.task-actions{grid-column:2}}@media (prefers-reduced-motion:reduce){.current-time-line:after{animation:none}}
