.nav{height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0;z-index:20}.nav-brand{font-family:"DM Serif Display",serif;font-size:1.25rem;color:var(--accent);background:none;border:none;cursor:pointer;padding:0}.nav-today{font-size:.78rem;font-weight:600;color:var(--accent);background:none;border:.5px solid var(--accent);border-radius:6px;padding:4px 10px;font-family:DM Sans,sans-serif;transition:all .15s}.nav-today:hover{background:var(--accent);color:#fff}.home{padding:32px 20px;overflow-y:auto;height:100%}.home-greeting{font-family:"DM Serif Display",serif;font-size:2rem;color:var(--ink);margin-bottom:28px}.home-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:32px}.home-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:all .2s;text-align:center}.home-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1a16121f;border-color:var(--accent2)}.home-tile:active{transform:translateY(0)}.home-tile-icon{font-size:2rem;line-height:1}.home-tile-label{font-size:.9rem;font-weight:600;color:var(--ink)}.home-tile-count{font-size:.78rem;color:var(--ink2)}.home-section-title{font-family:"DM Serif Display",serif;font-size:1.1rem;color:var(--ink);margin-bottom:12px}.home-event-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;text-align:left;transition:all .15s;gap:12px}.home-event-row:hover{border-color:var(--accent2)}.home-event-name{font-size:.88rem;font-weight:500;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-event-meta{font-size:.75rem;color:var(--ink2);flex-shrink:0}.calsheet{min-height:85dvh}.calsheet-time{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:.92rem;font-family:DM Sans,sans-serif;background:var(--bg);color:var(--ink);outline:none;margin-bottom:10px;-webkit-appearance:none;transition:border-color .15s;display:block}.calsheet-time:focus{border-color:var(--accent)}.calsheet-recurs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.calsheet-recur-btn{padding:5px 12px;border-radius:99px;border:1px solid var(--border);background:transparent;font-size:.78rem;font-weight:500;color:var(--ink2);transition:all .15s}.calsheet-recur-btn:hover{border-color:var(--accent);color:var(--accent)}.calsheet-recur-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.calsheet-colors{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.calsheet-swatch{width:30px;height:30px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s;flex-shrink:0}.calsheet-swatch:hover{transform:scale(1.15)}.calsheet-swatch.active{border-color:var(--ink);transform:scale(1.2)}.cal-ev-sheet{min-height:40dvh;max-height:70dvh}.cal-ev-sheet-title{font-family:"DM Serif Display",serif;font-size:1.2rem;padding-left:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-ev-sheet-body{display:flex;flex-direction:column;gap:12px;padding-top:8px;padding-bottom:8px}.cal-ev-sheet-row{display:flex;align-items:flex-start;gap:12px;font-size:.92rem;color:var(--ink)}.cal-ev-sheet-icon{font-size:1rem;flex-shrink:0;margin-top:1px}.cal-ev-sheet-empty{font-size:.85rem;color:var(--ink2);opacity:.5;text-align:center;padding:12px 0}.cal-month{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;background:var(--bg)}.cal-month-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px;background:var(--surface);border-bottom:.5px solid var(--border);flex-shrink:0}.cal-month-title{font-family:"DM Serif Display",serif;font-size:1.1rem;color:var(--ink);font-weight:400}.cal-month-today{font-size:.78rem;font-weight:600;color:var(--accent);background:none;border:.5px solid var(--accent);border-radius:6px;padding:4px 10px;font-family:DM Sans,sans-serif;transition:all .15s}.cal-month-today:hover{background:var(--accent);color:#fff}.cal-month-days-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border-bottom:.5px solid var(--border);flex-shrink:0}.cal-month-day-name{text-align:center;font-size:11px;font-weight:500;color:var(--ink2);padding:6px 0}.cal-month-day-name.is-we{color:var(--accent)}.cal-month-grid-wrap{flex:1;overflow:hidden;position:relative}.cal-month-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr}@keyframes slideInNext{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInPrev{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}.cal-month-grid.slide-in-next{animation:slideInNext .25s cubic-bezier(.4,0,.2,1) forwards}.cal-month-grid.slide-in-prev{animation:slideInPrev .25s cubic-bezier(.4,0,.2,1) forwards}.cal-month-cell{border-right:.5px solid var(--border);border-bottom:.5px solid var(--border);padding:4px;cursor:pointer;min-height:0;overflow:hidden;transition:background .1s}.cal-month-cell:hover{background:var(--surface2)}.cal-month-cell:nth-child(7n){border-right:none}.cal-month-cell.out-of-month{background:transparent}.cal-month-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--ink2);margin:0 auto 2px}.cal-month-cell.is-we .cal-month-num{color:var(--accent)}.cal-month-cell.out-of-month .cal-month-num{color:var(--border)}.cal-month-num.is-today{background:var(--accent);color:#fff}.cal-month-num.is-active{border:2px solid var(--accent);color:var(--accent)}.cal-month-evs{display:flex;flex-direction:column;gap:2px;overflow:hidden}.cal-month-ev{font-size:10px;color:#fff;border-radius:3px;padding:1px 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:opacity .1s}.cal-month-ev:hover{opacity:.85}.cal-month-more{font-size:10px;color:var(--ink2);padding:0 4px}.cal-day-sheet{min-height:40dvh;max-height:80dvh}.cal-day-sheet-title{font-family:"DM Serif Display",serif;font-size:1.1rem;font-weight:400;color:var(--ink)}.cal-day-sheet-body{display:flex;flex-direction:column;gap:8px;padding-top:4px;padding-bottom:8px}.cal-day-sheet-ev{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent2);border-radius:10px}.cal-day-sheet-ev-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.cal-day-sheet-ev-name{font-size:.9rem;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-sheet-ev-time{font-size:.75rem;font-weight:600}.cal-day-sheet-ev-meta{font-size:.74rem;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-day-sheet-ev-actions{display:flex;gap:4px;flex-shrink:0}.cal-day-sheet-btn{background:none;border:none;padding:6px;border-radius:8px;font-size:.9rem;cursor:pointer;transition:background .15s}.cal-day-sheet-btn:hover{background:var(--surface2)}.cal-day-sheet-btn.danger:hover{background:#fde8e8}.calendar{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.cal-ticker-wrap{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;box-shadow:0 2px 8px #1a16120d}.cal-ticker-month{padding:10px 16px 4px;font-family:"DM Serif Display",serif;font-size:.88rem;color:var(--ink2)}.cal-ticker{display:flex;overflow-x:auto;padding:6px 10px 12px;gap:4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.cal-ticker::-webkit-scrollbar{display:none}.cal-pill{flex:0 0 52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 5px;border-radius:12px;border:none;background:transparent;cursor:pointer;scroll-snap-align:center;transition:background .15s}.cal-pill:hover,.cal-pill.is-active{background:var(--surface2)}.cal-pill-name{font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2)}.cal-pill.is-we .cal-pill-name{color:var(--accent)}.cal-pill-num{font-size:.9rem;font-weight:600;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ink2)}.cal-pill.is-today .cal-pill-num{background:var(--accent);color:#fff}.cal-pill.is-active:not(.is-today) .cal-pill-num{border:2px solid var(--accent);color:var(--accent)}.cal-pill-dots{display:flex;gap:3px;min-height:5px}.cal-pill-dot{width:4px;height:4px;border-radius:50%;background:var(--accent2)}.cal-planning{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.cal-day{padding:0 16px;scroll-margin-top:86px}.cal-day-hdr{display:flex;align-items:center;gap:10px;padding:14px 0 8px;position:sticky;top:0;background:var(--bg);z-index:2;transition:background .15s}.cal-day-hdr.is-active{background:var(--surface2);border-radius:10px;padding-left:8px;padding-right:8px}.cal-day-hdr.is-today{border-left:3px solid var(--accent);padding-left:10px;margin-left:-3px}.cal-day-hdr.is-active.is-today{background:color-mix(in srgb,var(--accent2) 20%,var(--bg))}.cal-day-num{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;flex-shrink:0;color:var(--ink2)}.cal-day-hdr.is-today .cal-day-num{background:var(--accent);color:#fff}.cal-day-hdr.is-active:not(.is-today) .cal-day-num{border:2px solid var(--accent);color:var(--accent)}.cal-day-lbl{font-size:.78rem;font-weight:600;color:var(--ink2)}.cal-day-hdr.is-today .cal-day-lbl{color:var(--accent)}.cal-day-hdr.is-active .cal-day-lbl{color:var(--ink)}.cal-day-lbl.is-we{color:var(--accent)}.cal-day-line{flex:1;height:1px;background:var(--border)}.cal-day-hdr.is-today .cal-day-line{background:var(--accent2)}.cal-day-empty{padding:4px 0 14px;font-size:.8rem;color:var(--ink2);opacity:.4}.cal-ev{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent2);border-radius:12px;margin-bottom:6px}.cal-ev-time{font-size:.72rem;font-weight:700;color:var(--accent);min-width:38px;padding-top:2px;flex-shrink:0}.cal-ev-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cal-ev-name{font-size:.9rem;font-weight:500;color:var(--ink)}.cal-ev-note{font-size:.74rem;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-ev-del{background:none;border:none;color:var(--ink2);font-size:.7rem;padding:3px 5px;border-radius:5px;opacity:0;transition:opacity .15s;flex-shrink:0}.cal-ev:hover .cal-ev-del{opacity:.5}.cal-ev-del:hover{opacity:1!important;color:var(--red)}.cal-fab{position:absolute;right:20px;bottom:24px;width:52px;height:52px;border-radius:50%;background:var(--accent);border:none;color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #c4581a66;transition:transform .15s;z-index:10}.cal-fab:hover{transform:scale(1.05)}.cal-fab:active{transform:scale(.95)}.cal-time-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.cal-time-row select{flex:1;margin-bottom:0}.cal-time-sep{font-weight:700;color:var(--ink2);flex-shrink:0}.cal-ev.color-blue{border-left-color:#3b82f6}.cal-ev.color-green{border-left-color:#10b981}.cal-ev.color-purple{border-left-color:#8b5cf6}.cal-ev.color-red{border-left-color:#ef4444}.cal-ev.color-yellow{border-left-color:#f59e0b}.cal-ev.color-orange{border-left-color:#f97316}.cal-ev.color-blue .cal-ev-time{color:#3b82f6}.cal-ev.color-green .cal-ev-time{color:#10b981}.cal-ev.color-purple .cal-ev-time{color:#8b5cf6}.cal-ev.color-red .cal-ev-time{color:#ef4444}.cal-ev.color-yellow .cal-ev-time{color:#92400e}.cal-ev.color-orange .cal-ev-time{color:#9a3412}.cal-view-header{display:flex;justify-content:flex-end;padding:8px 12px;background:var(--surface);border-bottom:.5px solid var(--border);flex-shrink:0}.cal-toggle{display:flex;background:var(--surface2);border-radius:8px;padding:3px;gap:2px}.cal-toggle-btn{padding:5px 14px;border-radius:6px;border:none;background:transparent;font-size:.78rem;font-weight:500;color:var(--ink2);transition:all .15s}.cal-toggle-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1a16121a}.lists{display:flex;height:100%;overflow:hidden}.lists-sidebar{width:200px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;gap:8px}.sidebar-title{font-family:"DM Serif Display",serif;font-size:1rem;color:var(--ink);padding:0 4px;flex-shrink:0}.sidebar-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sidebar-empty{font-size:.82rem;color:var(--ink2);padding:8px 4px}.sidebar-item{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-radius:10px;border:none;background:transparent;color:var(--ink);font-size:.85rem;font-weight:500;text-align:left;transition:background .15s;cursor:pointer;gap:8px}.sidebar-item:hover{background:var(--surface2)}.sidebar-item.active{background:var(--ink);color:var(--bg)}.sidebar-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-item-count{font-size:.72rem;opacity:.6;flex-shrink:0}.sidebar-new{display:flex;gap:6px;flex-shrink:0}.sidebar-new input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:.82rem;background:var(--bg);color:var(--ink);outline:none;min-width:0}.sidebar-new input:focus{border-color:var(--accent)}.sidebar-add{padding:8px 12px;font-size:1.1rem;flex-shrink:0}.lists-main{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:20px;gap:16px}.lists-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--ink2)}.lists-empty span{font-size:2.5rem}.lists-empty p{font-size:.9rem}.lists-main-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.lists-main-title{font-family:"DM Serif Display",serif;font-size:1.4rem;color:var(--ink)}.lists-delete{font-size:.75rem;padding:6px 12px;border-radius:8px}.task-add-row{display:flex;gap:8px;flex-shrink:0}.task-add-row input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:10px;font-size:.88rem;background:var(--bg);color:var(--ink);outline:none;transition:border-color .15s}.task-add-row input:focus{border-color:var(--accent)}.tasks-empty{font-size:.85rem;color:var(--ink2);opacity:.6;text-align:center;padding:20px 0}.task-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.task-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:opacity .15s}.task-item.done{opacity:.5}.task-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:transparent;transition:all .15s}.task-check.done{background:var(--green);border-color:var(--green);color:#fff}.task-text{flex:1;font-size:.88rem;color:var(--ink)}.task-item.done .task-text{text-decoration:line-through;color:var(--ink2)}.task-del{background:none;border:none;color:var(--ink2);font-size:.7rem;padding:3px 5px;border-radius:5px;opacity:0;transition:opacity .15s;flex-shrink:0}.task-item:hover .task-del{opacity:.4}.task-del:hover{opacity:1!important;color:var(--red)}@media (max-width: 500px){.lists-sidebar{width:140px}.sidebar-title{font-size:.85rem}}.app{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app-main{flex:1;overflow:hidden;position:relative}:root{--bg: #F5F0E8;--surface: #FDFAF4;--surface2: #EDE8DC;--ink: #1A1612;--ink2: #6B6358;--accent: #C4581A;--accent2: #E8A87C;--green: #2D6A4F;--red: #C0392B;--border: #D8D0C4;--shadow: 0 2px 12px rgba(26,22,18,.08);--nav-h: 52px;--radius: 14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;height:100dvh;overflow:hidden;font-family:DM Sans,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}*:focus:not(:focus-visible){outline:none}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.btn{padding:10px 20px;border-radius:10px;border:none;font-size:.88rem;font-weight:600;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#a8451a}.btn-ghost{background:var(--surface2);color:var(--ink2)}.btn-ghost:hover{color:var(--ink)}.btn-danger{background:transparent;color:var(--red);border:1px solid var(--red)}.sheet-bg{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#1a161273;z-index:100}.sheet-bg.open{display:block}.sheet{position:fixed;bottom:0;left:0;right:0;z-index:101;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -4px 32px #1a161226;transform:translateY(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);max-width:560px;margin:0 auto;overflow-y:auto;max-height:92dvh;display:flex;flex-direction:column}.sheet.open{transform:translateY(0)}.sheet-handle{width:36px;height:4px;background:var(--border);border-radius:99px;margin:12px auto 0;display:block;flex-shrink:0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;flex-shrink:0}.sheet-head h3{font-family:"DM Serif Display",serif;font-size:1.2rem}.sheet-close{background:none;border:none;font-size:1rem;color:var(--ink2);padding:6px 8px;border-radius:8px;line-height:1}.sheet-body{padding:0 20px;flex:1;overflow-y:auto}.sheet-body input,.sheet-body select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:.92rem;background:var(--bg);color:var(--ink);outline:none;transition:border-color .15s;margin-bottom:10px;-webkit-appearance:none}.sheet-body input:focus,.sheet-body select:focus{border-color:var(--accent)}.sheet-label{font-size:.65rem;font-weight:700;color:var(--ink2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;display:block}.sheet-footer{display:flex;gap:10px;justify-content:flex-end;padding:12px 20px;padding-bottom:max(16px,env(safe-area-inset-bottom,0px) + 8px);border-top:1px solid var(--border);flex-shrink:0}
