*{box-sizing:border-box;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text}html,body{margin:0;padding:0;width:100%;max-width:100vw;overflow-x:hidden;background:var(--page)}body{font-family:var(--font);font-size:var(--fs-md);line-height:1.45;color:var(--ink);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}::selection{background:color-mix(in srgb,var(--focus) 28%,transparent);color:inherit}input,textarea{caret-color:var(--focus)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:padding-box;border:3px solid transparent}.press{transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease,color var(--t-fast) ease}.press:active:not(:disabled){transform:scale(.97)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-3);transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease,color var(--t-fast) ease}.icon-btn:hover{background:var(--panel);color:var(--ink)}.icon-btn:active{transform:scale(.94)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:34px;padding:0 var(--s4);border-radius:var(--r-ctl);border:1px solid transparent;font-size:var(--fs-md);font-weight:600;white-space:nowrap;transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease,border-color var(--t-fast) ease,color var(--t-fast) ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.45}.app{height:100vh;width:100%;display:flex;flex-direction:column;background:var(--page);color:var(--ink);overflow:hidden;position:relative}.app.has-bg{--leaf-fill: color-mix(in srgb, var(--leaf) 82%, transparent)}.app-loading{height:100vh;display:grid;place-items:center;background:var(--page);color:var(--ink-3);font-family:var(--font);font-size:var(--fs-sm)}.background-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--page);pointer-events:none;z-index:0}.migration-banner{position:relative;z-index:2;margin:var(--s2) var(--s3) 0;padding:var(--s2) var(--s3);border-radius:var(--r-ctl);background:var(--warn-surface);color:var(--warn);font-size:var(--fs-sm);font-weight:600}.titlebar{display:flex;align-items:center;gap:var(--s2);height:48px;padding-left:var(--s3);flex-shrink:0;background:var(--panel);border-bottom:1px solid var(--line);-webkit-app-region:drag;position:relative;z-index:10}.titlebar-search{flex:1;min-width:0;display:flex;align-items:center;-webkit-app-region:no-drag}.titlebar-actions{display:flex;align-items:center;gap:var(--s1);flex-shrink:0;-webkit-app-region:no-drag}.loading-indicator{display:flex;align-items:center;justify-content:center;width:30px;height:30px;opacity:0;transition:opacity var(--t-med) ease}.loading-indicator.visible{opacity:1}.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--ink-2);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.settings-toggle{width:34px;height:34px}.window-controls{display:flex;align-items:center;align-self:stretch;flex-shrink:0;margin-left:var(--s1);-webkit-app-region:no-drag}.window-controls:before{content:"";width:1px;height:20px;margin-right:var(--s1);background:var(--line)}.control-btn{width:44px;height:100%;display:flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:var(--ink-2);transition:background-color var(--t-fast) ease,color var(--t-fast) ease}.control-btn:hover{background:var(--line);color:var(--ink)}.control-btn.close:hover{background:var(--danger);color:#fff}.workspace{flex:1;min-height:0;position:relative;z-index:1;display:flex}.folders-section{flex:1;min-width:0;overflow-y:auto;padding:var(--s3) var(--s2) 88px var(--s3);scroll-behavior:smooth}.folders-droppable{display:flex;flex-direction:column;gap:var(--s4)}.folder-draggable-wrapper{position:relative}.empty-folders-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--s6) var(--s4)}.empty-folders-content{width:100%;max-width:340px;background:var(--leaf-fill, var(--leaf));border:1px solid var(--line);border-radius:var(--r-sheet);padding:var(--s6) var(--s5) var(--s5);position:relative}.empty-folders-content:before{content:"";position:absolute;top:-9px;left:var(--s5);width:214px;height:9px;border-radius:3px 3px 0 0;background:var(--divider-edge)}.empty-folders-icon{color:var(--ink-3);margin-bottom:var(--s3)}.empty-folders-title{margin:0 0 var(--s1);font-size:var(--fs-xl);font-weight:650;letter-spacing:-.01em;color:var(--ink)}.empty-folders-description{margin:0 0 var(--s5);font-size:var(--fs-md);color:var(--ink-2);max-width:32ch}.empty-folders-create-btn{background:var(--ink);color:var(--on-ink)}.empty-folders-create-btn:hover{background:color-mix(in srgb,var(--ink) 86%,var(--page))}.fab-add-todo{position:absolute;right:44px;bottom:var(--s4);z-index:20;height:40px;padding:0 var(--s4) 0 var(--s3);gap:var(--s1);border-radius:var(--r-sheet);background:var(--ink);color:var(--on-ink);box-shadow:var(--pop-shadow)}.fab-add-todo:hover{background:color-mix(in srgb,var(--ink) 86%,var(--page))}.folder-popup-overlay,.todo-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:56px var(--s3) var(--s3);overflow-y:auto;background:var(--scrim);animation:scrim-in var(--t-med) ease both}.folder-popup,.todo-modal{width:100%;background:var(--leaf);color:var(--ink);border-radius:var(--r-sheet);box-shadow:var(--sheet-shadow);animation:sheet-in .2s var(--ease-out) both;display:flex;flex-direction:column;flex-shrink:0;margin-bottom:auto}.folder-popup{max-width:380px}.todo-modal{max-width:540px}@keyframes scrim-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(8px) scale(.985)}}.folder-popup-header,.todo-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s3) var(--s3) var(--s2) var(--s5)}.folder-popup-header h3,.todo-modal-header h3{margin:0;font-size:var(--fs-lg);font-weight:650;letter-spacing:-.005em}.folder-popup-content{padding:var(--s1) var(--s5) var(--s5)}.folder-popup-content p{margin:0 0 var(--s5);color:var(--ink-2);line-height:1.5}.folder-popup-content p strong{color:var(--ink)}.folder-popup-input{width:100%;height:38px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);font-size:var(--fs-md);margin-bottom:var(--s4);transition:border-color var(--t-fast) ease}.folder-popup-input:focus{outline:none;border-color:var(--ink)}.folder-popup-input::placeholder,.input::placeholder{color:var(--ink-3)}.folder-popup-actions,.todo-modal-actions{display:flex;justify-content:flex-end;gap:var(--s2)}.folder-popup-cancel,.todo-modal-cancel{background:transparent;color:var(--ink-2);border-color:var(--line)}.folder-popup-cancel:hover,.todo-modal-cancel:hover{background:var(--panel);color:var(--ink)}.folder-popup-create,.todo-modal-create{background:var(--ink);color:var(--on-ink);min-width:84px}.folder-popup-create:hover:not(:disabled),.todo-modal-create:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 86%,var(--page))}.folder-popup-delete{background:var(--danger);color:#fff}.folder-popup-delete:hover{background:color-mix(in srgb,var(--danger) 88%,#000)}.todo-modal-content{padding:0 var(--s5) var(--s5);overflow:visible;display:flex;flex-direction:column;gap:var(--s4)}.input-row{display:flex}.input{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font-size:var(--fs-lg);line-height:1.45;padding:var(--s2) 0;transition:border-color var(--t-fast) ease}.input:focus{outline:none;border-bottom-color:var(--ink)}.input-textarea{resize:none;overflow:hidden;min-height:40px}.input-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}.input-option-group{display:flex;flex-direction:column;gap:6px;min-width:0}.input-option-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}.date-input-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.date-input-row .date-input{flex:1 1 180px;min-width:0}.notification-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.notification-checkbox-label{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 var(--s3) 0 var(--s2);border:1px solid var(--line);border-radius:var(--r-ctl);font-size:var(--fs-md);color:var(--ink-2);cursor:pointer;transition:border-color var(--t-fast) ease,color var(--t-fast) ease}.notification-checkbox-label:hover{border-color:var(--ink-3);color:var(--ink)}.notification-checkbox-label:has(:checked){border-color:var(--ink);color:var(--ink)}.notification-checkbox{width:15px;height:15px;margin:0;accent-color:var(--ink);cursor:pointer}.notification-duration-select,.notification-type-select{min-width:108px}.todo-modal-attachments{display:flex;flex-direction:column;gap:6px}.attachments-upload-area{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s3);border:1px dashed var(--line);border-radius:var(--r-ctl);transition:border-color var(--t-fast) ease,background-color var(--t-fast) ease}.todo-modal-attachments.drag-over .attachments-upload-area{border-color:var(--focus);border-style:solid;background:color-mix(in srgb,var(--focus) 8%,transparent)}.attachments-upload-btn{height:30px;padding:0 var(--s3);font-size:var(--fs-sm);background:var(--panel);color:var(--ink)}.attachments-upload-btn:hover{background:var(--line)}.attachments-drop-hint{font-size:var(--fs-sm);color:var(--ink-3)}.attachments-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:var(--s2)}.attachment-preview-tile{position:relative;aspect-ratio:1;border-radius:var(--r-ctl);overflow:hidden;background:var(--panel)}.attachment-preview-tile img{width:100%;height:100%;object-fit:cover;display:block}.attachment-preview-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#15171cb8;color:#fff;opacity:0;transition:opacity var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.attachment-preview-tile:hover .attachment-preview-remove,.attachment-preview-remove:focus-visible{opacity:1}.attachment-preview-remove:active{transform:scale(.92)}.todo-modal-actions{padding-top:var(--s1)}.todo-list{list-style:none;margin:0;padding:0}.folder-add-todo-row{display:flex;align-items:center;gap:6px;width:100%;height:36px;padding:0 var(--s3) 0 42px;border:0;background:transparent;color:var(--ink-3);font-size:var(--fs-md);text-align:left;border-radius:0 0 var(--r-sheet) var(--r-sheet);transition:color var(--t-fast) ease,background-color var(--t-fast) ease}.folder-add-todo-row:hover{color:var(--ink);background:color-mix(in srgb,var(--tab) 8%,transparent)}@media (max-width: 480px){.input-options{grid-template-columns:repeat(2,minmax(0,1fr))}.input-option-group.folder-group{grid-column:span 2}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.spinner{animation:spin 1.4s linear infinite!important}}:root{color-scheme:light;--page: #eef1f5;--leaf: #ffffff;--panel: #e4e8ee;--rule: #e6e9ef;--line: #d3d9e2;--ink: #15171c;--ink-2: #464c59;--ink-3: #69707d;--on-ink: #ffffff;--hole: #eef1f5;--danger: #c8261b;--danger-surface: #fbe9e7;--warn: #9a5b00;--warn-surface: #fbf0dc;--focus: #2f4bd8;--hue-0: #f08a24;--hue-0-ink: #1d0f02;--hue-1: #f2c230;--hue-1-ink: #1f1700;--hue-2: #3e9f4b;--hue-2-ink: #03190a;--hue-3: #14918c;--hue-3-ink: #011a19;--hue-4: #2f4bd8;--hue-4-ink: #ffffff;--hue-5: #b8327f;--hue-5-ink: #ffffff;--hue-6: #9b4e2a;--hue-6-ink: #ffffff;--scrim: rgba(21, 23, 28, .42);--sheet-shadow: 0 18px 40px -12px rgba(21, 30, 48, .32), 0 2px 6px rgba(21, 30, 48, .08);--pop-shadow: 0 10px 24px -8px rgba(21, 30, 48, .28), 0 1px 3px rgba(21, 30, 48, .08);--hole-shadow: inset 0 1px 2px rgba(21, 30, 48, .22);--divider-edge: linear-gradient(90deg, var(--hue-0) 0 28px, transparent 0 31px, var(--hue-1) 0 59px, transparent 0 62px, var(--hue-2) 0 90px, transparent 0 93px, var(--hue-3) 0 121px, transparent 0 124px, var(--hue-4) 0 152px, transparent 0 155px, var(--hue-5) 0 183px, transparent 0 186px, var(--hue-6) 0 214px);--font: "Segoe UI Variable Text", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--mono: "Cascadia Mono", "Cascadia Code", Consolas, ui-monospace, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--r-ctl: 6px;--r-sheet: 10px;--ease-out: cubic-bezier(.23, 1, .32, 1);--t-fast: .12s;--t-med: .18s;--bg-primary: var(--leaf);--bg-secondary: var(--page);--bg-tertiary: var(--panel);--text-primary: var(--ink);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--border-color: var(--line);--input-bg: var(--leaf);--input-border: var(--line);--danger-color: var(--danger)}[data-theme=dark]{color-scheme:dark;--page: #15171b;--leaf: #1d2025;--panel: #23262c;--rule: #2a2e35;--line: #363b44;--ink: #eceef2;--ink-2: #b6bcc7;--ink-3: #8d94a1;--on-ink: #15171b;--hole: #15171b;--danger: #ff6b5e;--danger-surface: #3a1f1c;--warn: #f0b04a;--warn-surface: #352a17;--focus: #8ea0ff;--hue-0: #f08a24;--hue-0-ink: #1d0f02;--hue-1: #e9b928;--hue-1-ink: #1f1700;--hue-2: #48ab55;--hue-2-ink: #03190a;--hue-3: #1aa39d;--hue-3-ink: #011a19;--hue-4: #4d66ea;--hue-4-ink: #ffffff;--hue-5: #c9418f;--hue-5-ink: #ffffff;--hue-6: #b0603a;--hue-6-ink: #ffffff;--scrim: rgba(0, 0, 0, .58);--sheet-shadow: 0 18px 44px -12px rgba(0, 0, 0, .7), 0 2px 6px rgba(0, 0, 0, .4);--pop-shadow: 0 10px 28px -8px rgba(0, 0, 0, .7), 0 1px 3px rgba(0, 0, 0, .4);--hole-shadow: inset 0 1px 2px rgba(0, 0, 0, .6)}.todo-list>li{position:relative}.todo-item{display:flex;align-items:flex-start;gap:10px;min-height:42px;padding:10px var(--s2) 10px var(--s3);border-bottom:1px solid var(--rule);background:transparent;cursor:grab;transition:background-color var(--t-fast) ease}.todo-item:hover{background:color-mix(in srgb,var(--tab, var(--ink)) 5%,transparent)}.todo-item.drag-over{background:color-mix(in srgb,var(--focus) 9%,transparent);box-shadow:inset 0 0 0 1px var(--focus)}.checkbox-wrapper{position:relative;flex-shrink:0;display:flex;margin-top:1px;cursor:pointer}.checkbox{position:absolute;opacity:0;width:1px;height:1px;margin:0}.checkmark{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--hole);box-shadow:var(--hole-shadow);color:var(--tab-ink, var(--on-ink));display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,border-color var(--t-fast) ease,box-shadow var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.checkmark svg{opacity:0;transform:scale(.6);transition:opacity var(--t-fast) ease,transform var(--t-med) var(--ease-out)}.checkbox-wrapper:hover .checkmark{border-color:var(--ink-3)}.checkbox-wrapper:active .checkmark{transform:scale(.9)}.checkbox:focus-visible~.checkmark{outline:2px solid var(--focus);outline-offset:2px}.checkbox:checked~.checkmark{background:var(--tab, var(--ink));border-color:var(--tab, var(--ink));box-shadow:none}.checkbox:checked~.checkmark svg{opacity:1;transform:scale(1)}.priority-dot{display:none}.priority-dot.priority-high{display:block;position:absolute;top:-2px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px var(--leaf)}.todo-item.done .priority-dot{display:none}.todo-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.todo-text-row{display:flex;align-items:flex-start;gap:var(--s1)}.todo-text{flex:1;min-width:0;font-size:var(--fs-md);line-height:1.45;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap}.todo-item:has(.priority-low) .todo-text{color:var(--ink-2)}.todo-item.done .todo-text{color:var(--ink-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink-3) 70%,transparent)}.todo-actions-row{display:flex;flex-shrink:0}.todo-actions-row:empty{display:none}.action-btn{width:24px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease}.action-btn:hover,.action-btn.open{background:var(--panel);color:var(--ink)}.todo-link{color:var(--focus);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;cursor:pointer}.highlight{background:color-mix(in srgb,var(--hue-1) 55%,transparent);color:inherit;border-radius:2px;padding:0 1px}.todo-meta{display:flex;flex-wrap:wrap;gap:6px}.todo-meta:empty{display:none}.label-badge,.due-date{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:4px;font-size:var(--fs-xs);line-height:1;white-space:nowrap}.label-badge{background:var(--panel);color:var(--ink-2);font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis}.due-date{font-family:var(--mono);color:var(--ink-2);border:1px solid var(--line)}.due-date.warning{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-surface)}.due-date.overdue{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:var(--danger-surface);font-weight:600}.todo-item.done .due-date{color:var(--ink-3);border-color:var(--rule);background:transparent;font-weight:400}.notes-display{margin-top:2px;padding:var(--s2) 10px;border-radius:var(--r-ctl);background:var(--page);color:var(--ink-2);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text}.attachments-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.attachment-tile{position:relative;width:56px;height:56px;border-radius:var(--r-ctl);overflow:hidden;background:var(--panel);cursor:zoom-in;transition:transform var(--t-fast) var(--ease-out)}.attachment-tile:active{transform:scale(.96)}.attachment-tile img{width:100%;height:100%;object-fit:cover;display:block}.attachment-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#15171cb8;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--t-fast) ease}.attachment-tile:hover .attachment-remove,.attachment-remove:focus-visible{opacity:1}.todo-item-actions{display:flex;gap:2px;flex-shrink:0;margin-top:-3px;opacity:0;transition:opacity var(--t-fast) ease}.todo-item:hover .todo-item-actions,.todo-item-actions:focus-within{opacity:1}.edit-btn,.delete-btn{width:28px;height:26px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease,color var(--t-fast) ease}.edit-btn:hover,.delete-btn:hover{background:var(--panel);color:var(--ink)}.edit-btn:active,.delete-btn:active{transform:scale(.94)}.todo-item.editing{cursor:default;background:var(--leaf);box-shadow:inset 0 0 0 1px var(--ink-3)}.edit-container{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.edit-input{flex:1 1 200px;min-width:0;height:30px;padding:0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font-size:var(--fs-md);outline:none}.edit-actions{display:flex;gap:6px}.save-btn,.cancel-btn{height:28px;padding:0 var(--s3);border-radius:var(--r-ctl);font-size:var(--fs-sm);font-weight:600;transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease}.save-btn{border:0;background:var(--ink);color:var(--on-ink)}.cancel-btn{border:1px solid var(--line);background:transparent;color:var(--ink-2)}.cancel-btn:hover{background:var(--panel)}.save-btn:active,.cancel-btn:active{transform:scale(.97)}.edit-notes{flex:1 1 100%;min-height:64px;padding:var(--s2) 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--page);color:var(--ink);font-size:13px;line-height:1.5;resize:vertical;outline:none}.edit-notes:focus{border-color:var(--ink)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:var(--s6);background:#0a0b0edb;animation:scrim-in var(--t-med) ease both}.lightbox-content{position:relative;max-width:100%;max-height:100%;animation:sheet-in .2s var(--ease-out) both}.lightbox-content img{display:block;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);object-fit:contain;border-radius:var(--r-ctl)}.lightbox-close{position:fixed;top:var(--s3);right:var(--s3);width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#ffffff24;color:#fff;display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.lightbox-close:hover{background:#ffffff3d}.lightbox-close:active{transform:scale(.94)}.custom-select{position:relative;width:100%}.select-button{width:100%;height:34px;padding:0 var(--s2) 0 10px;display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:13px;text-align:left;transition:border-color var(--t-fast) ease}.select-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-button:hover:not(:disabled){border-color:var(--ink-3)}.custom-select.open .select-button{border-color:var(--ink)}.custom-select.disabled .select-button{cursor:not-allowed;color:var(--ink-3);background:var(--page)}.select-arrow{flex-shrink:0;color:var(--ink-3);transition:transform var(--t-med) var(--ease-out)}.custom-select.open .select-arrow{transform:rotate(180deg)}.select-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;z-index:2000;max-height:220px;overflow-y:auto;overflow-x:hidden;padding:4px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);box-shadow:var(--pop-shadow);transform-origin:top left;animation:pop-in .15s var(--ease-out) both}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.select-option{width:100%;min-height:30px;padding:0 var(--s2);display:flex;align-items:center;border:0;border-radius:4px;background:transparent;color:var(--ink);font-size:13px;text-align:left;white-space:nowrap}.select-option:hover{background:var(--panel)}.select-option.selected{font-weight:650;background:color-mix(in srgb,var(--ink) 7%,transparent)}.filter-bar{position:relative;z-index:5;display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);background:var(--page)}.app.has-bg .filter-bar{background:color-mix(in srgb,var(--page) 80%,transparent)}.filter-segmented-control{display:inline-flex;padding:3px;gap:2px;border-radius:var(--r-ctl);background:var(--panel)}.filter-segment{height:26px;padding:0 var(--s3);border:0;border-radius:4px;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;transition:background-color var(--t-fast) ease,color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.filter-segment:hover{color:var(--ink)}.filter-segment:active{transform:scale(.96)}.filter-segment.active{background:var(--leaf);color:var(--ink);box-shadow:0 1px 2px #151e301f,0 0 0 1px var(--line)}.clear-completed-btn{height:32px;padding:0 var(--s2);gap:4px;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;display:inline-flex;align-items:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.clear-completed-btn:hover{background:var(--danger-surface);color:var(--danger)}.clear-completed-btn:active{transform:scale(.96)}.filter-actions{margin-left:auto;display:flex;align-items:center;min-width:0}.filter-actions .label-filter{min-width:132px;max-width:180px}.filter-actions .label-filter .select-dropdown{left:auto;right:0}.search-bar{position:relative;width:100%;max-width:360px;display:flex;align-items:center}.search-icon{position:absolute;left:10px;color:var(--ink-3);pointer-events:none}.search-input{width:100%;height:32px;padding:0 32px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:13px;outline:none;transition:border-color var(--t-fast) ease,box-shadow var(--t-fast) ease}.search-input::placeholder{color:var(--ink-3)}.search-input:hover{border-color:var(--ink-3)}.search-input:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 18%,transparent)}.search-clear{position:absolute;right:4px;width:24px;height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease}.search-clear:hover{background:var(--panel);color:var(--ink)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:56px var(--s3) var(--s3);background:var(--scrim);animation:scrim-in var(--t-med) ease both}.settings-modal{width:100%;max-width:460px;max-height:calc(100vh - 72px);display:flex;flex-direction:column;border-radius:var(--r-sheet);background:var(--leaf);color:var(--ink);box-shadow:var(--sheet-shadow);overflow:hidden;animation:sheet-in .2s var(--ease-out) both}.settings-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);height:52px;padding:0 var(--s2) 0 var(--s5);border-bottom:1px solid var(--rule)}.header-title-group{display:flex;align-items:center;gap:var(--s1);min-width:0}.settings-header h3{margin:0;font-size:var(--fs-lg);font-weight:650;color:var(--ink)}.header-actions{display:flex;align-items:center;gap:var(--s1)}.settings-back-btn,.settings-close{width:32px;height:32px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.settings-back-btn{margin-left:calc(var(--s3) * -1)}.settings-back-btn:hover,.settings-close:hover{background:var(--panel);color:var(--ink)}.settings-back-btn:active,.settings-close:active{transform:scale(.94)}.clear-all-btn{height:28px;padding:0 var(--s3);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);border-radius:var(--r-ctl);background:transparent;color:var(--danger);font-size:var(--fs-sm);font-weight:600;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.clear-all-btn:hover{background:var(--danger-surface)}.clear-all-btn:active{transform:scale(.97)}.settings-content{flex:1;min-height:0;overflow-y:auto;padding:var(--s2) var(--s5) var(--s5)}.settings-section{padding:var(--s4) 0;border-bottom:1px solid var(--rule)}.settings-section h4{margin:0 0 var(--s2);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.settings-item{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.settings-item>label{font-size:var(--fs-md);color:var(--ink)}.theme-toggle-btn,.select-image-btn,.folder-create-btn,.data-btn{height:32px;padding:0 var(--s3);display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;transition:background-color var(--t-fast) ease,border-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.theme-toggle-btn:hover,.select-image-btn:hover,.data-btn:hover{background:var(--panel)}.theme-toggle-btn:active,.select-image-btn:active,.folder-create-btn:active:not(:disabled),.data-btn:active{transform:scale(.97)}.background-color-picker,.background-image-controls{display:flex;align-items:center;gap:6px}.background-color-picker input[type=color]{width:32px;height:32px;padding:2px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);cursor:pointer}.background-color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:0}.background-color-picker input[type=color]::-webkit-color-swatch{border:0;border-radius:4px}.reset-color-btn,.remove-image-btn{width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:var(--r-ctl);background:transparent;color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease}.reset-color-btn:hover{background:var(--panel);color:var(--ink)}.remove-image-btn:hover{background:var(--danger-surface);border-color:color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger)}.background-preview{height:72px;margin:var(--s2) 0;border:1px solid var(--line);border-radius:var(--r-ctl);background-size:cover;background-position:center}.slider-item{flex-wrap:wrap}.overlay-opacity-control{flex:1 1 160px;display:flex;align-items:center;gap:var(--s3)}.overlay-opacity-slider{flex:1;height:4px;border-radius:2px;background:var(--line);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline-offset:6px}.overlay-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--leaf);background:var(--ink);box-shadow:0 0 0 1px var(--ink);cursor:pointer;transition:transform var(--t-fast) var(--ease-out)}.overlay-opacity-slider:active::-webkit-slider-thumb{transform:scale(1.15)}.overlay-opacity-value{min-width:40px;font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-2);text-align:right}.toggle-switch{position:relative;flex-shrink:0;width:38px;height:22px;cursor:pointer}.toggle-switch input{position:absolute;opacity:0;width:1px;height:1px}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:11px;background:var(--line);transition:background-color var(--t-med) ease}.toggle-slider:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--leaf);box-shadow:0 1px 2px #0003;transition:transform var(--t-med) var(--ease-out)}.toggle-switch input:checked+.toggle-slider{background:var(--ink)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.toggle-switch input:focus-visible+.toggle-slider{outline:2px solid var(--focus);outline-offset:2px}.folder-creation{display:flex;gap:var(--s2)}.folder-input{flex:1;min-width:0;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:13px;outline:none}.folder-input::placeholder{color:var(--ink-3)}.folder-input:focus{border-color:var(--ink)}.folder-create-btn{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.folder-create-btn:disabled{opacity:.4;cursor:not-allowed}.folders-list{display:flex;flex-direction:column;margin-top:var(--s2)}.folder-item{min-height:32px;display:flex;align-items:center;gap:var(--s2);border-bottom:1px solid var(--rule);font-size:var(--fs-sm);color:var(--ink-2)}.folder-item:last-child{border-bottom:0}.folder-item svg{flex-shrink:0;color:var(--ink-3)}.data-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}@media (max-width: 420px){.data-actions{grid-template-columns:1fr}}.stats-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s5)}.stat-card{min-height:32px;display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}.stat-value{font-family:var(--mono);font-size:var(--fs-md);font-weight:600;color:var(--ink)}.stat-label{font-size:var(--fs-sm);color:var(--ink-2)}.stat-card.overdue .stat-value{color:var(--danger)}.settings-version{padding-top:var(--s4);font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3)}.logout-section{margin-top:var(--s4);padding-bottom:0;border-top:1px solid var(--rule);border-bottom:0}.logout-btn{width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:var(--s2);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);border-radius:var(--r-ctl);background:transparent;color:var(--danger);font-size:var(--fs-sm);font-weight:600;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.logout-btn:hover{background:var(--danger-surface)}.logout-btn:active{transform:scale(.97)}.archived-list-container{padding-top:var(--s2)}.empty-archived{padding:var(--s6) 0;display:flex;flex-direction:column;align-items:center;gap:var(--s2);color:var(--ink-3)}.empty-archived p{margin:0;font-size:var(--fs-sm)}.archived-list{display:flex;flex-direction:column}.archived-item{display:flex;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.archived-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.archived-text{font-size:var(--fs-md);color:var(--ink);overflow-wrap:anywhere}.archived-date{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3)}.archived-actions{display:flex;gap:2px}.restore-btn,.delete-permanent-btn{width:30px;height:30px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.restore-btn:hover{background:var(--panel);color:var(--ink)}.delete-permanent-btn:hover{background:var(--danger-surface);color:var(--danger)}.restore-btn:active,.delete-permanent-btn:active{transform:scale(.94)}.date-picker{position:relative;min-width:140px}.date-picker-button-wrapper{position:relative;display:flex;align-items:center;width:100%}.date-picker-button{width:100%;min-width:0;height:34px;padding:0 30px 0 10px;display:flex;align-items:center;gap:6px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-family:var(--mono);font-size:var(--fs-sm);text-align:left;transition:border-color var(--t-fast) ease}.date-picker-button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-picker-button .placeholder{font-family:var(--font);font-size:13px;color:var(--ink-3)}.date-picker-button:hover{border-color:var(--ink-3)}.date-picker.open .date-picker-button{border-color:var(--ink)}.date-icon{flex-shrink:0;color:var(--ink-3)}.clear-date{position:absolute;right:5px;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,color var(--t-fast) ease}.clear-date:hover{background:var(--panel);color:var(--ink)}.date-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:2000;width:272px;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-sheet);background:var(--leaf);box-shadow:var(--pop-shadow);transform-origin:top left;animation:pop-in .16s var(--ease-out) both}.date-picker-dropdown.align-right{left:auto;right:0;transform-origin:top right}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2)}.nav-button{width:28px;height:28px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.nav-button:hover{background:var(--panel);color:var(--ink)}.nav-button:active{transform:scale(.94)}.month-year{font-size:var(--fs-md);font-weight:650;color:var(--ink)}.calendar-days-header,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-days-header{margin-bottom:2px}.day-header{height:22px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600;color:var(--ink-3)}.calendar-day{aspect-ratio:1;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink);font-family:var(--mono);font-size:var(--fs-sm);display:flex;align-items:center;justify-content:center;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.calendar-day:hover:not(.empty){background:var(--panel)}.calendar-day:active:not(.empty){transform:scale(.92)}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--ink-3);font-weight:700}.calendar-day.selected,.calendar-day.selected:hover{background:var(--ink);color:var(--on-ink);box-shadow:none}.calendar-day.empty{pointer-events:none}.time-picker{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s3);padding:var(--s2) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.time-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}.time-controls{display:flex;align-items:center;gap:4px}.time-input-group{display:flex;flex-direction:column;align-items:center}.time-arrow{width:40px;height:18px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center}.time-arrow:hover{background:var(--panel);color:var(--ink)}.time-input{width:40px;height:28px;padding:0;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--page);color:var(--ink);font-family:var(--mono);font-size:var(--fs-md);text-align:center;outline:none;-moz-appearance:textfield}.time-input::-webkit-outer-spin-button,.time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-input:focus{border-color:var(--ink)}.time-separator{font-family:var(--mono);font-weight:700;color:var(--ink-3)}.calendar-footer{display:flex;justify-content:space-between;gap:var(--s2);margin-top:var(--s3)}.footer-btn{flex:1;height:30px;border-radius:var(--r-ctl);font-size:var(--fs-sm);font-weight:600;transition:background-color var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.footer-btn:active{transform:scale(.97)}.clear-btn{border:1px solid var(--line);background:transparent;color:var(--ink-2)}.clear-btn:hover{background:var(--panel)}.today-btn{border:0;background:var(--ink);color:var(--on-ink)}.label-input-wrapper{position:relative;width:100%}.label-input{width:100%;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:13px;outline:none;transition:border-color var(--t-fast) ease}.label-input::placeholder{color:var(--ink-3)}.label-input:hover{border-color:var(--ink-3)}.label-input:focus,.label-input-wrapper.open .label-input{border-color:var(--ink)}.label-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:2000;max-height:220px;overflow-y:auto;padding:4px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);box-shadow:var(--pop-shadow);transform-origin:top left;animation:pop-in .15s var(--ease-out) both}.label-option{width:100%;min-height:30px;padding:0 var(--s2);display:flex;align-items:center;border:0;border-radius:4px;background:transparent;color:var(--ink);font-size:13px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label-option:hover{background:var(--panel)}.label-option.selected{font-weight:650}.label-option.add-new{color:var(--focus);font-weight:600}.folder-group{position:relative}.folder-header{display:flex;align-items:flex-end;gap:var(--s2);min-height:34px;border-bottom:2px solid var(--tab);cursor:pointer}.folder-header.draggable{cursor:grab}.folder-header.draggable:active{cursor:grabbing}.folder-toggle{flex-shrink:0;width:28px;height:30px;padding:0 0 0 4px;border:0;border-radius:var(--r-ctl) 0 0 0;background:var(--tab);color:var(--tab-ink);display:flex;align-items:center;justify-content:center}.folder-toggle svg{transition:transform var(--t-med) var(--ease-out)}.folder-group.collapsed .folder-toggle svg{transform:rotate(-90deg)}.folder-name{min-width:0;max-width:62%;height:30px;margin-left:calc(var(--s2) * -1);padding:0 var(--s3) 0 2px;border-radius:0 var(--r-ctl) 0 0;background:var(--tab);color:var(--tab-ink);font-size:var(--fs-md);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:30px}.folder-name-input{flex:1;min-width:0;height:30px;margin-left:calc(var(--s2) * -1);padding:0 var(--s3);border:0;border-radius:0 var(--r-ctl) 0 0;background:var(--tab);color:var(--tab-ink);font-size:var(--fs-md);font-weight:650;outline:none;box-shadow:inset 0 -2px 0 var(--tab-ink)}.folder-actions{margin-left:auto;display:flex;align-items:center;gap:2px;padding-bottom:3px;opacity:0;transition:opacity var(--t-fast) ease}.folder-header:hover .folder-actions,.folder-actions:focus-within{opacity:1}.folder-action-btn{width:28px;height:26px;padding:0;border:0;border-radius:var(--r-ctl);background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) ease,color var(--t-fast) ease}.folder-action-btn:hover{background:var(--panel);color:var(--ink)}.folder-action-btn.delete:hover{background:var(--danger-surface);color:var(--danger)}.folder-action-btn:active{transform:scale(.94)}.folder-count{flex-shrink:0;margin-bottom:6px;padding:0 6px;font-family:var(--mono);font-size:var(--fs-xs);line-height:18px;color:var(--ink-2);border:1px solid var(--line);border-radius:4px;background:var(--leaf-fill, var(--leaf))}.folder-content{background:var(--leaf-fill, var(--leaf));border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-sheet) var(--r-sheet)}.tab-rail{flex:0 0 30px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;overflow-x:hidden;padding:var(--s3) 0 var(--s3);overflow-y:auto;scrollbar-width:none;border-left:1px solid var(--line);background:var(--panel)}.tab-rail::-webkit-scrollbar{display:none}.rail-tab{flex-shrink:0;width:28px;max-height:160px;padding:var(--s2) 0 var(--s2) 8px;border:0;border-radius:0 var(--r-ctl) var(--r-ctl) 0;background:var(--tab);color:var(--tab-ink);display:flex;align-items:flex-start;justify-content:center;overflow:hidden;transform:translate(-8px);transition:transform var(--t-med) var(--ease-out)}.rail-tab:hover{transform:translate(-4px)}.rail-tab.active{transform:translate(0)}.rail-tab:active{transform:translate(-2px) scale(.97)}.rail-tab-label{writing-mode:vertical-rl;font-size:var(--fs-xs);font-weight:650;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:100%}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s5) var(--s4);background:var(--page);color:var(--ink-2);font-size:var(--fs-sm)}.login-card{position:relative;width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--s5);padding:var(--s6);border:1px solid var(--line);border-radius:var(--r-sheet);background:var(--leaf);box-shadow:var(--sheet-shadow)}.login-card:before{content:"";position:absolute;top:-9px;left:var(--s6);width:214px;height:9px;border-radius:3px 3px 0 0;background:var(--divider-edge)}.login-card h1{margin:0;font-size:var(--fs-xl);font-weight:700;color:var(--ink)}.login-card p{margin:-12px 0 0;font-size:var(--fs-md);color:var(--ink-2)}.login-alert{padding:10px var(--s3);border-radius:var(--r-ctl);font-size:13px;line-height:1.45}.login-alert.error{background:var(--danger-surface);color:var(--danger)}.login-alert.success{background:color-mix(in srgb,var(--hue-2) 14%,transparent);color:var(--ink)}.login-form{display:flex;flex-direction:column;gap:var(--s4)}.login-label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}.login-input{height:38px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--leaf);color:var(--ink);font-size:var(--fs-md);font-weight:400;outline:none;user-select:text;-webkit-user-select:text;transition:border-color var(--t-fast) ease}.login-input:hover{border-color:var(--ink-3)}.login-input:focus{border-color:var(--ink)}.login-btn{height:40px;margin-top:var(--s1);border:0;border-radius:var(--r-ctl);background:var(--ink);color:var(--on-ink);font-size:var(--fs-md);font-weight:650;transition:transform var(--t-fast) var(--ease-out),opacity var(--t-fast) ease}.login-btn:active:not(:disabled){transform:scale(.97)}.login-btn:disabled{opacity:.55;cursor:progress}.login-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2)}.login-link-btn{padding:2px 0;border:0;background:transparent;color:var(--ink-2);font-size:13px;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:color var(--t-fast) ease,text-decoration-color var(--t-fast) ease}.login-link-btn:hover{color:var(--ink);text-decoration-color:var(--ink)}
