:root{--bg:#fff;--bg-alt:#f5f5f7;--text:#1a1a1a;--text-muted:#6b6b6b;--accent:#3b82f6;--border:#e5e5e5;--success:#059669;--danger:#dc2626;--focus:#0f172a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 8px 24px #0f172a14;--font-sans:"Inter", "SF Pro Text", "SF Pro Display", "Nunito", "Segoe UI", sans-serif}[data-theme=dark]{--bg:#1c1c1e;--bg-alt:#2c2c2e;--text:#f5f5f5;--text-muted:#b3b3b3;--accent:#3b82f6;--border:#3a3a3c;--success:#34d399;--danger:#f87171;--focus:#e2e8f0;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 12px 32px #00000059}[data-contrast=high]{--border:color-mix(in srgb, var(--text) 28%, var(--bg));--text-muted:color-mix(in srgb, var(--text) 68%, var(--bg))}[data-text-size=large]{font-size:18px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.4}body{min-width:320px;color:var(--text);background:var(--bg-alt)}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea,button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}button{cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}@media (hover:hover) and (pointer:fine){button:hover{transform:scale(1.02)}}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ghost{background:0 0}.muted-text{color:var(--text-muted)}.error{color:var(--danger)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4)}.stack{gap:var(--space-3);display:grid}.row{align-items:center;gap:var(--space-2);display:flex}.row.between{justify-content:space-between}.field{gap:var(--space-1);display:grid}.field input,.field select,.field textarea,.field-grid input,.field-grid select{background:var(--bg);width:100%;padding:10px 12px}.field-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.plain-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.done{color:var(--text-muted);text-decoration:line-through}.app-shell{grid-template-columns:1fr;min-height:100dvh;display:grid}.app-main{width:min(1200px,100%);padding:var(--space-4);margin:0 auto;padding-bottom:88px}.page{gap:var(--space-4);max-width:100%;display:grid}.page>*{max-width:100%}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.sidebar-nav{display:none}.bottom-nav{z-index:40;gap:var(--space-1);padding:var(--space-2);background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--text-muted);border-radius:var(--radius-md);padding:var(--space-1);place-items:center;gap:2px;font-size:.76rem;display:grid}.nav-item svg{width:18px;height:18px}.nav-item.active{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.auth-page{min-height:100dvh;padding:var(--space-4);place-items:center;display:grid}.auth-card{width:min(440px,100%);padding:var(--space-5)}.auth-card h1{font-size:1.75rem}.mode-row{gap:var(--space-1);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mode-row button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-bar{gap:var(--space-2);display:grid}.chip-row{gap:var(--space-2);flex-wrap:wrap;max-width:100%;display:flex}.chip{align-items:center;gap:var(--space-2);border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:6px 10px;display:inline-flex}.chip.selected{border-color:var(--accent);color:var(--accent)}.avatar-dot{border-radius:50%;width:10px;height:10px}.loading-wrap{justify-items:center;gap:var(--space-2);padding:var(--space-3);display:grid}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fab{right:var(--space-4);z-index:55;background:var(--accent);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-md);border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:fixed;bottom:84px}.list-create-form,.list-item-form{width:100%}.list-create-form input,.list-item-form input{min-width:0}.confirm-overlay{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:var(--space-4);background:#0f172a47;place-items:center;display:grid;position:fixed;inset:0}.confirm-dialog{width:min(420px,100%)}@media (width>=900px){.app-shell{grid-template-columns:228px minmax(0,1fr)}.sidebar-nav{align-content:start;gap:var(--space-3);height:100dvh;padding:var(--space-5) var(--space-3);background:var(--bg);border-right:1px solid var(--border);display:grid;position:sticky;top:0}.sidebar-brand{letter-spacing:.01em;font-size:1rem;font-weight:700}.sidebar-nav .nav-item{justify-content:start;gap:var(--space-2);padding:var(--space-2);grid-template-columns:18px auto;font-size:.9rem}.bottom-nav{display:none}.app-main{padding:var(--space-5);padding-bottom:var(--space-6)}.fab{bottom:var(--space-5);right:var(--space-5)}}.calendar-shell{gap:var(--space-4);display:grid}.calendar-header{z-index:30;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-columns:1fr;display:grid;position:sticky;top:0}.calendar-header>*{min-width:0}.header-identity{align-items:center;gap:var(--space-2);display:flex}.identity-mark{border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 20%, var(--bg));width:28px;height:28px;color:var(--accent);justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.calendar-nav{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.calendar-nav h2{font-size:1.1rem;font-weight:650}.header-actions{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.mobile-header-toggles{display:none}.calendar-filters{display:block}.view-switch{border:1px solid var(--border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.view-switch button{border:0;border-right:1px solid var(--border);border-radius:0;padding:8px 10px}.view-switch button:last-child{border-right:0}.view-switch .active{background:var(--accent);color:#fff}.calendar-grid{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));animation:.18s fadeIn;display:grid}.weekday-label{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding-bottom:var(--space-1);font-size:.75rem}.day-cell{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);min-height:clamp(92px,11vw,132px);padding:var(--space-2);gap:var(--space-1);text-align:left;grid-template-rows:auto 1fr auto;transition:border-color .18s,background .18s,box-shadow .18s;display:grid;overflow:hidden}.day-cell:hover,.day-cell:active,.day-cell:focus-visible{transform:none}.day-cell:hover{background:color-mix(in srgb, var(--accent) 3%, var(--bg));border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.day-cell.muted{color:var(--text-muted);background:color-mix(in srgb, var(--bg-alt) 78%, var(--bg))}.day-cell.today{box-shadow:inset 0 0 0 1px var(--accent)}.day-cell.selected{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.day-cell.range{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.date-label{justify-self:start;font-size:.82rem;font-weight:600}.event-preview{align-content:start;gap:4px;display:grid}.event-dot-row{flex-wrap:wrap;gap:4px;display:flex}.event-dot{border-radius:999px;width:6px;height:6px}.preview-title{max-width:100%;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;display:block;overflow:hidden}.agenda-layout{gap:var(--space-3);display:grid}.agenda-list{padding:var(--space-4)}.day-events{gap:var(--space-2);display:grid}.calendar-panel-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:60;background:#11182747;border:0;padding:0;animation:.18s fadeIn;position:fixed;inset:0}.calendar-panel{background:var(--bg);border-left:1px solid var(--border);width:min(430px,100vw);height:100dvh;box-shadow:var(--shadow-md);padding:var(--space-4);gap:var(--space-3);z-index:61;grid-template-rows:auto 1fr;animation:.22s slideInRight;display:grid;position:fixed;top:0;right:0}.calendar-panel header{justify-content:space-between;align-items:center;display:flex}.panel-events{gap:var(--space-2);align-content:start;padding-right:2px;display:grid;overflow:auto}.range-status{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:6px 10px;font-size:.82rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.event-card{justify-content:space-between;align-items:start;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);padding:var(--space-3);display:flex}.event-card.compact{padding:var(--space-2)}.event-main{gap:2px;display:grid}.event-main h4{font-size:.95rem;font-weight:600}.event-main p,.event-main small{color:var(--text-muted);font-size:.84rem}.event-meta{gap:var(--space-2);justify-items:end;display:grid}.event-type{color:var(--text-muted);text-transform:capitalize;align-items:center;gap:4px;font-size:.74rem;display:inline-flex}.event-type svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:14px;height:14px}.avatar-row{gap:4px;display:flex}.event-actions{gap:var(--space-1);display:inline-flex}.event-actions button{border-radius:var(--radius-sm);border:1px solid var(--border);padding:4px 8px;font-size:.76rem}.event-actions button.danger{color:var(--danger)}.sheet-overlay{z-index:70;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a42;align-items:end;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.sheet{background:var(--bg);border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:var(--radius-lg) 0 0 0;width:min(460px,100%);max-height:90dvh;padding:var(--space-4);gap:var(--space-3);margin-left:auto;animation:.22s slideInRight;display:grid;overflow:auto}.sheet-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.toggle-field,.theme-toggle{align-items:center;gap:var(--space-2);display:inline-flex}.settings-grid{gap:var(--space-3);display:grid}.settings-inline{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.theme-chip{border:1px solid var(--border);color:var(--text-muted);background:var(--bg);border-radius:999px;padding:6px 10px}.theme-chip.active{border-color:var(--accent);color:var(--accent)}@media (width<=899px){.app-main{padding:var(--space-3);padding-bottom:86px;overflow-x:clip}.calendar-header{position:sticky;top:0}.header-actions{gap:var(--space-2);flex-wrap:wrap;display:none}.header-actions.mobile-open{display:flex}.calendar-filters{display:none}.calendar-filters.mobile-open{display:block}.mobile-header-toggles{gap:var(--space-2);flex-wrap:wrap;display:flex}.mobile-header-toggles .theme-chip{text-align:center;flex:1;min-width:0}.view-switch{width:100%}.view-switch button{flex:1}.calendar-grid{gap:var(--space-1);max-width:100%}.day-cell{min-height:72px;padding:4px}.date-label{font-size:.76rem}.preview-title{display:none}.event-dot{width:5px;height:5px}.list-create-form,.list-item-form{flex-wrap:wrap}.list-create-form input,.list-item-form input{flex:100%;width:100%;min-width:0}.list-create-form select,.list-item-form select,.list-create-form button,.list-item-form button{flex:auto}.plain-list li{min-width:0}.plain-list li label{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.calendar-panel{border-left:0;border-top:1px solid var(--border);border-radius:16px 16px 0 0;width:100%;height:min(72dvh,560px);animation:.22s slideUp;inset:auto 0 0}.sheet{border-left:0;border-top:1px solid var(--border);border-radius:16px 16px 0 0;width:100%;max-height:86dvh;animation:.22s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}
