*{box-sizing:border-box} :root{--bg:#f7faff;--surface:#fff;--sidebar:#edf3fc;--text:#172b4d;--muted:#73829c;--line:#dfe7f3;--accent:#1976d2;--soft:#e5f1ff;--shadow:0 20px 70px #132a2320}html[data-theme=dark]{--bg:#0d1729;--surface:#17263e;--sidebar:#111e33;--text:#edf5ff;--muted:#9eafc9;--line:#2a3e5a;--accent:#69b8ff;--soft:#193756;--shadow:0 20px 70px #0007;color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button,.button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 14px;transition:background .15s,transform .15s}button:hover,.button:hover{background:var(--soft)}button:active{transform:scale(.98)}button:focus-visible,a:focus-visible{outline:3px solid #6cb6ff;outline-offset:3px}input,textarea,select{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:10px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}button.primary{background:#1976d2;color:white;border-color:#1976d2;font-weight:600}button.primary:hover{background:#1255a0}.primary span{margin-left:18px}aside{width:256px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);border-right:1px solid var(--line);padding:36px 22px 20px;display:flex;flex-direction:column;z-index:20}.brand{font-size:26px;letter-spacing:-1px;font-weight:750;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:9px}.brand-dot{margin-left:-9px;color:var(--accent)}.logo{background:#1976d2;color:#fff;width:35px;height:35px;border-radius:11px;text-align:center;font-size:28px;line-height:35px}.tagline{font-size:9px;letter-spacing:2px;color:var(--muted);margin:14px 0 32px}.capture{width:100%;text-align:left;padding:12px}.capture kbd{float:right;color:#c2d1c5;border:1px solid #ffffff40}kbd{font:10px inherit;padding:1px 5px;border-radius:4px;border:1px solid var(--line);color:var(--muted)}nav{margin:25px 0 25px}.nav-item{width:100%;background:none;border:0;text-align:left;display:flex;align-items:center;gap:12px;margin:4px 0;padding:11px 12px;color:var(--muted)}.nav-item.active{background:var(--surface);color:var(--text);box-shadow:0 2px 5px #00000004;font-weight:600}.nav-item .num{margin-left:auto;font-size:11px;color:var(--muted)}.nav-icon{font-size:18px;width:18px}.section-label{font-size:10px;letter-spacing:1.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;padding:0 10px}.section-label button{padding:0 3px;border:0;background:none;font-size:22px}#folders{overflow:auto}.folder-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding-top:30px}.local-badge{font-size:11px;color:var(--muted);padding:0 12px}.local-badge span{display:inline-block;background:#269cf5;width:6px;height:6px;border-radius:50%;margin-right:6px}.sidebar-bottom>p{font-size:10px;color:var(--muted);padding:0 24px;margin-top:3px}.profile{border:0;border-top:1px solid var(--line);border-radius:0;display:flex;gap:10px;align-items:center;background:none;width:100%;text-align:left;padding:20px 4px 0}.avatar{width:34px;height:34px;background:#d7e8ff;color:#245ea0;border:2px solid var(--surface);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;flex-shrink:0}.profile small{display:block;color:var(--muted);font-size:10px}.profile b{font-size:12px}.gear{margin-left:auto;color:var(--muted)}main{margin-left:256px}header{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 46px}.breadcrumb{font-size:11px;color:var(--muted);flex:1}.breadcrumb span{margin:0 13px;color:#b5b9b2}.breadcrumb b{font-weight:500;color:var(--text)}.icon-button{background:none;border:1px solid var(--line);font-size:18px;padding:6px 10px}.content{max-width:1250px;margin:auto;padding:48px 46px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:600;color:var(--muted)}h1{font-size:40px;font-weight:650;letter-spacing:-1.6px;margin:10px 0 8px;line-height:1.15}.title-dot{color:#57b8ff}.page-heading p{color:var(--muted);font-size:13px;margin:0}.capture-panel{background:var(--soft);border:1px solid #829d761c;border-radius:15px;display:flex;align-items:center;gap:22px;padding:25px 28px;margin:32px 0}.spark-orbit{font-size:42px;color:var(--accent);line-height:1;background:#ffffff40;border:1px solid #819b7730;width:70px;height:70px;display:grid;place-items:center;border-radius:50%}.capture-panel h2{font-size:20px;font-weight:550;letter-spacing:-.5px;margin:0 0 5px}.capture-panel p{font-size:12px;color:var(--muted);margin:0}.round-arrow{margin-left:auto;border-radius:50%;font-size:22px;background:transparent;color:var(--accent);width:42px;height:42px;padding:0;border-color:#829d7640}.toolbar{display:flex;gap:10px;align-items:center;margin-top:34px}.search{display:flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:10px;flex:1;min-width:0;padding:0 12px}.search span{font-size:24px;color:var(--muted)}.search input{border:0;background:none;width:100%;padding:11px;font-size:12px}.search kbd{white-space:nowrap}.toolbar select{font-size:11px;padding:12px;max-width:210px}.list-heading{margin:27px 0 17px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.3px;color:var(--muted)}.list-heading button{border:0;background:none;font-size:11px;padding:0}.notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;min-height:240px;align-content:start}.note-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:22px;text-align:left;display:flex;flex-direction:column;min-height:222px;cursor:pointer;transition:transform .2s,box-shadow .2s}.note-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #1c312908;background:var(--surface);border-color:#99ac9255}.card-top{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted)}.card-top .pin{margin-left:auto;color:var(--accent)}.note-card h3{font-size:17px;line-height:1.4;letter-spacing:-.4px;margin:17px 0 8px;overflow-wrap:anywhere}.note-card p{color:var(--muted);font-size:12px;line-height:1.7;margin:0 0 20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}.card-bottom{border-top:1px solid var(--line);padding-top:13px;margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:var(--muted)}.status{background:var(--soft);color:var(--accent);border-radius:5px;padding:3px 6px;font-size:9px}.empty{grid-column:1/-1;padding:45px 20px;text-align:center;border:1px dashed var(--line);border-radius:14px;min-height:280px;background:var(--surface)}.empty-icon{font-size:35px;color:#51a7ed}.empty h2{font-weight:550;font-size:20px;letter-spacing:-.5px;margin:10px 0}.empty p{color:var(--muted);max-width:350px;margin:0 auto 20px;font-size:12px}.empty button{font-size:12px}.notes.list{grid-template-columns:1fr}.notes.list .note-card{min-height:0}.notes.list .note-card h3{margin:8px 0}.notes.list .note-card p{margin-bottom:10px;-webkit-line-clamp:1}.compact .note-card{min-height:170px;padding:16px}.compact .note-card p{-webkit-line-clamp:2}footer{display:flex;justify-content:space-between;margin-top:50px;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:10px}.tiny-spark{width:15px;height:15px;object-fit:contain;margin-left:5px;vertical-align:middle}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:20px;width:min(660px,94vw);padding:27px;box-shadow:var(--shadow);max-height:90dvh;overflow:auto}dialog::backdrop{background:#17241d66;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0;font-size:22px;letter-spacing:-.6px}.close{border:0;background:var(--sidebar);border-radius:50%;font-size:23px;line-height:1;padding:3px 8px}.note-title{border:0;font-size:28px;letter-spacing:-.8px;font-weight:600;padding:5px 0;width:100%;background:none}.editor-options{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.editor-options select{font-size:11px;max-width:200px}.pin-label{display:flex;gap:4px;align-items:center;font-size:11px;margin-left:auto;color:var(--muted)}#note-body{border:0;border-radius:0;min-height:230px;width:100%;resize:vertical;background:none;padding:5px 0;font-size:15px;line-height:1.8}.editor-bottom{border-top:1px solid var(--line);padding-top:15px;display:flex;gap:12px;align-items:center}.attach-button{cursor:pointer;font-size:12px;color:var(--accent);font-weight:600}.muted{color:var(--muted);font-size:11px}.save-row{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:20px;justify-content:flex-end}.save-row small{margin-right:auto;color:var(--muted);font-size:10px}.danger{color:#b76860;border:0;background:none;font-size:11px}#attachments{display:flex;flex-direction:column;gap:10px}.attachment{background:var(--sidebar);border-radius:10px;padding:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.attachment img{max-width:100%;max-height:150px;border-radius:8px}.attachment video,.attachment audio{max-width:100%;max-height:200px}.attachment a{font-size:11px;color:var(--accent);overflow-wrap:anywhere}.attachment button{margin-left:auto;border:0;padding:3px 8px}.settings-section{border-top:1px solid var(--line);padding:20px 0}.settings-section h3{font-size:10px;letter-spacing:1.5px;color:var(--muted);margin:0 0 15px}.settings-section>label{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0;font-size:12px}.settings-section input:not([type=checkbox]),.settings-section select{max-width:220px;width:55%;font-size:12px}.settings-section p{font-size:12px;line-height:1.7;color:var(--muted)}.button-row{display:flex;gap:10px;align-items:center}.button-row button,.button{font-size:12px}.settings-section small{display:block;color:var(--muted);font-size:10px;margin-top:15px}.field{display:block;margin:20px 0}.field input{display:block;margin-top:8px;width:100%}.field input[type=color]{height:45px;width:80px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--text);color:var(--surface);padding:12px 22px;border-radius:12px;z-index:100;font-size:12px;transition:transform .2s;max-width:90vw;text-align:center}#toast.show{transform:translateX(-50%) translateY(0)}.mobile-menu,.mobile-avatar,.mobile-fab{display:none}[hidden]{display:none!important}@media(min-width:1500px){.content{padding-top:65px}}@media(max-width:1150px){.notes{grid-template-columns:repeat(2,minmax(0,1fr))}aside{width:225px;padding-left:16px;padding-right:16px}main{margin-left:225px}.content{padding:35px 28px}header{padding:0 28px}.search kbd{display:none}}@media(max-width:750px){aside{transform:translateX(-100%);width:270px;box-shadow:var(--shadow);transition:transform .2s}.menu-open aside{transform:translateX(0)}main{margin:0}header{height:65px;padding:0 20px;gap:12px}.mobile-menu{display:block;border:0;padding:5px;background:none}.mobile-avatar{display:flex;padding:0}.content{padding:30px 20px 90px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:34px}.page-heading p{font-size:12px}.desktop-new{display:none}.capture-panel{margin:25px 0;padding:18px;gap:14px}.spark-orbit{width:45px;height:45px;font-size:30px;flex-shrink:0}.capture-panel h2{font-size:17px}.capture-panel p{font-size:10px}.round-arrow{display:none}.toolbar{flex-wrap:wrap;margin-top:25px;gap:8px}.search{flex-basis:100%}.toolbar select{flex:1;max-width:none}.notes{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.note-card{padding:15px;min-height:210px}.note-card h3{font-size:15px}.card-top{font-size:8px}.card-bottom{font-size:8px;gap:5px;flex-wrap:wrap}.mobile-fab{display:block;position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border-radius:30px;padding:14px 25px;box-shadow:0 7px 30px #28452f44;z-index:15;white-space:nowrap}.mobile-fab:active{transform:translateX(-50%) scale(.98)}dialog{padding:20px;border-radius:18px}.note-title{font-size:25px}.editor-bottom .muted{font-size:9px}.settings-section>label{gap:8px}footer{font-size:9px}#toast{bottom:85px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#auth-dialog,#welcome-dialog{max-width:480px;padding:28px}#auth-dialog .field{display:flex;flex-direction:column;gap:8px;margin:18px 0}#auth-dialog input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:inherit}#auth-error,#sync-message{color:#cf4555;font-size:13px}#welcome-dialog p,#mode-description{line-height:1.65}#auth-dialog [hidden],#settings [hidden]{display:none!important}#auth-submit{width:100%;margin:12px 0}.button-row{flex-wrap:wrap}#storage-label{font-size:12px}#welcome-dialog .button-row{margin-top:22px}
#attach-options{padding:16px 0}#capture-dialog video,#capture-dialog img{display:block;width:100%;max-height:50dvh;object-fit:contain;border-radius:12px;background:#0d1729;margin:16px 0}#capture-dialog audio{display:block;width:100%;margin:20px 0}#capture-dialog .button-row{margin-top:18px}#capture-message{min-height:3em;font-size:13px}#capture-use{margin-left:auto}.attachment button[data-save-attachment]{font-size:11px;margin-left:auto}.attachment button[data-remove-attachment]{margin-left:0}button:disabled{opacity:.55;cursor:not-allowed}#attach-toggle{background:var(--soft)}

/* Keep the page introduction compact so ideas lead the workspace. */
header{height:48px;padding:0 28px;gap:10px}.content{padding:0 28px 24px}.page-heading{height:calc(25svh - 48px);min-height:64px;max-height:140px;padding:10px 0}.page-heading .eyebrow,.page-heading #subtitle{display:none}h1{font-size:30px;margin:0}.toolbar{margin-top:0;flex-wrap:wrap}.search{min-width:160px}.toolbar select{padding:10px 8px}.breadcrumb{display:flex;align-items:center;min-width:0}.breadcrumb #workspace-name{margin:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.breadcrumb b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-heading{margin:18px 0 12px}.profile>span:nth-child(2){min-width:0}.profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:145px}.media-thumbs{display:flex;gap:5px;align-items:center;margin:0 0 12px;overflow:hidden;flex-shrink:0}.media-thumb{width:36px;height:36px;object-fit:cover;border-radius:6px;background:var(--soft);flex-shrink:0}.audio-thumb{display:grid;place-items:center;font-size:22px;color:var(--accent)}.video-thumb{position:relative;width:36px;height:36px;flex-shrink:0}.video-thumb>span{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:12px;text-shadow:0 1px 4px #000}.media-more{font-size:10px;color:var(--muted)}.attachment-size{font-size:11px;color:var(--muted)}#attachment-summary{margin:12px 0}.near-limit{color:#b35e17;font-weight:600}.card-bottom>span:first-child{line-height:1.7}.editor-bottom{flex-wrap:wrap}
@media(max-width:750px){header{padding:0 16px}.content{padding:0 16px 90px}.page-heading{max-height:125px}h1{font-size:28px}.toolbar select{font-size:10px;min-width:0}.search{flex-basis:100%}.note-card{padding:12px}.media-thumb,.video-thumb{width:30px;height:30px}.media-thumbs{gap:4px}.note-card h3{margin-top:10px}.note-card p{margin-bottom:12px}}
@media(max-height:450px){.page-heading{min-height:44px;height:44px}header{height:40px}h1{font-size:24px}}

.idea-open{font:inherit;letter-spacing:inherit;text-align:left;border:0;background:none;padding:0;overflow-wrap:anywhere}.thumb-open{padding:0;border:0;background:none;border-radius:6px;display:flex;flex-shrink:0}.attachment .attachment-preview{padding:0;margin:0;border:0;background:none;display:block;max-width:100%;cursor:zoom-in}.attachment-preview img,.attachment-preview video{display:block}.video-preview{position:relative}.video-preview span{position:absolute;inset:0;display:grid;place-items:center;color:white;text-shadow:0 1px 5px #000;background:#0003;border-radius:8px}#media-viewer{width:96vw;max-width:1500px;height:94dvh;max-height:94dvh;padding:18px;overflow:hidden}#media-viewer[open]{display:flex;flex-direction:column}#media-viewer .dialog-head{margin:0 0 12px;gap:12px;flex-shrink:0}#viewer-title{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#viewer-close{flex-shrink:0}#viewer-content{flex:1;min-height:0;overflow:auto;background:#08101e;border-radius:10px;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain}#viewer-content img,#viewer-content video{display:block;max-width:100%;max-height:100%;object-fit:contain}#viewer-content.zoomed{display:block}#viewer-content.zoomed img{width:200%;max-width:none;max-height:none;height:auto}.viewer-tools{display:flex;align-items:center;gap:12px;padding-top:12px;flex-shrink:0}.viewer-tools small{color:var(--muted);font-size:11px}@media(max-width:750px){#media-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.viewer-tools{flex-wrap:wrap}}

/* Workspace workflow controls remain visible in compact and expanded cards. */
.toolbar{flex-wrap:wrap}.toolbar .search{min-width:180px;flex:1 1 240px}
.card-bottom{flex-wrap:wrap;gap:8px}.card-bottom>span:first-child{flex:1 1 100%}
.workflow-badge{display:inline-flex;align-items:center;gap:5px;max-width:100%;border:1px solid var(--workflow-color);border-radius:8px;padding:3px 6px;background:color-mix(in srgb,var(--workflow-color) 12%,transparent)}
.workflow-dot{width:7px;height:7px;border-radius:50%;background:var(--workflow-color);flex-shrink:0}
.workflow-badge select{min-width:0;max-width:180px;padding:3px 0;border:0;background:transparent;color:inherit;font-size:12px;cursor:pointer}
.workflow-badge select option{background:var(--surface,#fff);color:var(--text,#17243a)}
.editor-workflow{display:flex;align-items:center;gap:5px;font-size:12px}.editor-workflow select{border-left:5px solid var(--workflow-color);max-width:220px}
.workflow-row{display:flex;gap:6px;align-items:center;margin:9px 0}.workflow-row input[type=color]{width:36px;height:36px;padding:2px;flex-shrink:0}.workflow-row input[data-option-name]{width:100%;min-width:60px}.workflow-actions{display:flex;gap:3px}.workflow-actions button{padding:7px 9px}.workflow-actions button:disabled{opacity:.35;cursor:default}
#workflow-delete-dialog{max-width:460px}#workflow-delete-copy{line-height:1.5}#workflow-replacement{width:100%}
@media(max-width:600px){.toolbar select{flex:1 1 42%;min-width:0;max-width:100%}.toolbar .search{flex-basis:100%}.editor-options{flex-wrap:wrap}.editor-workflow{flex:1 1 40%}.editor-workflow select{width:100%;min-width:0}.workflow-badge select{max-width:150px}.workflow-row{gap:4px}.workflow-actions button{padding:8px}.settings-section h4{margin-bottom:8px}}

/* Prevent guest/default workspace flash while auth and private cloud content load. */
#startup-screen{display:none;position:fixed;inset:0;z-index:9999;background:var(--bg);color:var(--text);align-items:center;justify-content:center;gap:12px;font-size:16px;font-weight:600}
#startup-screen .boot-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--accent);color:white;font-size:28px}
html:not(.app-ready) #startup-screen{display:flex}
html:not(.app-ready) aside,html:not(.app-ready) main,html:not(.app-ready) .mobile-fab{visibility:hidden}

/* Release-aware update notice: visible even when an older tab is still open. */
#update-banner[hidden],#update-backup-warning[hidden],#update-export[hidden]{display:none!important}
.update-banner{position:fixed;z-index:90;left:50%;top:calc(10px + env(safe-area-inset-top,0px));transform:translateX(-50%);width:min(94vw,820px);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:14px;background:var(--surface);color:var(--text);border:2px solid var(--accent);box-shadow:0 12px 34px #0003}
.update-message{display:grid;gap:3px;min-width:0;line-height:1.35}
.update-message strong{font-size:15px}
.update-message span{font-size:13px}
.update-message small{font-size:12px;color:#b45309}
.update-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.update-actions button{white-space:nowrap}
@media(max-width:700px){.update-banner{flex-direction:column;align-items:stretch;top:calc(8px + env(safe-area-inset-top,0px));padding:12px}.update-actions{flex-wrap:wrap}.update-actions button{flex:1}}

#workspace-save-state{position:sticky;top:0;z-index:4;padding:10px 20px;background:var(--bg,#f7faff);border-bottom:1px solid #97a9bd;display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;font-size:13px}#workspace-save-detail{flex:1;min-width:160px}#workspace-save-state[data-state=error]{background:#fff0ef;color:#74241d}#workspace-save-state[data-state=pending]{background:#fff5d6;color:#5a4300}#editor .dialog-head{position:sticky;top:0;z-index:3;background:var(--bg,#f7faff)}#editor .dialog-head .close{width:auto;min-width:64px;font-size:16px}

.secure-key-dialog{max-width:520px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;padding:24px;border:1px solid #cbd5e1;border-radius:20px}.secure-key-dialog label{display:block;margin:16px 0}.secure-key-dialog input:not([type=checkbox]){width:100%;padding:12px;border:1px solid #64748b;border-radius:8px}.secure-key-dialog code{display:block;overflow-wrap:anywhere;margin:16px 0}.key-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.key-error{color:#b42318}.secure-key-dialog [hidden]{display:none!important}

/* Spark editor: one blue primary Done action in an always-visible modal footer.
   Only the middle content pane scrolls; the footer never follows the textarea. */
#editor{width:min(620px,94vw);height:min(590px,calc(100dvh - 20px));max-height:calc(100dvh - 20px);overflow:hidden;padding:18px 22px 14px}
#editor #note-form{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#editor .dialog-head{position:static;top:auto;flex:0 0 auto;background:var(--surface);padding:0 0 8px;margin:0;border-bottom:1px solid var(--line)}
#editor .dialog-head .close{display:grid;place-items:center;min-width:44px;width:44px;min-height:44px;padding:4px;font-size:23px}
#editor .editor-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 2px 16px}
#editor .editor-timestamps{font-size:11px;line-height:1.5;color:var(--muted);font-variant-numeric:tabular-nums;margin:4px 0 10px;overflow-wrap:anywhere}
#editor .save-row{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:0;padding:10px 0 0;border-top:1px solid var(--line);background:var(--surface)}
#editor .save-row small{font-size:11px;line-height:1.3;min-width:0;margin:0;overflow-wrap:anywhere}
#editor .save-row .primary{min-height:44px;padding:10px 16px;white-space:nowrap}
#editor .save-row .danger{min-height:44px;padding:8px;white-space:nowrap}
.card-bottom>.spark-timestamps{flex:1 1 100%}
.spark-timestamps{display:flex;flex-wrap:wrap;gap:2px 12px;min-width:0;color:var(--muted);font-size:11px;line-height:1.6;font-variant-numeric:tabular-nums}
.spark-timestamps time{white-space:normal;overflow-wrap:anywhere}
.spark-media-meta{color:var(--muted);font-size:10px;flex:1 1 100%}
@media (max-width:750px), (any-pointer:coarse) and (orientation:landscape){
 #editor{position:fixed;left:50%;right:auto;top:calc(var(--spark-editor-visible-top,0px) + max(8px,env(safe-area-inset-top,0px)));transform:translateX(-50%);margin:0;width:min(96vw,620px);height:calc(var(--spark-editor-visible-height,100dvh) - max(8px,env(safe-area-inset-top,0px)) - max(8px,env(safe-area-inset-bottom,0px)));max-height:calc(var(--spark-editor-visible-height,100dvh) - max(8px,env(safe-area-inset-top,0px)) - max(8px,env(safe-area-inset-bottom,0px)))}
}
@media(max-width:750px){
 #editor{padding:12px 14px 10px}
 #editor .note-title{font-size:22px}
 #editor #note-body{min-height:160px}
 #editor .save-row{gap:6px;padding:9px 0 max(2px,env(safe-area-inset-bottom,0px))}
 #editor .save-row small{font-size:10px}
 #editor .save-row .primary{min-height:44px;padding:10px 15px}
 .spark-timestamps{font-size:11px}
}

.staging-banner{position:fixed;top:0;left:0;right:0;z-index:9000;height:40px;display:flex;align-items:center;justify-content:center;gap:12px;background:#e9f0ff;color:#182235;font:12px system-ui;border-bottom:1px solid #bbc9e7}.staging-banner button{padding:5px 9px;font:inherit;background:white;border:1px solid #97acd5;border-radius:6px}.staging{padding-top:40px}.staging #sidebar{top:40px}.staging #startup-screen{top:40px}@media(max-width:600px){.staging-banner span{display:none}}

/* Ordinary encrypted sync is discoverable without a full-width warning. */
.sync-details-toggle{display:none}.secure-local-first .sync-details-toggle{display:inline-block}
.secure-local-first #workspace-save-state:not([data-state=error]):not([data-state=attention]){position:static;width:fit-content;max-width:100%;margin:6px 20px;padding:4px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted,#536579);font-size:12px}
.secure-local-first #workspace-save-state:not(.sync-details-open):not([data-state=error]):not([data-state=attention]) #workspace-save-detail,.secure-local-first #workspace-save-state:not(.sync-details-open):not([data-state=error]):not([data-state=attention]) #workspace-save-retry,.secure-local-first #workspace-save-state:not(.sync-details-open):not([data-state=error]):not([data-state=attention]) #workspace-save-export{display:none}
#workspace-save-state[data-state=attention]{background:#fff5d6;color:#5a4300}
/* Routine legacy-cloud saves stay quiet; delayed/offline/error states retain recovery UI. */
#workspace-save-state.quiet-cloud-save{position:static;width:fit-content;max-width:100%;margin:6px 20px;padding:4px 8px;border:0;background:transparent;color:var(--muted,#536579);font-size:12px}

#header-sign-in{white-space:nowrap;flex-shrink:0;padding:7px 10px;font-size:12px}@media(max-width:400px){header{gap:6px}#header-sign-in{padding:7px 8px}}

#local-preview{position:fixed;inset:0;z-index:10000;overflow:auto;background:var(--bg);color:var(--text)}#local-preview header{justify-content:space-between}#local-preview-notes{margin-top:28px}#local-preview-notes .note-card{cursor:default}#auth-local{width:100%;margin:0 0 12px}#startup-screen button.primary,#auth-submit,#header-sign-in{color:#fff;background:#1976d2;border-color:#1976d2}#startup-screen button.primary:hover,#auth-submit:hover,#header-sign-in:hover{background:#1255a0;color:#fff}#auth-dialog:focus-visible,#auth-local:focus-visible{outline:3px solid #6cb6ff;outline-offset:3px}

/* Release A: presentation only; preserve timestamp values and workflows. */
.tagline{font-size:11px;letter-spacing:normal;line-height:1.4;overflow-wrap:break-word}
#editor .editor-bottom{flex:0 0 auto;display:flex;gap:8px;align-items:center;padding:8px 0 0;border:0;min-width:0}
#editor #attach-toggle{min-height:44px;white-space:nowrap}
#editor #attachment-budget{min-width:0;overflow-wrap:anywhere}
#editor #attach-options{flex:0 1 auto;min-height:0;max-height:min(32dvh,180px);overflow:auto;padding:6px 0}
#editor #note-body{min-height:120px;max-height:42dvh;overflow:auto;resize:vertical}
#editor .editor-timestamps{text-align:right}
.card-bottom>.spark-timestamps{justify-content:flex-end;text-align:right;margin-left:auto}
@media(max-width:750px){#editor #note-body{min-height:100px}#editor .editor-bottom{padding-top:4px}#editor #attach-options{max-height:min(28dvh,150px)}}

/* Original owner-supplied mark; preserve aspect ratio and blue tile. */
img.logo,#startup-screen img.boot-mark{object-fit:contain;aspect-ratio:388 / 385;border-radius:20%;background:transparent}

.project-title{display:inline;border:0;background:transparent;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;overflow-wrap:anywhere}.project-title:hover{background:transparent;text-decoration:underline}.project-title:focus-visible{outline:3px solid #6cb6ff;outline-offset:4px}
#toast{display:flex;align-items:center;gap:10px;opacity:0;pointer-events:none}#toast.show{opacity:1}#toast .toast-dismiss{pointer-events:auto;flex:0 0 auto;border:0;background:transparent;color:inherit;padding:4px 8px;min-width:36px;min-height:36px;font-size:20px;line-height:1}#toast .toast-dismiss:hover{background:#8884}@media(max-width:750px){#toast{bottom:max(105px,calc(env(safe-area-inset-bottom,0px) + 85px))}}

.filter-group{position:relative}.filter-group summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 12px;min-height:42px}.filter-group summary::-webkit-details-marker{display:none}.filter-group summary:focus-visible{outline:3px solid #6cb6ff;outline-offset:3px}.filter-group summary span{color:var(--muted);margin-left:5px}.filter-group fieldset{position:absolute;z-index:10;top:100%;left:0;min-width:210px;max-width:min(300px,85vw);max-height:50vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px;box-shadow:var(--shadow)}.filter-group legend{font-size:12px}.filter-group fieldset label,.hide-completed{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px}.filter-group input,.hide-completed input{width:18px;height:18px;flex:none}.filter-group fieldset label:hover{background:var(--soft)}#clear-filters{min-height:42px}@media(max-width:600px){.filter-group{flex:1 1 40%;min-width:0}.filter-group fieldset{max-width:85vw}.hide-completed{flex:1 1 40%}}

#clear-filters{color:var(--text);background:var(--surface);border-color:var(--line)}#clear-filters:hover{color:var(--text);background:var(--soft)}#clear-filters:focus-visible{outline:3px solid #6cb6ff;outline-offset:3px}.filter-group fieldset label span{overflow-wrap:anywhere}@media(max-width:600px){#priority-filter-panel fieldset{left:auto;right:0}}

/* Startup recovery controls follow the selected device theme. */
#startup-screen button:not(.primary){color:var(--text,#182235);background:var(--surface,#fff);border-color:var(--line,#dfe7f3)}#startup-screen button:not(.primary):hover{color:var(--text,#182235);background:var(--soft,#e5f1ff)}#startup-screen button:focus-visible{outline:3px solid #6cb6ff;outline-offset:3px}

/* Compact heading and readable actions on the warning's light background. */
.page-heading{height:48px;min-height:48px;padding:4px 0}
#workspace-save-state[data-state=attention] button,#workspace-save-state[data-state=error] button{color:#172b4d;background:#fff;border-color:#60718b}
#workspace-save-state[data-state=attention] button:hover,#workspace-save-state[data-state=error] button:hover{color:#172b4d;background:#e5f1ff}
#workspace-save-state[data-state=attention] button:focus-visible,#workspace-save-state[data-state=error] button:focus-visible{outline:3px solid #1255a0;outline-offset:2px}
#editor-trace-controls{grid-column:1/-1}#editor-trace-export{min-height:44px}#editor .editor-scroll [data-save-trace-output]{width:100%;min-height:7em}

/* Mobile editor: allocate spare scroll-pane space to the spark body. */
@media(max-width:750px){
 #editor .editor-scroll{display:flex;flex-direction:column}
 #editor .editor-scroll > *{flex-shrink:0}
 #editor #note-body{flex:1 0 auto;min-height:100px;max-height:none;overflow:auto;resize:vertical}
}

/* Temporary layout only while a reliable mobile visual viewport is keyboard-shrunken. */
@media(max-width:750px){
 #editor.typing-compact #note-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;column-gap:8px}
 #editor.typing-compact.body-edit-intent #note-form{grid-template-rows:0 minmax(0,1fr) auto auto auto auto}
 #editor.typing-compact.body-edit-intent .dialog-head{display:none}
 #editor.typing-compact .editor-scroll{grid-row:2;grid-column:1/-1}
 #editor.typing-compact .editor-bottom,#editor.typing-compact .save-row{display:contents}
 #editor.typing-compact #attach-options{grid-row:3;grid-column:1/-1}
 #editor.typing-compact .attachment-area{grid-row:5;grid-column:1;min-width:0;max-width:100%;align-self:center}
 #editor.typing-compact .save-row .primary{grid-row:5;grid-column:2;min-width:44px;min-height:44px;align-self:center}
 #editor.typing-compact #save-status{grid-row:4;grid-column:1/-1;min-width:0;overflow-wrap:anywhere}
 #editor.typing-compact #attachment-budget,#editor.typing-compact #delete-note{display:none}
 #editor.typing-compact:has(#attachments:empty) #attachment-summary{display:none}
}

/* Mobile-only project menu hit area; preserve the desktop breadcrumb. */
button.breadcrumb-menu.mobile-menu{display:none}
@media(max-width:750px){
 header>.mobile-menu{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;padding:0;font-size:22px;line-height:1;flex-shrink:0}
 header>.breadcrumb{position:relative;height:40px;font-size:11px}
 header>.breadcrumb span:not(#workspace-name){margin:0 6px;flex-shrink:0}
 header .icon-button,header .mobile-avatar,header #header-sign-in{flex-shrink:0}
 button.breadcrumb-menu.mobile-menu{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;border-radius:0;transform:none}
 button.breadcrumb-menu.mobile-menu:hover,button.breadcrumb-menu.mobile-menu:active{background:transparent;transform:none}
 button.breadcrumb-menu.mobile-menu:focus-visible{outline:3px solid #6cb6ff;outline-offset:2px}
}


/* Keep the workspace header visible while scrolling. */
body>main>header{position:sticky;top:0;z-index:3;background:var(--bg)}
body>main>#workspace-save-state{top:48px}
body.staging>main>header{top:40px}
body.staging>main>#workspace-save-state{top:88px}
@media(max-height:450px){body>main>#workspace-save-state{top:40px}body.staging>main>#workspace-save-state{top:80px}}


/* Progressive vertical overscroll containment while editing on touch devices. */
@media (pointer:coarse) and (max-width:750px), (pointer:coarse) and (orientation:landscape){
 html:has(#editor[open]){overscroll-behavior-y:none}
 #editor[open],#editor[open] #note-form{overscroll-behavior-y:contain}
}


/* Keep the save-status strip in normal page flow. */
body>main>#workspace-save-state{position:static}


/* Keep mobile authentication and unlock inputs readable without forcing zoom. */
@media (pointer:coarse) and (max-width:750px), (pointer:coarse) and (orientation:landscape){
 #auth-dialog input:not([type=checkbox]),.secure-key-dialog input:not([type=checkbox]){font-size:16px}
}


/* Mobile editor text: 16px without restricting browser zoom. */
@media (pointer:coarse) and (max-width:750px), (pointer:coarse) and (orientation:landscape){
 #editor #note-body{font-size:16px}
}
/* Off-screen cards skip style, layout and paint. Opening the editor dialog otherwise recalculates every card. */
.note-card{content-visibility:auto;contain-intrinsic-size:auto 230px}

/* Editor-only categorization; cards retain their existing controls. */
#editor .editor-options{display:grid;grid-template-columns:minmax(105px,1.2fr) minmax(78px,1fr) minmax(78px,1fr) 44px;align-items:center;gap:6px;min-width:0;margin:8px 0}
#editor .editor-options>select,#editor .editor-workflow,#editor .editor-workflow select{width:100%;min-width:0;max-width:100%}
#editor .editor-workflow{display:block}
#editor .pin-label{position:relative;display:grid;place-items:center;width:44px;height:44px;margin:0;border:1px solid var(--line);border-radius:10px;color:var(--text);cursor:pointer}
#editor .pin-label input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
#editor .pin-label svg{width:22px;height:22px;pointer-events:none}
#editor .pin-label:has(input:checked){color:var(--accent);background:var(--soft);border-color:var(--accent)}
#editor .pin-label:has(input:focus-visible){outline:3px solid #6cb6ff;outline-offset:3px}
@media(max-width:375px){#editor .editor-options{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}#editor #note-folder{grid-column:1/-1}}

/* Give status room while preserving a full-width project on narrow screens. */
#editor .editor-options{grid-template-columns:minmax(104px,1.2fr) minmax(100px,1.3fr) minmax(68px,.8fr) 44px}
@media(max-width:388px){#editor .editor-options{grid-template-columns:minmax(120px,1.5fr) minmax(68px,1fr) 44px}#editor #note-folder{grid-column:1/-1}}

#editor .attachment-area{display:flex;align-items:center;gap:8px;min-width:0}
#editor .attachment-info{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
#editor #attachment-summary{margin:0}
#editor.typing-compact .attachment-info{font-size:9px;min-width:0;max-width:100%;overflow-wrap:anywhere}
#editor.typing-compact #attach-toggle{flex:0 0 auto}
#editor.typing-compact #editor-trace-controls{grid-row:6;grid-column:1/-1}
#editor.typing-compact:has(#attachments:empty) .attachment-info{display:none}

/* Intermediate settings draft footer; durable Done is not yet wired. */
#settings[open]{display:flex;flex-direction:column;overflow:hidden}
#settings .settings-content{overflow:auto;min-height:0;flex:1 1 auto}
#settings .settings-draft-footer{display:flex;justify-content:space-between;gap:12px;flex:0 0 auto;padding:8px 0 max(8px,env(safe-area-inset-bottom,0px))}
#settings .settings-draft-footer button{min-height:44px}


/* Compact mobile controls: keep the checkbox target distinct and keyboard reachable. */
@media(max-width:750px){
 #editor .pin-label{width:40px;height:44px}
 #editor .pin-label svg{width:12px;height:12px}
 #editor .editor-options{grid-template-columns:minmax(100px,1.2fr) minmax(100px,1.3fr) minmax(76px,.8fr) 40px}
 #editor #note-priority{padding-left:4px;padding-right:4px}
}
@media(max-width:388px){#editor .editor-options{grid-template-columns:minmax(120px,1.5fr) minmax(72px,1fr) 40px}}
