:root{--text:#2b2b33;--bg:#fff;--border:#e2e2e6;--accent:#7c3aed;--accent-bg:#7c3aed14;--danger:#dc2626;--success:#16a34a;--success-bg:#16a34a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e5e5eb;--bg:#16171d;--border:#33343d;--accent:#a78bfa;--accent-bg:#a78bfa1f;--success:#4ade80;--success-bg:#4ade801f}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#2b2b33;--bg:#fff;--border:#e2e2e6;--accent:#7c3aed;--accent-bg:#7c3aed14;--success:#16a34a;--success-bg:#16a34a1a}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#e5e5eb;--bg:#16171d;--border:#33343d;--accent:#a78bfa;--accent-bg:#a78bfa1f;--success:#4ade80;--success-bg:#4ade801f}*{box-sizing:border-box}body{min-height:100svh;margin:0}#root{min-height:100svh}button{cursor:pointer;font:inherit}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:6px 8px}.signin-page{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.signin-form{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;width:100%;max-width:320px;padding:28px 24px;display:flex}.signin-form input{font-size:16px}.signin-form h1{text-align:center;margin:0;font-size:24px}.signin-subtitle{text-align:center;opacity:.7;margin:0 0 8px}.signin-form button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:8px}.form-error{color:var(--danger);margin:0;font-size:14px}.form-info{color:var(--success);margin:0;font-size:14px}.link-button{color:var(--accent);background:0 0;border:none;padding:4px 0;text-decoration:underline}.centered-message{justify-content:center;align-items:center;min-height:100svh;display:flex}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.app-header h1{margin:0;font-size:20px}.app-header-actions{align-items:center;gap:8px;display:flex}.signout-button{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:4px;padding:6px 12px}.theme-toggle-overlay{z-index:20;position:fixed;top:10px;right:12px}.theme-toggle{border:1px solid var(--border);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;min-width:36px;min-height:36px;font-size:16px;line-height:1;display:inline-flex}.icon-button{min-width:36px;min-height:36px;color:var(--text);opacity:.7;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px 8px;font-size:16px;display:inline-flex}.icon-button:hover{opacity:1;background:var(--border)}.new-category-form{flex-wrap:wrap;gap:6px;display:flex}.new-category-form input{flex:1;min-width:140px}.main-panel{flex:1;padding:20px;overflow-y:auto}@media (width<=480px){.app-header{padding:10px 12px}.main-panel,.category-section-body{padding:12px}}.empty-hint{opacity:.6}.category-feed{flex-direction:column;gap:16px;width:100%;max-width:720px;margin:0 auto;display:flex}@media (width>=900px){.category-feed{max-width:min(1400px,92vw)}}.category-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.category-section-header{background:var(--accent-bg);justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.category-toggle{text-align:left;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:8px;display:flex}.category-toggle h2{color:var(--accent);letter-spacing:.01em;margin:0;font-size:20px;font-weight:700}.chevron{opacity:.6;font-size:11px;transition:transform .15s;display:inline-block}.chevron.expanded{transform:rotate(90deg)}.category-title-input{flex:1;margin:4px}.category-actions{flex-shrink:0;gap:2px;padding-right:4px;display:flex}.category-section-body{border-top:1px solid var(--border);padding:16px}.todo-section{flex-direction:column;gap:16px;display:flex}.todo-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.todo-row{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.todo-row.complete{background:var(--success-bg);border-color:var(--success)}.todo-counter{flex-shrink:0;align-items:center;gap:6px;display:flex}.todo-amount{text-align:center;font-variant-numeric:tabular-nums;min-width:64px;font-weight:600}.todo-title{flex:1;font-size:14px;font-weight:400}.complete-badge{color:var(--success);flex-shrink:0;font-size:14px;font-weight:600}.todo-actions{flex-shrink:0;gap:2px;display:flex}.todo-edit-form{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.todo-edit-form input[type=text],.todo-edit-form input:not([type]){flex:1;min-width:140px}.todo-edit-form input[type=number]{width:100px}.new-todo-form{flex-wrap:wrap;gap:6px;display:flex}.new-todo-form input:first-child{flex:1;min-width:140px}.new-todo-form input[type=number]{width:140px}@media (width<=480px){.new-todo-form input,.todo-edit-form input,.new-category-form input{flex-basis:100%}.new-todo-form button,.todo-edit-form button,.new-category-form button{flex:1}}.todo-images-wrapper{flex-basis:100%}.todo-images{width:100%}.photos-toggle{min-height:36px;color:var(--text);opacity:.75;background:0 0;border:none;align-items:center;gap:6px;padding:6px 4px;font-size:14px;display:inline-flex}.photos-toggle:hover{opacity:1}.photos-panel{border-top:1px dashed var(--border);flex-direction:column;gap:10px;margin-top:8px;padding-top:8px;display:flex}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}@media (width>=768px){.photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}}.photo-card{flex-direction:column;gap:4px;display:flex;position:relative}.photo-thumb{aspect-ratio:1;object-fit:cover;border:1px solid var(--border);background:var(--accent-bg);border-radius:6px;width:100%}.photo-remove{color:#fff;background:#0000008c;border:none;border-radius:50%;min-width:28px;min-height:28px;padding:2px;font-size:13px;line-height:1;position:absolute;top:4px;right:4px}.photo-drag-handle{color:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#0000008c;border:none;border-radius:50%;min-width:28px;min-height:28px;padding:2px;font-size:13px;line-height:1;position:absolute;top:4px;left:4px}.photo-drag-handle:active{cursor:grabbing}.photo-caption,.photo-caption-input{text-align:left;font-size:13px}.photo-caption{color:var(--text);opacity:.8;overflow-wrap:anywhere;background:0 0;border:none;padding:2px 0}.photo-caption:hover{opacity:1;text-decoration:underline}.photo-caption-input{width:100%}.photo-upload-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.photo-upload-form input[type=file]{border:none;flex:1;min-width:160px;padding:4px}.photo-upload-form input[type=text]{flex:1;min-width:140px}@media (width<=480px){.photo-upload-form input,.photo-upload-form button{flex-basis:100%}}.drag-handle{min-width:40px;min-height:40px;color:var(--text);opacity:.45;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px;font-size:16px;display:inline-flex}.drag-handle:hover{opacity:.9}.drag-handle:active{cursor:grabbing}.category-section.dragging,.todo-row.dragging{z-index:5;opacity:.9;cursor:grabbing;position:relative;box-shadow:0 8px 20px #0003}.category-section.drop-indicator,.todo-row.drop-indicator{box-shadow:0 -3px 0 0 var(--accent)}.photo-card.dragging{z-index:30;position:relative}.photo-card.dragging .photo-thumb{cursor:grabbing;opacity:.85;box-shadow:0 10px 24px #0000004d}.todo-row.photo-drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-bg)}.drop-indicator-end{height:4px;list-style:none}.drop-indicator-end.drop-indicator{box-shadow:0 -3px 0 0 var(--accent)}
