*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none}:root{--accent:#1e5fbf;--accent-hover:#2f74d9;--heading:#2a4a7a;--cream:#f7fafc;--bg:#edf2fa;--border:#c4d4e8;--text:#1e293b;--text-muted:#64748b;--sidebar-w:clamp(300px, 36vw, 448px);--radius:8px;--shadow:0 2px 12px #0f3c781a;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}#app{overscroll-behavior:none;flex-direction:column;height:100dvh;display:flex}.app-shell{height:100dvh;display:flex;overflow:hidden}.sidebar-wrapper{width:var(--sidebar-w);overscroll-behavior-y:contain;background:linear-gradient(168deg,#123a5c 0%,#1a56b5 48%,#2563c4 100%);flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;overflow-y:auto}.sidebar-wrapper.collapsed{width:52px}.sidebar-wrapper.collapsed .sidebar-title,.sidebar-wrapper.collapsed .nav-item span,.sidebar-wrapper.collapsed .nav-item .badge,.sidebar-wrapper.collapsed .sidebar-footer,.sidebar-wrapper.collapsed .sidebar-nav,.sidebar-wrapper.collapsed .sidebar-controls{display:none}.sidebar-wrapper.collapsed .sidebar-header{justify-content:center;padding:1rem .5rem}.sidebar-wrapper.collapsed .sidebar-logo{display:none}.main-wrapper{background:var(--bg);overscroll-behavior-y:contain;flex:1;position:relative;overflow-y:auto}.daily-dashboard{flex-direction:column;min-height:100%;display:flex}.daily-dashboard-header{border-bottom:1px solid var(--border);background:var(--cream);flex-shrink:0;padding:1.25rem 2rem .75rem}.daily-dashboard-header .file-title{margin-bottom:.35rem}.daily-dashboard-note{max-width:42rem;color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.daily-dashboard-frame{background:#fff;border:0;flex:1;width:100%;min-height:calc(100dvh - 9rem)}.welcome-view{box-sizing:border-box;max-width:40rem;margin:0 auto;padding:1.5rem 1.5rem 2rem}.welcome-header{margin-bottom:1.5rem}.welcome-logo{margin-bottom:.75rem;display:block}.welcome-lead{color:var(--text);margin:.35rem 0 0;font-size:1rem;line-height:1.55}.welcome-section{margin-bottom:1.25rem}.welcome-section-muted{border-top:1px solid var(--border);padding-top:.5rem}.welcome-heading{color:var(--heading);margin:0 0 .5rem;font-size:.95rem;font-weight:600}.welcome-list{color:var(--text);margin:0;padding-left:1.2rem;line-height:1.55}.welcome-list li{margin-bottom:.45rem}.welcome-list code{font-size:.88em}.welcome-note,.welcome-hint{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.welcome-note a{color:var(--accent);font-weight:600}.chat-view{box-sizing:border-box;flex-direction:column;max-width:52rem;height:100%;min-height:calc(100dvh - 2rem);margin:0 auto;padding:1.25rem 1.5rem 1rem;display:flex}.chat-header{flex-shrink:0;margin-bottom:1rem}.chat-header .file-title{margin-bottom:.35rem}.chat-subtitle{color:var(--text-muted);margin:0 0 .35rem;font-size:.88rem;line-height:1.45}.chat-model-row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.5rem 0 .35rem;display:flex}.chat-model-label{color:var(--heading);font-size:.82rem;font-weight:600}.chat-model-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235a5348' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .65rem center;min-width:0;max-width:100%;color:var(--text);cursor:pointer;appearance:none;flex:14rem;padding:.4rem 2rem .4rem .65rem;font-family:inherit;font-size:.88rem}.chat-model-select:disabled{opacity:.6;cursor:not-allowed}.chat-model-select:focus{border-color:var(--accent);outline:none}.chat-status{color:var(--heading);margin:0;font-size:.8rem}.chat-gpu-panel{border-radius:var(--radius);color:var(--text);background:#fff8e6;border:1px solid #e6c84a;flex-shrink:0;margin-bottom:.75rem;padding:.85rem 1rem;font-size:.88rem;line-height:1.5}.chat-gpu-panel.hidden{display:none}.chat-gpu-panel-title{color:#7a5a00;margin:0 0 .4rem;font-weight:700}.chat-gpu-panel-text{margin:0 0 .5rem}.chat-gpu-panel-list{margin:0 0 .5rem 1.1rem;padding:0}.chat-gpu-panel-list li{margin-bottom:.25rem}.chat-gpu-panel-links{margin:0}.chat-gpu-panel-links a{color:var(--accent);font-weight:600}.chat-messages{flex-direction:column;flex:1;gap:.75rem;min-height:12rem;padding:.75rem 0;display:flex;overflow-y:auto}.chat-empty-hint{text-align:center;color:var(--text-muted);margin:auto;padding:2rem 1rem;font-size:.95rem;line-height:1.5}.chat-bubble{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:92%;padding:.55rem .85rem;font-size:.92rem;line-height:1.5}.chat-bubble-user{background:var(--accent);color:#fff;align-self:flex-end}.chat-bubble-assistant{background:var(--cream);border:1px solid var(--border);color:var(--text);align-self:flex-start}.chat-bubble-streaming{opacity:.85}.chat-composer{border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:.5rem;padding-top:.75rem;display:flex}.chat-input{border:1px solid var(--border);border-radius:var(--radius);resize:vertical;background:var(--cream);outline:none;flex:1;min-height:2.75rem;max-height:8rem;padding:.55rem .75rem;font-family:inherit;font-size:.95rem}.chat-input:focus{border-color:var(--accent)}.chat-send{flex-shrink:0;min-height:2.75rem}.nav-special-links{border-bottom:1px solid #ffffff1f;margin-bottom:.4rem;padding-bottom:.4rem}.nav-special-item{text-align:left;width:100%;font-weight:600}.sidebar-title.active{color:#fff;text-underline-offset:3px;text-decoration:underline}.auth-screen{justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.auth-card{background:var(--cream);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;width:100%;max-width:440px;padding:2.5rem 2rem}.auth-logo{object-fit:contain;width:3rem;height:3rem;margin:0 auto .5rem;display:block}.auth-card h1{color:var(--accent);margin-bottom:.75rem;font-size:1.6rem}.auth-card p{color:var(--text-muted);margin-bottom:.75rem;font-size:.9rem;line-height:1.5}.auth-hint{font-size:.82rem!important}.auth-hint a{color:var(--accent)}.auth-hint code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:.8rem}.auth-sample-hint .auth-sample-url{margin-top:.35rem;display:block}.auth-sample-hint .auth-sample-url code{word-break:break-all;padding:.35rem .45rem;font-size:.72rem;line-height:1.35;display:block}.auth-fields{text-align:left;flex-direction:column;gap:.75rem;margin-top:1.25rem;display:flex}.auth-field label{color:var(--text-muted);margin-bottom:.25rem;font-size:.78rem;display:block}.auth-optional{opacity:.85;font-weight:400}.auth-field input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-sizing:border-box;outline:none;width:100%;padding:.6rem .9rem;font-family:monospace;font-size:.9rem}.auth-field input:focus{border-color:var(--accent)}.auth-actions{margin-top:1rem}.auth-actions .btn-primary{width:100%}.auth-error{color:#c82333;margin-top:.5rem;font-size:.85rem}.hidden{display:none!important}.sidebar{flex-direction:column;min-width:0;height:100%;display:flex}.sidebar-header{color:#fff;border-bottom:1px solid #ffffff1f;flex-shrink:0;align-items:center;gap:.5rem;padding:.65rem .75rem .55rem;font-size:1rem;font-weight:700;display:flex}.sidebar-toggle{color:#fffc;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:1.1rem;line-height:1;transition:background .15s}.sidebar-toggle:hover{color:#fff;background:#ffffff26}.sidebar-logo{object-fit:contain;flex-shrink:0;width:1.5rem;height:1.5rem;display:block}.sidebar-title{color:inherit;cursor:pointer;min-width:0;font:inherit;font-weight:inherit;text-align:left;background:0 0;border:none;flex:1;margin:0;padding:0;text-decoration:none}.sidebar-title:hover{color:#fff;text-decoration:underline}.sidebar-title:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #ffffffa6}.sidebar-controls{border-bottom:1px solid #ffffff1f;flex-direction:column;flex-shrink:0;gap:.35rem;padding:.4rem .75rem .45rem;display:flex}.sidebar-search-host{min-width:0}.sidebar-toolbar-actions{flex-direction:row;gap:.35rem;min-width:0;display:flex}.btn-sidebar-toplevel{color:#ffffffe6;cursor:pointer;text-align:center;white-space:nowrap;background:#ffffff12;border:1px solid #ffffff38;border-radius:5px;flex:1;min-width:0;padding:.32rem .4rem;font-size:.78rem;font-weight:500;transition:background .15s,border-color .15s}.btn-sidebar-toplevel:hover{background:#ffffff24;border-color:#ffffff61}.sidebar-search{flex-direction:column;gap:.25rem;min-width:0;display:flex}.sidebar-search-input{box-sizing:border-box;color:#fff;background:#00000038;border:1px solid #ffffff38;border-radius:5px;outline:none;width:100%;padding:.35rem .5rem;font-size:.82rem;line-height:1.25}.sidebar-search-input::placeholder{color:#ffffff6b}.sidebar-search-input:focus{background:#00000052;border-color:#ffffff6b}.sidebar-search-status{color:#ffffff7a;min-height:0;margin:0;padding:0 .1rem;font-size:.68rem;line-height:1.2}.sidebar-search-status:empty{display:none}.sidebar-search-results{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:min(36vh,240px);margin:0;padding:0;list-style:none;overflow-y:auto}.sidebar-search-results.hidden{display:none}.sidebar-search-hit{color:#fff;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;width:100%;padding:.45rem .5rem;display:block}.sidebar-search-hit:hover{background:#ffffff1f}.sidebar-search-hit-title{font-size:.82rem;font-weight:600;line-height:1.25;display:block}.sidebar-search-hit-meta{color:#ffffff8c;margin-top:.1rem;font-size:.68rem;display:block}.sidebar-search-hit-snippet{color:#ffffffb3;text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;font-size:.72rem;line-height:1.3;display:block;overflow:hidden}.sidebar-search-empty{color:#ffffff8c;padding:.5rem;font-size:.8rem}.item-row-search-flash{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px;transition:outline-color .3s}.nav-draggable{align-items:stretch;gap:0;width:100%;min-width:min-content;display:flex}.nav-drag-handle{color:#ffffff61;cursor:grab;touch-action:none;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-self:stretch;align-items:center;width:1.75rem;margin:0;padding:.35rem 0;font-size:.95rem;line-height:1;transition:color .12s,background .12s;display:flex}.nav-drag-handle:hover{color:#ffffffd9;background:#ffffff1a}.nav-drag-handle:active{cursor:grabbing}.nav-draggable>.nav-item.nav-file,.nav-draggable>.nav-group{flex:auto;min-width:min-content}.nav-dragging{opacity:.55}#sidebar-nav.nav-reorder-active{touch-action:none}.sidebar-empty{color:#ffffff8c;text-align:left;padding:.75rem;font-size:.82rem}.sidebar-nav{flex-direction:column;flex:1;gap:2px;min-height:0;padding:.45rem .5rem .5rem;display:flex;overflow:auto}.nav-item{color:#ffffffd9;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.55rem .75rem;font-size:.88rem;transition:background .15s;display:flex}.nav-item.nav-file,.nav-group-header{white-space:nowrap}.nav-item:hover{background:#ffffff1f}.nav-item.active{color:#fff;background:#fff3;font-weight:600}.sidebar-footer{border-top:1px solid #ffffff26;padding:.75rem .5rem}.sidebar-built{color:#ffffff73;text-align:center;margin:0 0 .5rem;font-size:.7rem;line-height:1.3}.sidebar-footer-actions{flex-wrap:wrap;justify-content:center;gap:.45rem;display:flex}.nav-group{border:none}.nav-group-header{cursor:pointer;align-items:center;gap:.2rem;list-style:none;display:flex}.nav-group-header::-webkit-details-marker{display:none}.nav-folder-summary-main{flex:auto;min-width:min-content}.btn-rename-folder{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:1px 4px;font-size:.82rem;line-height:1}.btn-rename-folder:hover{color:#fff;background:#ffffff26}.nav-sub{flex-direction:column;gap:1px;margin-bottom:4px;padding-left:.75rem;display:flex}.nav-sub-item{opacity:.9;padding:.4rem .65rem!important;font-size:.82rem!important}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;padding:.55rem 1.1rem;font-size:.9rem;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:#ffffffb3;border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #ffffff40;padding:.5rem .9rem;font-size:.82rem;transition:background .15s}.btn-ghost:hover{background:#ffffff1a}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.file-view{max-width:800px;padding:1.5rem 2rem}.file-view--dirty{padding-bottom:calc(7.75rem + env(safe-area-inset-bottom,0px))}.file-header{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.file-title-row{align-items:center;gap:.5rem;display:flex}.file-title{color:var(--accent);font-size:1.4rem;font-weight:700}.btn-page-icon{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;justify-content:center;align-items:center;min-width:2.25rem;min-height:2.25rem;padding:.2rem .35rem;font-size:1.5rem;line-height:1;transition:border-color .15s,background .15s;display:inline-flex}.btn-page-icon:hover{border-color:var(--accent);background:#1e5fbf0f}.material-symbols-outlined.page-icon{font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;vertical-align:-.12em;font-size:1.15em;line-height:1}.nav-item .page-icon--emoji,.nav-item .material-symbols-outlined.page-icon{margin-right:.15rem}.page-icon--header.material-symbols-outlined{font-size:1.5rem}.btn-icon{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:1rem;transition:opacity .15s}.btn-icon:hover{opacity:1;background:var(--bg)}.btn-icon-danger:hover{opacity:1;background:#f8d7da}.btn-icon.btn-copy-flash{opacity:1;color:var(--accent);background:#1e5fbf1f}.rename-form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.rename-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;width:220px;padding:.45rem .75rem;font-size:.9rem}.rename-form input:focus{border-color:var(--accent)}.rename-hint{color:var(--text-muted);font-size:.78rem}.add-item-row{padding:.2rem 0 .45rem}.btn-add-item{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;width:100%;padding:.3rem .7rem;font-size:.82rem;transition:all .15s}.btn-add-item:hover{border-color:var(--accent);color:var(--accent);background:#1e5fbf12}.add-section-bar{padding:.75rem 0 1.5rem}.btn-add-section{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;width:100%;padding:.5rem 1rem;font-size:.85rem;transition:all .15s}.btn-add-section:hover{border-color:var(--accent);color:var(--accent);background:#1e5fbf12}.add-inline-form{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-sizing:border-box;flex-wrap:wrap;align-items:center;gap:.4rem;width:100%;margin-top:.5rem;padding:.65rem .75rem;display:flex}.add-inline-form input[type=text]:not(.item-text-input){border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;flex:1;min-width:160px;padding:.4rem .7rem;font-size:.88rem}.add-inline-form input[type=date]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);outline:none;flex-shrink:0;padding:.4rem .6rem;font-size:.85rem}.add-inline-form input:focus,.add-inline-form .item-text-input:focus{border-color:var(--accent)}.btn-edit-item-note{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;flex:none;padding:0;font-family:inherit;font-size:.88rem;font-weight:600;text-decoration:underline}.btn-edit-item-note:hover{color:var(--accent-hover)}.btn-new-file,.btn-new-folder{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:.9rem;line-height:1}.btn-new-file:hover,.btn-new-folder:hover{color:#fff;background:#ffffff26}.btn-ghost-dark{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.45rem .8rem;font-size:.85rem}.btn-ghost-dark:hover{background:var(--bg)}.file-save-dock{left:var(--sidebar-w);z-index:100;background:var(--cream);border-top:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;padding:0;display:flex;position:fixed;bottom:0;right:0;box-shadow:0 -6px 18px #0f3c781f}.app-shell:has(.sidebar-wrapper.collapsed) .file-save-dock{left:52px}.file-save-dock-status{text-align:center;border-bottom:1px solid var(--border);background:var(--cream);padding:.5rem 1.25rem}.file-save-dock-actions{align-items:stretch;width:100%;display:flex}.btn-dock{appearance:none;height:calc(3.5rem + env(safe-area-inset-bottom,0px));cursor:pointer;border:none;flex:50%;margin:0;padding:0;transition:background .15s,opacity .15s;overflow:hidden}.btn-dock-label{box-sizing:border-box;text-align:center;pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:3.5rem;margin:0;padding:0 .75rem;font-family:inherit;font-size:1.1rem;font-weight:600;line-height:1.2;display:flex}.btn-dock-discard{color:var(--text);border-right:1px solid var(--border);background:#e2eaf6}.btn-dock-discard:hover:not(:disabled){background:#d5e0f2}.btn-dock-save{background:var(--accent);color:#fff}.btn-dock-save:hover:not(:disabled){background:var(--accent-hover)}.btn-dock:disabled{opacity:.45;cursor:not-allowed}.dirty-indicator{color:var(--heading);font-size:.82rem}.section{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;overflow:visible}.section-block:has(.section-more-popover:not(.hidden)){z-index:40;position:relative}.section-title{color:var(--heading);cursor:pointer;border-bottom:1px solid var(--border);user-select:none;align-items:center;gap:.5rem;padding:.8rem 1rem;font-size:.95rem;font-weight:600;list-style:none;display:flex}.section-title .section-title-text{flex:1;min-width:0}.section-title-actions{flex-shrink:0;align-items:center;gap:.15rem;margin-left:auto;display:flex}.section-title .btn-edit-section,.section-title .btn-delete-section,.section-title .btn-section-more{opacity:1;font-size:.95rem}.section-more-menu{display:inline-flex;position:relative}.section-more-popover{z-index:60;border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:.15rem;min-width:12.5rem;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0f3c782e}.section-more-popover.hidden{display:none}.section-more-item{text-align:left;width:100%;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:.5rem .65rem;font-size:.88rem;display:block}.section-more-item:hover{color:var(--accent);background:#1e5fbf14}.section-more-item.btn-move-section{font-family:inherit}.section-title::-webkit-details-marker{display:none}.section[open]>.section-title:before{content:"▾ "}.section:not([open])>.section-title:before{content:"▸ "}.section-title.section-title-editing{cursor:default}.section-title-edit-row{flex:1;align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}.section-title-input{border:1px solid var(--border);border-radius:var(--radius);min-width:0;color:var(--heading);background:var(--cream);outline:none;flex:1;padding:.4rem .65rem;font-size:.95rem;font-weight:600}.section-title-input:focus{border-color:var(--accent)}.section-body{padding:.75rem 1rem}.section-block{align-items:flex-start;gap:.45rem;margin-bottom:1rem;display:flex}.section-block>.section{flex:1;min-width:0;margin-bottom:0}.section-drag-handle{width:1.5rem;color:var(--text-muted);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;margin:0;padding:.8rem 0 .15rem;font-size:.9rem;line-height:1;transition:color .12s,background .12s;display:flex}.section-drag-handle:hover{color:var(--accent);background:#1e5fbf14}.section-drag-handle:active{cursor:grabbing}.section-dragging{opacity:.55}.prose p{color:var(--text-muted);margin-bottom:.35rem;font-size:.88rem;line-height:1.55}.item-list{flex-direction:column;gap:2px;list-style:none;display:flex}.item-row{cursor:default;border-radius:5px;flex-direction:column;gap:.35rem;padding:.45rem .35rem;transition:background .1s;display:flex}.item-row-main{align-items:flex-start;gap:.45rem;min-width:0;display:flex}.item-drag-handle{width:1.5rem;height:1.75rem;color:var(--text-muted);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-self:flex-start;align-items:center;margin:.1rem 0 0;padding:0;font-size:.9rem;line-height:1;transition:color .12s,background .12s;display:flex}.item-drag-handle:hover{color:var(--accent);background:#1e5fbf14}.item-drag-handle:active{cursor:grabbing}.item-row:hover{background:var(--bg)}.item-row:active{cursor:default}.sections-container.item-reorder-active,.sections-container.section-reorder-active{touch-action:none}.item-dragging{opacity:.55}.item-row-actions{flex-shrink:0;align-items:flex-start;gap:1.1rem;margin-top:.1rem;margin-left:auto;display:flex;position:relative}.btn-item-photo{cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s}.btn-item-photo:hover{opacity:1}.item-photo-input{opacity:0;pointer-events:none;clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.btn-delete-item{cursor:pointer;opacity:.55;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.85rem;transition:opacity .15s,color .15s}.btn-delete-item:hover{opacity:1;color:var(--danger,#b42318)}.item-edit-row{flex-wrap:wrap;flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.item-edit-snippet{color:var(--heading);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-word;flex:100%;margin:0 0 .15rem;padding:.4rem .5rem;font-size:.88rem;line-height:1.4}.item-edit-snippet-tappable{cursor:pointer}.item-edit-snippet-tappable:hover{border-color:var(--accent);background:#1e5fbf0f}.add-inline-form .item-edit-snippet:empty{display:none}.item-edit-date{flex:none}.item-text-field{flex:10rem;align-items:flex-start;gap:.25rem;min-width:0;display:flex}.item-text-field .item-text-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;flex:1;min-width:0;padding:.35rem .5rem;font-family:inherit;font-size:.9rem;line-height:1.45}.item-text-field .item-text-input:focus{border-color:var(--accent)}.btn-item-text-expand{border:1px solid var(--border);border-radius:var(--radius);background:var(--cream);width:2.1rem;height:2.1rem;color:var(--heading);cursor:pointer;flex-shrink:0;margin-top:1px;padding:0;font-size:1rem;line-height:1}.btn-item-text-expand:hover{border-color:var(--accent);color:var(--accent);background:#1e5fbf14}.btn-item-text-expand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.item-row.item-row-editing{align-items:stretch}.item-row.item-row-editing .item-row-main{align-items:center}.item-row.item-row-editing>.item-images{display:none}.item-images{flex-wrap:wrap;gap:.5rem;margin-left:1.95rem;padding:.15rem 0 .25rem;display:flex}.item-image-tile{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex:none;width:5.5rem;height:5.5rem;margin:0;position:relative;overflow:hidden;box-shadow:0 1px 4px #0f3c7814}.item-image-tile .item-image{object-fit:cover;cursor:zoom-in;width:100%;height:100%;display:block}.item-image-tile-pending{border-color:var(--accent);box-shadow:0 0 0 2px #1e5fbf33}.item-image-pending-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--accent);color:#fff;border-radius:4px;padding:2px 5px;font-size:.62rem;font-weight:700;line-height:1.2;position:absolute;top:4px;left:4px}.btn-remove-image{color:#fff;cursor:pointer;background:#0f1e32a6;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;padding:0;font-size:1rem;line-height:1;display:flex;position:absolute;top:3px;right:3px}.btn-remove-image:hover{background:#b42828e6}.item-photo-preview{flex-wrap:wrap;gap:.35rem;width:100%;margin-top:.25rem;display:flex}.item-photo-thumb{object-fit:cover;border:1px solid var(--border);border-radius:5px;width:3rem;height:3rem}.add-item-photo-preview,.item-edit-photo-preview{flex-basis:100%}.add-item-photos-label,.item-edit-photos-label{cursor:pointer;position:relative;overflow:hidden}.add-item-photos,.item-edit-photos{opacity:0;z-index:-1;width:.1px;height:.1px;position:absolute;overflow:hidden}.item-edit-photo-preview{margin-top:.35rem}.item-image-error{opacity:.35;cursor:not-allowed}.image-lightbox{z-index:10000;padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));box-sizing:border-box;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.image-lightbox.hidden{display:none}.image-lightbox-backdrop{cursor:zoom-out;background:#0c121ceb;position:absolute;inset:0}.image-lightbox-stage{z-index:1;pointer-events:none;justify-content:center;align-items:center;max-width:100%;max-height:100%;display:flex;position:relative}.image-lightbox-img{object-fit:contain;pointer-events:auto;width:auto;max-width:100%;height:auto;max-height:100%;image-rendering:high-quality;border-radius:4px;box-shadow:0 8px 40px #00000073}.image-lightbox-img.hidden,.image-lightbox-spinner.hidden,.image-lightbox-error.hidden{display:none}.image-lightbox-spinner{border-color:#fff #ffffff38 #ffffff38;width:2.75rem;height:2.75rem}.image-lightbox-error{color:#ffffffd9;text-align:center;pointer-events:none;margin:0;padding:0 1rem;font-size:.95rem}.image-lightbox-close{top:max(.65rem, env(safe-area-inset-top));right:max(.65rem, env(safe-area-inset-right));z-index:2;color:#fff;cursor:pointer;background:#ffffff24;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;font-size:1.75rem;line-height:1;display:flex;position:absolute}.image-lightbox-close:hover{background:#ffffff47}.image-lightbox-close:focus-visible{outline-offset:2px;outline:2px solid #fff}.item-text-modal{z-index:11000;padding:env(safe-area-inset-top) env(safe-area-inset-right) calc(env(safe-area-inset-bottom,0px) + var(--vv-keyboard-inset,0px)) env(safe-area-inset-left);box-sizing:border-box;flex-direction:column;display:flex;position:fixed;inset:0}.item-text-modal.hidden{display:none}.item-text-modal-backdrop{background:#0c121c8c;position:absolute;inset:0}.item-text-modal-sheet{z-index:1;background:var(--cream);border-radius:var(--radius);flex-direction:column;flex:1;min-height:0;margin:.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #0f1e3259}.item-text-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.item-text-modal-heading{flex:1;min-width:0}.item-text-modal-title{color:var(--heading);margin:0;font-size:1.05rem;font-weight:700}.item-text-modal-message{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem;line-height:1.35}.item-text-modal-message.hidden{display:none}.item-text-modal-date-wrap{border-bottom:1px solid var(--border);flex-shrink:0;padding:.65rem 1rem}.item-text-modal-date-wrap.hidden{display:none}.item-text-modal-date-label{color:var(--heading);align-items:center;gap:.65rem;margin:0;font-size:.88rem;display:flex}.item-text-modal-date-caption{min-width:2.5rem;font-weight:600}.item-text-modal-date{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex:1;max-width:12rem;padding:.45rem .55rem;font-family:inherit;font-size:.95rem}.item-text-modal-date:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #1e5fbf33}.item-text-modal-close{width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;font-size:1.5rem;line-height:1}.item-text-modal-close:hover{background:var(--bg);color:var(--text)}.item-text-modal-input{width:100%;min-height:12rem;color:var(--text);background:var(--cream);resize:none;border:none;border-radius:0;outline:none;flex:1;margin:0;padding:1rem;font-family:inherit;font-size:1rem;line-height:1.5}.item-text-modal-hint{color:var(--text-muted);flex-shrink:0;margin:0;padding:.35rem 1rem 0;font-size:.78rem}.item-text-modal-footer{border-top:1px solid var(--border);background:var(--cream);flex-shrink:0;gap:.5rem;padding:.75rem 1rem .85rem;display:flex}.item-text-modal-footer .btn-primary,.item-text-modal-footer .btn-ghost-dark{flex:1;padding:.65rem 1rem;font-size:1rem}.item-text{min-width:0;color:var(--text);text-align:left;word-break:break-word;flex:1;font-size:.9rem;line-height:1.45;transition:color .2s}.item-text-tappable{cursor:pointer}.item-text-tappable:hover{color:var(--accent)}.item-text.done,.item-text.done .item-body{color:var(--text-muted);text-decoration:line-through}.item-text.wip,.item-text.wip .item-body{color:var(--heading);font-style:italic}.item-date,.item-date-block{color:var(--text-muted);letter-spacing:.01em;font-size:.75rem;font-weight:600}.item-date{white-space:nowrap;margin-right:.35rem}.item-date-block{margin-bottom:.2rem;display:block}.item-body{white-space:pre-wrap;display:inline}.item-date-block+.item-body{display:block}.badge{color:#fff;background:#ffffff40;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-open{color:#fff;background:#e0a800}.badge-wip{color:#fff;background:#5b8de0}.empty-state,.error-state{height:100%;min-height:300px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.empty-icon{font-size:3rem}.empty-icon img{object-fit:contain;width:3rem;height:3rem;display:block}.app-spinner{border:3px solid #1e5fbf2e;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:2.5rem;height:2.5rem;animation:.75s linear infinite app-spinner-spin;display:inline-block}.app-spinner--sm{border-width:2px;width:1.1rem;height:1.1rem}.empty-icon .app-spinner{width:2.75rem;height:2.75rem}@keyframes app-spinner-spin{to{transform:rotate(360deg)}}@media (width<=600px){:root{--sidebar-w:min(92vw, 400px)}.file-view{padding:1rem}.file-header{flex-direction:column;align-items:flex-start}.file-save-dock,.app-shell:has(.sidebar-wrapper.collapsed) .file-save-dock{left:0}.file-save-dock-status{padding-left:1rem;padding-right:1rem}}.app-dialog{z-index:12000;box-sizing:border-box;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.app-dialog.hidden{display:none}.app-dialog-backdrop{-webkit-backdrop-filter:blur(3px);background:#0c121c80;position:absolute;inset:0}.app-dialog-card{z-index:1;background:var(--cream);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(100%,420px);max-height:min(85dvh,560px);padding:1.15rem 1.25rem 1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 48px #0f285047}.app-dialog-title{color:var(--heading);margin:0 0 .65rem;font-size:1.1rem;font-weight:700;line-height:1.3}.app-dialog-body{flex:1;min-height:0;margin-bottom:.85rem;overflow-y:auto}.app-dialog-message{color:var(--text);margin:0 0 .5rem;font-size:.92rem;line-height:1.5}.app-dialog-message:last-child{margin-bottom:0}.app-dialog-field{flex-direction:column;gap:.35rem;margin-top:.25rem;display:flex}.app-dialog-field-label{color:var(--text-muted);font-size:.82rem;font-weight:600}.app-dialog-input{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:6px;padding:.55rem .65rem;font-family:inherit;font-size:1rem}.app-dialog-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #1e5fbf33}.app-dialog-choices{flex-direction:column;gap:.4rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.app-dialog-choices--icons{grid-template-columns:repeat(auto-fill,minmax(2.75rem,1fr));gap:.35rem;max-height:min(50vh,320px);display:grid;overflow-y:auto}.app-dialog-choices--icons .app-dialog-choice{text-align:center;padding:.45rem}.app-dialog-choices--icons .app-dialog-choice-label{font-size:1.35rem;font-weight:400}.app-dialog-choices--icons li:first-child .app-dialog-choice-label{font-size:.85rem;font-weight:600}.app-dialog-choice{border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:8px;width:100%;padding:.65rem .75rem;transition:border-color .15s,background .15s}.app-dialog-choice:hover{border-color:var(--accent);background:#1e5fbf0f}.app-dialog-choice-label{color:var(--text);font-size:.95rem;font-weight:600;display:block}.app-dialog-choice-hint{color:var(--text-muted);margin-top:.15rem;font-size:.78rem;font-weight:400;display:block}.app-dialog-actions{flex-wrap:wrap;flex-shrink:0;gap:.5rem;display:flex}.app-dialog-btn{flex:1;min-width:5.5rem;padding:.6rem .85rem;font-size:.95rem}.app-dialog-btn-full{flex:100%}.app-dialog-btn-danger{background:#b42318!important}.app-dialog-btn-danger:hover:not(:disabled){background:#912018!important}.git-busy-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);pointer-events:all;background:#0f285047;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.page-icon-picker{z-index:12000;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.page-icon-picker.hidden{display:none}.page-icon-picker-backdrop{backdrop-filter:blur(4px);background:#0f285047;position:absolute;inset:0}.page-icon-picker-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;width:min(520px,100%);height:min(90vh,680px);max-height:min(90vh,680px);padding:1.1rem 1.15rem 1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #0f3c7838}.page-icon-picker-title{color:var(--accent);margin:0 0 .35rem;font-size:1.15rem}.page-icon-picker-search-wrap{flex-direction:column;flex-shrink:0;gap:.25rem;margin-bottom:.4rem;display:flex}.page-icon-picker-search-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.page-icon-picker-search{border:1px solid var(--border);background:var(--bg);border-radius:8px;outline:none;width:100%;padding:.55rem .75rem;font-size:1rem}.page-icon-picker-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px #1e5fbf33}.page-icon-picker-count{color:var(--text-muted);flex-shrink:0;margin:0 0 .45rem;font-size:.78rem}.page-icon-picker-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:auto;min-height:0;overflow:hidden auto}.page-icon-picker-empty{text-align:center;color:var(--text-muted);margin:1rem 0;font-size:.9rem}.page-icon-picker-empty.hidden{display:none}.page-icon-picker-grid{grid-template-columns:repeat(auto-fill,minmax(4.25rem,1fr));gap:.35rem;margin:0;padding:0 0 .5rem;list-style:none;display:grid}.page-icon-picker-cell{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;align-items:center;gap:.1rem;width:100%;padding:.35rem .2rem .3rem;transition:border-color .15s,background .15s;display:flex}.page-icon-picker-cell:hover,.page-icon-picker-cell.selected{border-color:var(--accent);background:#1e5fbf14}.page-icon-picker-glyph.page-icon--emoji{font-size:1.4rem;line-height:1.1}.page-icon-picker-glyph.material-symbols-outlined{font-size:1.45rem}.page-icon-picker-cell-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:100%;font-size:.58rem;line-height:1.1;overflow:hidden}.page-icon-picker-actions{flex-shrink:0;gap:.5rem;margin-top:.75rem;display:flex}.page-icon-picker-actions .btn-ghost-dark{flex:1}.git-busy-overlay.hidden{display:none}.git-busy-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:1rem;min-width:min(280px,100%);padding:1.5rem 1.75rem;display:flex;box-shadow:0 12px 40px #0f3c7838}.git-busy-label{color:var(--heading);text-align:center;margin:0;font-size:.92rem;font-weight:500}.http-debug-modal{z-index:12500;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}.http-debug-modal.hidden{display:none}.http-debug-modal-backdrop{background:#0c121c8c;position:absolute;inset:0}.http-debug-modal-sheet{z-index:1;background:var(--cream);border-radius:var(--radius);flex-direction:column;width:min(960px,100%);max-height:100%;margin:.75rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #0f1e3259}.http-debug-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.http-debug-modal-title{color:var(--heading);margin:0;font-size:1.05rem;font-weight:700}.http-debug-modal-actions{flex-shrink:0;gap:.5rem;display:flex}.http-debug-modal-hint{color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0;margin:0;padding:.5rem 1rem;font-size:.78rem}.http-debug-list{flex:1;min-height:0;padding:.5rem;overflow:auto}.http-debug-empty{text-align:center;color:var(--text-muted);margin:1.5rem 1rem;font-size:.9rem}.http-debug-entry{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:.45rem;overflow:hidden}.http-debug-entry--open{border-color:var(--accent)}.http-debug-entry-top{align-items:stretch;gap:.35rem;display:flex}.http-debug-entry-copy{flex-shrink:0;align-self:center;margin-right:.35rem}.http-debug-entry-summary{text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;grid-template-columns:auto auto auto auto 1fr;align-items:center;gap:.35rem .6rem;padding:.55rem .65rem;display:grid}.http-debug-entry-summary:hover{background:var(--bg)}.http-debug-entry-time{color:var(--text-muted);white-space:nowrap;font-family:ui-monospace,monospace;font-size:.72rem}.http-debug-entry-method{color:var(--accent);font-family:ui-monospace,monospace;font-size:.75rem;font-weight:700}.http-debug-entry-status{white-space:nowrap;font-family:ui-monospace,monospace;font-size:.72rem}.http-debug-status--ok{color:#1a7f37}.http-debug-status--warn{color:#9a6700}.http-debug-status--error{color:#cf222e}.http-debug-entry-duration{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.72rem}.http-debug-entry-url{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}.http-debug-entry-detail{border-top:1px solid var(--border);background:var(--bg);padding:.5rem .65rem .65rem}.http-debug-detail-row{margin-bottom:.65rem}.http-debug-detail-row:last-child{margin-bottom:0}.http-debug-detail-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.25rem;font-size:.7rem;font-weight:600;display:block}.http-debug-pre{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:6px;max-height:240px;margin:0;padding:.5rem .6rem;font-family:ui-monospace,monospace;font-size:.72rem;line-height:1.4;overflow:auto}.http-debug-pre--body{max-height:360px}@media (width<=640px){.http-debug-entry-summary{grid-template-rows:auto auto;grid-template-columns:auto auto 1fr}.http-debug-entry-duration{grid-column:1}.http-debug-entry-url{grid-column:1/-1}.http-debug-entry-copy{padding:.3rem .5rem;font-size:.72rem}}
