*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f5f7fa;color:#17202a}body{min-height:100vh;display:flex;flex-direction:column}a{color:#235f9c;text-decoration:none}button,.button,input,textarea,select{font:inherit}button,.button{border:1px solid #cbd3dc;background:#fff;border-radius:8px;padding:.58rem .8rem;cursor:pointer}.primary{background:#173f6b;color:#fff;border-color:#173f6b}.danger{color:#a12121}.topbar{height:62px;background:#fff;border-bottom:1px solid #dfe4ea;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10}.brand{font-weight:750}.brand span{font-size:.78rem;color:#637083;margin-left:6px}.top-actions{display:flex;gap:16px;align-items:center}.app-shell{display:grid;grid-template-columns:240px 1fr;flex:1}.sidebar{background:#fff;border-right:1px solid #dfe4ea;padding:18px;display:flex;flex-direction:column;gap:5px}.sidebar a{padding:9px 10px;border-radius:7px;color:#2c3641}.sidebar a.active,.sidebar a:hover{background:#edf3f9}.sidebar h4{margin:18px 8px 6px;color:#637083}.search input,.folder-form input{width:100%}.folder-form{display:flex;gap:5px}.workspace{padding:26px}.workspace-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.workspace-head h1{margin:0}.new-menu{display:flex;gap:8px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.item-card{background:#fff;border:1px solid #dfe4ea;border-radius:12px;padding:16px;min-height:145px}.card-title{display:flex;justify-content:space-between;gap:8px;font-weight:700}.card-title small{font-weight:500;color:#7a8795;text-transform:uppercase}.preview,.clip{margin-top:12px;line-height:1.45}.clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;gap:12px;margin-top:18px;align-items:center}.card-actions form{display:flex;gap:5px}.empty{background:#fff;border:1px dashed #cbd3dc;padding:35px;border-radius:10px;text-align:center;color:#718096}.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.55);z-index:50;display:flex;justify-content:flex-end}.editor-panel{background:#fff;width:min(760px,96vw);height:100vh;overflow:auto;padding:24px;box-shadow:-6px 0 30px rgba(0,0,0,.15)}.editor-head{display:flex;justify-content:space-between;align-items:center}.editor-panel label,.auth-card label{display:block;font-weight:650;margin:14px 0 6px}.editor-panel input,.editor-panel select,.auth-card input{width:100%;padding:.7rem;border:1px solid #cbd3dc;border-radius:8px;background:#fff}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1fr 1fr}.check{display:flex!important;align-items:center;gap:8px;margin-top:36px!important}.check input{width:auto}.toolbar{display:flex;flex-wrap:wrap;gap:5px;border:1px solid #cbd3dc;border-bottom:0;border-radius:8px 8px 0 0;padding:7px;background:#f7f9fb}.rich-editor{min-height:260px;border:1px solid #cbd3dc;border-radius:0 0 8px 8px;padding:14px;outline:none;line-height:1.5}.editor-actions{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.password-row{display:flex;gap:5px}.password-row input{flex:1}.auth-body{display:grid;place-items:center;background:#edf2f7;padding:20px}.auth-card{background:#fff;border:1px solid #dce3ea;border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.08);padding:30px;width:min(460px,96vw)}.auth-card h1{margin-top:0}.auth-card button.primary{width:100%;margin-top:14px}.muted{color:#6c7886}.small{font-size:.85rem}.alert{padding:10px 12px;border-radius:8px;background:#e9f3ff;margin:12px 0}.alert.danger{background:#ffebeb;color:#8d1c1c}hr{border:0;border-top:1px solid #e1e6eb;margin:20px 0}footer{background:#fff;border-top:1px solid #dfe4ea;text-align:center;padding:14px;color:#718096;font-size:.86rem}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #dfe4ea;display:grid;grid-template-columns:repeat(2,1fr)}.sidebar .search,.sidebar h4,.folder-form{grid-column:1/-1}.workspace{padding:16px}.workspace-head{align-items:flex-start;flex-direction:column}.new-menu{width:100%;overflow:auto}.grid.two{grid-template-columns:1fr}.check{margin-top:5px!important}.top-actions span{display:none}.cards{grid-template-columns:1fr}.editor-panel{width:100vw}.modal-backdrop{background:#fff}}

/* V1.1.0 multi-user administration */
.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);flex:1;min-height:0}.admin-nav{background:#fff;border-right:1px solid #dfe4ea;padding:22px 16px;display:flex;flex-direction:column;gap:6px}.admin-nav h3{margin:0 10px 14px;font-size:1rem}.admin-nav a{padding:10px 12px;border-radius:8px;color:#2c3641}.admin-nav a.active,.admin-nav a:hover{background:#edf3f9}.admin-workspace{max-width:1500px;width:100%;margin:0 auto}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:18px}.stat-card,.panel{background:#fff;border:1px solid #dfe4ea;border-radius:12px;padding:18px}.stat-card strong{font-size:1.8rem;display:block}.stat-card span{color:#6c7886;font-size:.9rem}.panel{margin-bottom:16px}.panel h2{margin:0 0 12px;font-size:1.08rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-wrap{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:12px;border-bottom:1px solid #e6ebf0;vertical-align:top}th{font-size:.8rem;color:#637083;text-transform:uppercase;letter-spacing:.03em;background:#fafbfd}tr:last-child td{border-bottom:0}.status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:700}.status.ok{background:#e9f7ee;color:#176837}.status.off{background:#f1f3f5;color:#626d78}.inline-form{margin:0}.inline-form select{padding:.45rem .55rem;border:1px solid #cbd3dc;border-radius:7px;background:#fff}.action-stack{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.action-stack form{margin:0}.action-stack details{position:relative}.action-stack summary{cursor:pointer;color:#235f9c;padding:8px 0}.mini-form{position:absolute;right:0;z-index:5;background:#fff;border:1px solid #dfe4ea;border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.12);padding:10px;display:flex;gap:6px;min-width:310px}.mini-form input{min-width:210px;padding:.55rem;border:1px solid #cbd3dc;border-radius:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,.panel form>label{display:block;font-weight:650}.form-grid input,.form-grid select,.panel form>label input{width:100%;padding:.7rem;border:1px solid #cbd3dc;border-radius:8px;background:#fff;margin-top:6px}.form-actions{grid-column:1/-1;display:flex;gap:8px}.auth-card small{font-size:.72rem;color:#637083}
@media(max-width:980px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.admin-shell{grid-template-columns:1fr}.admin-nav{border-right:0;border-bottom:1px solid #dfe4ea;display:flex;flex-direction:row;overflow:auto;padding:10px}.admin-nav h3{display:none}.admin-nav a{white-space:nowrap}.stat-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-actions{grid-column:auto}.mini-form{position:fixed;left:12px;right:12px;bottom:12px;min-width:0}.topbar{padding:0 14px}.workspace{padding:16px}}
@media(max-width:430px){.stat-grid{grid-template-columns:1fr}.top-actions{gap:10px;font-size:.88rem}}

/* V1.2.0 password generator */
.generator-button{white-space:nowrap}.password-generator{margin-top:12px;border:1px solid #cbd3dc;border-radius:12px;background:#f8fafc;padding:16px}.generator-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.generator-head>button{padding:.35rem .55rem}.generator-presets{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.generator-grid{display:grid;grid-template-columns:160px repeat(2,minmax(130px,1fr));gap:8px 14px;align-items:end}.generator-grid label{margin:0}.check.compact{margin:0!important;min-height:42px;padding:8px 10px;background:#fff;border:1px solid #dbe2e9;border-radius:8px}.generator-output{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:14px}.generator-output input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.generator-meter{margin-top:12px}.generator-meter>div{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700}.generator-meter progress{width:100%;height:8px}.generator-note{margin-bottom:0;line-height:1.45}@media(max-width:760px){.generator-grid{grid-template-columns:1fr 1fr}.generator-output{grid-template-columns:1fr 1fr}.generator-output input{grid-column:1/-1}.generator-button{flex:0 0 auto}}@media(max-width:430px){.generator-grid{grid-template-columns:1fr}.generator-output{grid-template-columns:1fr}.generator-output input{grid-column:auto}.password-row{flex-wrap:wrap}.password-row input{flex-basis:100%}}


/* V1.2.4 centered editor + independent note scrolling */
body.modal-open{overflow:hidden}
.modal-backdrop{justify-content:center;align-items:center;padding:24px;overflow:hidden;overscroll-behavior:contain}
.editor-panel{width:min(900px,calc(100vw - 48px));height:min(900px,calc(100vh - 48px));max-height:calc(100vh - 48px);padding:0;overflow:hidden;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.24);display:flex;flex-direction:column}
.editor-head{flex:0 0 auto;padding:20px 24px;border-bottom:1px solid #e2e7ec;background:#fff;position:relative;z-index:2}
.editor-head h2{margin:0}
.editor-panel form#vaultForm{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0 24px 20px;overflow-y:auto;overscroll-behavior:contain}
.editor-panel form#vaultForm>label:first-of-type{margin-top:18px}
.rich-editor{height:clamp(280px,44vh,520px);min-height:220px;max-height:52vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#fff}
.toolbar{flex:0 0 auto;position:sticky;top:0;z-index:1}
.editor-actions{flex:0 0 auto}
@media(max-width:760px){
  .modal-backdrop{padding:0;align-items:stretch}
  .editor-panel{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none}
  .editor-panel form#vaultForm{padding:0 16px 16px}
  .editor-head{padding:16px}
  .rich-editor{height:42dvh;min-height:240px;max-height:50dvh}
}

/* V1.3.0 usability + security UI */
.workspace-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.view-toggle{display:flex;border:1px solid #cbd3dc;border-radius:9px;background:#fff;padding:3px;gap:2px}
.view-toggle button{border:0;background:transparent;padding:.48rem .65rem;border-radius:6px;color:#52606d}
.view-toggle button.active{background:#edf3f9;color:#173f6b;font-weight:700}
.items-view.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.items-view.rows{display:flex;flex-direction:column;gap:8px}
.items-view.rows .item-card{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:13px 16px}
.items-view.rows .card-main{min-width:0;display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(220px,2fr) minmax(220px,1fr);align-items:center;gap:16px}
.items-view.rows .card-title{min-width:0}.items-view.rows .card-preview{margin-top:0;min-width:0}.items-view.rows .row-meta{display:flex;margin-top:0}
.row-meta{display:none;color:#7a8795;font-size:.78rem;gap:12px;justify-content:flex-end}
.item-card,.card-title,.card-title span,.preview,.clip,.card-preview{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.card-title span{display:block}.clip{white-space:normal;overflow:visible;text-overflow:clip}
.preview,.card-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;max-height:7.25em}
.item-card.dragging{opacity:.5;transform:scale(.99)}
.folder-drop-target{transition:background .12s,border-color .12s,box-shadow .12s}
.folder-drop-target.drag-over{background:#dcecff!important;box-shadow:inset 0 0 0 2px #3977b7}
.credential-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:14px}
.credential-grid>label{min-width:0}.password-row{min-width:0}.password-row input{min-width:0}
.icon-close{border:0;background:transparent;font-size:1.2rem;padding:.5rem;line-height:1;color:#52606d}
.save-status{font-size:.78rem;color:#6c7886;margin-top:3px;font-weight:500}.save-status.saved{color:#176837}.save-status.error{color:#a12121;font-weight:700}.save-status.saving{color:#51606f}
.confirm-overlay{position:fixed;inset:0;z-index:100;background:rgba(16,24,40,.56);display:grid;place-items:center;padding:20px}.confirm-overlay[hidden]{display:none}.confirm-card{width:min(520px,96vw);background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:22px}.confirm-card h3{margin-top:0}.confirm-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.status.bad{background:#ffebeb;color:#8d1c1c}.recovery-key-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff7d6;border:1px solid #e7c85b;border-radius:10px;padding:12px;margin:12px 0}.recovery-key-box code{overflow-wrap:anywhere;word-break:break-all;font-size:.92rem}.recovery-card{width:min(620px,96vw)}
@media(max-width:900px){.items-view.rows .item-card{grid-template-columns:1fr}.items-view.rows .card-main{grid-template-columns:1fr}.items-view.rows .row-meta{justify-content:flex-start}.credential-grid{grid-template-columns:1fr}.workspace-tools{justify-content:flex-start}}
@media(max-width:760px){.workspace-tools{width:100%}.view-toggle{order:2}.new-menu{order:1}.items-view.rows .card-actions{margin-top:4px}.recovery-key-box{grid-template-columns:1fr}.confirm-actions{flex-direction:column}.confirm-actions button{width:100%}}
.items-view.external-drag-over{outline:2px dashed #3977b7;outline-offset:8px;border-radius:12px;background:rgba(57,119,183,.04)}


/* V1.3.2 editor-close fallback + stronger drag destination feedback */
.icon-close{display:inline-grid;place-items:center;text-decoration:none;cursor:pointer}
.folder-drop-target.drag-over{background:#cfe5ff!important;color:#0b4f91!important;box-shadow:inset 0 0 0 3px #1f6fbf,0 0 0 3px rgba(31,111,191,.12)!important;font-weight:800;transform:translateX(2px)}
.folder-drop-target.drag-over::after{content:'  ← Drop here';font-size:.75rem;font-weight:800;color:#0b4f91}

/* V1.3.3 drag/drop reliability, cache-busted UI, and compact workspace controls */
.workspace-tools{align-items:flex-end;gap:16px}
.tool-cluster{display:flex;flex-direction:column;gap:5px}
.tool-label{font-size:.72rem;line-height:1;text-transform:uppercase;letter-spacing:.055em;font-weight:750;color:#7a8795;padding-left:2px}
.view-toggle{height:40px;padding:2px;border-radius:10px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.view-toggle button{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 .75rem;white-space:nowrap}
.view-toggle button.active{background:#173f6b;color:#fff;box-shadow:0 1px 2px rgba(16,24,40,.10)}
.new-menu{display:flex;gap:6px}
.action-button{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 .78rem;background:#fff;border-color:#cbd3dc;font-weight:600;white-space:nowrap}
.action-button:hover{background:#f8fafc;border-color:#9fabb8}
.item-card[draggable="true"]{cursor:grab;user-select:none}
.item-card[draggable="true"]:active{cursor:grabbing}
body.vault-dragging .folder-drop-target{position:relative;border:1px dashed #8fb6dc;background:#f6faff}
body.vault-dragging .folder-drop-target::before{content:'';position:absolute;inset:-4px;border-radius:10px;pointer-events:none}
body.vault-dragging .folder-drop-target.drag-over{background:#cfe5ff!important;color:#0b4f91!important;border-color:#1f6fbf!important;box-shadow:inset 0 0 0 2px #1f6fbf,0 0 0 4px rgba(31,111,191,.14)!important;font-weight:800;transform:translateX(4px) scale(1.01)}
body.vault-dragging .folder-drop-target.drag-over::after{content:'Drop here';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.69rem;line-height:1;border-radius:999px;background:#1f6fbf;color:#fff;padding:3px 7px;font-weight:800;letter-spacing:.01em}
.vault-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,14px);z-index:200;background:#17202a;color:#fff;padding:9px 14px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:.86rem;font-weight:650;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.vault-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.workspace-tools{align-items:stretch;gap:10px}.tool-cluster{width:100%}.view-toggle,.new-menu{width:100%}.view-toggle button,.new-menu .button{flex:1}.tool-label{display:none}}

/* V1.4.0 bookmark management + favorites */
.favorite-toggle{border:0;background:transparent;padding:0 .35rem 0 0;font-size:1.15rem;line-height:1;color:#7d8792;vertical-align:-.05em;cursor:pointer}
.favorite-toggle:hover,.favorite-toggle.is-favorite{color:#9b6a00;background:transparent}.favorite-toggle:disabled{opacity:.5}
.quick-move-label{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:#6c7886;margin-left:auto}.quick-move-label span{white-space:nowrap}.quick-move{max-width:150px;padding:.35rem .55rem;border:1px solid #cbd3dc;border-radius:7px;background:#fff;color:#2c3641}
.favorite-sort label{display:flex;align-items:center;gap:7px;font-size:.78rem;color:#6c7886;font-weight:700}.favorite-sort select{padding:.48rem .65rem;border:1px solid #cbd3dc;border-radius:8px;background:#fff;color:#2c3641}
.favorite-hint{margin:-6px 0 14px;padding:8px 11px;border:1px solid #d9e5f0;border-radius:8px;background:#f6faff;color:#536579;font-size:.84rem}
.favorite-sortable.reorder-over{outline:3px solid #1f6fbf;outline-offset:2px;position:relative}.favorite-sortable.reorder-over:not(.reorder-after)::before{content:'Drop before';position:absolute;left:12px;top:-12px;background:#1f6fbf;color:#fff;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:800;z-index:3}.favorite-sortable.reorder-over.reorder-after::after{content:'Drop after';position:absolute;left:12px;bottom:-12px;background:#1f6fbf;color:#fff;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:800;z-index:3}
body.vault-dragging .folder-drop-target{min-height:42px;display:flex;align-items:center}.folder-drop-target.drag-over{background:#b9dcff!important;outline:3px solid #1f6fbf;outline-offset:2px;color:#073b70!important}
.items-view.rows .quick-move-label{margin-left:0}.items-view.rows .quick-move{max-width:130px}
@media(max-width:760px){.quick-move-label{width:100%;margin-left:0}.quick-move{flex:1;max-width:none}.favorite-sort{width:100%}.favorite-sort label{justify-content:space-between}.favorite-sort select{flex:1}.favorite-hint{margin-top:0}}

/* V1.4.1 - browser bookmark bar drag/drop */
.items-view{position:relative}
.items-view.external-drag-over{outline:3px dashed #1f6fbf!important;outline-offset:8px!important;background:#eef6ff!important;min-height:220px}
.items-view.external-drag-over::before{content:'Drop browser bookmark here to save';position:absolute;inset:14px;z-index:30;display:flex;align-items:center;justify-content:center;border:2px dashed #1f6fbf;border-radius:14px;background:rgba(238,246,255,.95);color:#0b4f91;font-weight:800;font-size:1.05rem;letter-spacing:.01em;pointer-events:none}
body.external-link-dragging .folder-drop-target{border:1px dashed #8fb6dc;background:#f6faff}
body.external-link-dragging .folder-drop-target.drag-over{background:#b9dcff!important;outline:3px solid #1f6fbf;outline-offset:2px;color:#073b70!important}
body.external-link-dragging .folder-drop-target.drag-over::after{content:'Drop bookmark here';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.69rem;line-height:1;border-radius:999px;background:#1f6fbf;color:#fff;padding:4px 8px;font-weight:800}

/* V1.5.0 browser bookmark importer */
.import-workspace{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:38px 0 60px;min-height:calc(100vh - 132px)}
.import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.import-head h1{margin:0 0 8px}.import-panel{margin-bottom:20px}.import-panel h2{margin-top:0}
.import-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:6px 0 24px}.import-stats>div{border:1px solid var(--line,#d8e0ea);border-radius:12px;padding:18px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.import-stats strong{font-size:1.65rem}.import-stats span{color:#607086}
.import-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}.import-options fieldset{border:1px solid var(--line,#d8e0ea);border-radius:12px;padding:16px 18px}.import-options legend{font-weight:700;padding:0 6px}.radio-line{display:flex;align-items:center;gap:9px;margin:10px 0;font-weight:600}.radio-line input{width:auto}.import-single-folder{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 14px 27px}.import-single-folder select,.import-single-folder input{margin:0}
.import-preview-table{border:1px solid var(--line,#d8e0ea);border-radius:12px;overflow:auto;max-height:440px;background:#fff}.import-preview-table table{width:100%;border-collapse:collapse}.import-preview-table th,.import-preview-table td{text-align:left;padding:11px 12px;border-bottom:1px solid #e8edf3;vertical-align:top}.import-preview-table th{position:sticky;top:0;background:#f6f8fb;z-index:1}.import-preview-table td:first-child{font-weight:650;min-width:190px}.import-preview-table td:nth-child(2){min-width:190px}.import-url{overflow-wrap:anywhere;word-break:break-word;min-width:300px;color:#52657b}.inline-cancel{margin-top:10px}.import-button{white-space:nowrap}
@media(max-width:800px){.import-workspace{width:min(100% - 24px,1180px);padding-top:22px}.import-head{flex-direction:column}.import-stats,.import-options{grid-template-columns:1fr}.import-single-folder{grid-template-columns:1fr;margin-left:0}}

/* V1.6.0 personal recovery-key UI */
.security-workspace{max-width:1050px;margin:0 auto;width:100%;padding:34px}
.recovery-key-reveal{border:2px solid #174f88;background:#f5f9ff}
.recovery-key-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:1rem;line-height:1.7;word-break:break-all;padding:16px;border:1px solid #b8c8da;border-radius:10px;background:#fff;margin:14px 0;user-select:all}
.danger-button{border:1px solid #c94040;background:#fff;color:#a91f1f;border-radius:8px;padding:10px 14px;font:inherit;cursor:pointer}
@media print{.topbar,footer,.security-workspace>.workspace-head,.recovery-key-reveal~*{display:none!important}.security-workspace{padding:0;max-width:none}.recovery-key-reveal{border:0;background:#fff}.recovery-key-reveal .form-actions{display:none}}
@media(max-width:700px){.security-workspace{padding:18px}.recovery-key-value{font-size:.88rem}}
.recovery-reminder{margin:0 0 18px}.recovery-reminder a{color:inherit}

/* V1.6.1 polished vault search + sticky footer on every standard app page */
.search{margin-bottom:8px}
.search input{
  width:100%;
  min-height:40px;
  padding:.62rem .78rem;
  border:1px solid #cbd5df;
  border-radius:10px;
  background:#f8fafc;
  color:#17202a;
  box-shadow:0 1px 2px rgba(16,24,40,.03) inset;
  outline:none;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.search input::placeholder{color:#7a8795}
.search input:hover{border-color:#aebbc8;background:#fff}
.search input:focus{
  background:#fff;
  border-color:#4f83b8;
  box-shadow:0 0 0 3px rgba(31,111,191,.12);
}
/* Body is already a column flex container on application pages. Auto top margin
   consumes unused vertical space and keeps every rendered footer at viewport bottom. */
footer{margin-top:auto;flex:0 0 auto;width:100%}
@media(max-width:760px){.search{margin-bottom:4px}.search input{min-height:42px;border-radius:10px}}

/* V1.6.2 shoulder-surfing privacy for note previews */
.privacy-preview{position:relative;min-height:3.4rem;overflow:hidden;border-radius:8px;cursor:pointer;isolation:isolate}
.privacy-preview-text{display:block;transition:filter .16s ease,opacity .16s ease;filter:blur(7px);opacity:.72;user-select:none;-webkit-user-select:none;pointer-events:none}
.privacy-preview::after{content:"";position:absolute;inset:-4px;background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(245,247,250,.38));pointer-events:none;transition:opacity .16s ease}
.privacy-preview-toggle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:inline-flex;align-items:center;gap:6px;padding:.38rem .62rem;border-radius:999px;border:1px solid #c8d2dd;background:rgba(255,255,255,.96);box-shadow:0 4px 14px rgba(23,32,42,.10);font-size:.78rem;font-weight:700;color:#314154;white-space:nowrap}
.privacy-preview:hover .privacy-preview-toggle,.privacy-preview-toggle:focus-visible{border-color:#94a7ba;box-shadow:0 5px 18px rgba(23,32,42,.15)}
.privacy-preview.is-revealed{cursor:default}
.privacy-preview.is-revealed .privacy-preview-text{filter:none;opacity:1;user-select:text;-webkit-user-select:text;pointer-events:auto}
.privacy-preview.is-revealed::after{opacity:0}
.privacy-preview.is-revealed .privacy-preview-toggle{left:auto;right:4px;top:4px;transform:none;padding:.28rem .5rem;opacity:.88}
.items-view.rows .privacy-preview{min-height:2.7rem}
@media(max-width:760px){.privacy-preview-text{filter:blur(8px)}.privacy-preview-toggle{font-size:.76rem}}

/* V1.6.3 dashboard privacy */
.private-placeholder{display:flex;align-items:center;min-height:2.6rem;padding:.55rem .65rem;border:1px dashed #c8d2dd;border-radius:8px;background:#f7f9fb;color:#657487;font-size:.88rem;font-weight:600}
.privacy-settings{max-width:760px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0}.toggle-row>span{display:flex;flex-direction:column;gap:.2rem}.toggle-row small{color:#657487;font-weight:400}.toggle-row input[type=checkbox]{width:44px;height:24px;accent-color:#174d7d}.privacy-options{display:grid;gap:.55rem;padding:.25rem 0 .8rem}.check-row{display:flex;align-items:center;gap:.6rem}.check-row input{width:18px;height:18px}.mini-switch{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}.mini-switch input{width:34px;height:18px;accent-color:#174d7d}

/* V1.7.0 - simple notes workspace */
.notes-page{min-height:100vh;display:flex;flex-direction:column;background:#f4f7fa;color:#17202a}
.simple-notes-shell{flex:1;min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr);border-top:1px solid #dce3eb;background:#fff}
.simple-notes-list{min-height:0;border-right:1px solid #dce3eb;background:#f8fafc;display:flex;flex-direction:column;padding:18px 14px 14px}
.notes-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 5px 12px}.notes-list-head h1{font-size:1.4rem;margin:0}.notes-list-head span{display:block;margin-top:3px;color:#6a7888;font-size:.82rem}
.notes-new-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #bfcbd7;border-radius:9px;background:#fff;text-decoration:none;font-size:1.35rem;color:#135a99;box-shadow:0 1px 2px rgba(15,23,42,.04)}.notes-new-button:hover{background:#edf6ff;border-color:#8fb7db}
.notes-search{margin:0 3px 10px}.notes-search input{width:100%;padding:.62rem .72rem;border:1px solid #cbd5df;border-radius:9px;background:#fff;outline:none}.notes-search input:focus{border-color:#4f83b8;box-shadow:0 0 0 3px rgba(31,111,191,.11)}
.notes-folder-strip{display:flex;gap:6px;overflow-x:auto;padding:0 3px 10px;scrollbar-width:thin}.notes-folder-strip a{flex:0 0 auto;padding:.38rem .55rem;border-radius:7px;color:#405164;text-decoration:none;font-size:.78rem;white-space:nowrap}.notes-folder-strip a:hover,.notes-folder-strip a.active{background:#e7f0f9;color:#164f80}
.notes-title-list{flex:1;min-height:0;overflow:auto;padding:2px 2px 8px}.note-title-row{display:block;text-decoration:none;color:inherit;border-radius:10px;padding:11px 12px;margin-bottom:5px;border:1px solid transparent}.note-title-row:hover{background:#eef4fa}.note-title-row.active{background:#e4eef8;border-color:#c9dae9}.note-title-line{display:flex;align-items:center;gap:8px;justify-content:space-between}.note-title-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.note-star{color:#a46c00}.note-list-meta{font-size:.73rem;color:#778597;margin-top:5px}.notes-empty-list{padding:20px 12px;color:#7b8794;font-size:.88rem}
.notes-folder-create{display:grid;grid-template-columns:1fr 38px;gap:6px;padding:9px 3px 0;border-top:1px solid #e3e8ee}.notes-folder-create input{min-width:0;padding:.52rem .62rem;border:1px solid #cad4df;border-radius:8px;background:#fff}.notes-folder-create button{border:1px solid #cad4df;border-radius:8px;background:#fff;font-size:1.2rem;color:#165d9c;cursor:pointer}
.simple-note-workspace{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff}.simple-note-form{flex:1;min-height:0;display:flex;flex-direction:column;padding:26px 34px 22px;max-width:1200px;width:100%;margin:0 auto}
.simple-note-topline{display:flex;align-items:center;gap:18px}.simple-note-title{flex:1;min-width:0;border:0;border-bottom:1px solid transparent;background:transparent;font-size:1.75rem;font-weight:750;padding:8px 2px;outline:none;color:#17202a}.simple-note-title:focus{border-bottom-color:#bad0e2}.simple-note-title::placeholder{color:#9aa6b2}
.simple-note-actions{display:flex;align-items:center;gap:8px}.simple-note-actions select{max-width:190px;padding:.5rem .65rem;border:1px solid #cbd5df;border-radius:8px;background:#fff}.simple-favorite-toggle{display:flex;align-items:center;gap:5px;border:1px solid #cbd5df;border-radius:8px;padding:.43rem .62rem;background:#fff;cursor:pointer;font-size:.84rem}.simple-favorite-toggle input{position:absolute;opacity:0;pointer-events:none}.simple-favorite-toggle span{font-size:1.12rem;color:#7c8997}.simple-favorite-toggle input:checked+span{color:#a46c00}.simple-favorite-toggle input:checked+span::before{content:'★';position:absolute}.simple-favorite-toggle input:checked+span{font-size:0}.simple-favorite-toggle input:checked+span::before{font-size:1.12rem;position:static}.notes-trash-button{border:1px solid #e0baba;border-radius:8px;background:#fff;color:#a42626;padding:.48rem .66rem;cursor:pointer}
.simple-note-statusbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:32px;border-bottom:1px solid #edf0f3;color:#758394;font-size:.77rem}.simple-note-statusbar .saved{color:#33734c}.simple-note-statusbar .saving{color:#7a6616}.simple-note-statusbar .error{color:#a12a2a;font-weight:700}.simple-note-dates{text-align:right}
.simple-note-toolbar{display:flex;align-items:center;gap:5px;padding:10px 0;border-bottom:1px solid #e6ebf0}.simple-note-toolbar button{border:1px solid #cad4df;border-radius:7px;background:#fff;padding:.38rem .58rem;cursor:pointer}.simple-note-toolbar button:hover{background:#f3f7fb}.toolbar-help{margin-left:auto;color:#8190a0;font-size:.76rem}
.simple-note-editor{flex:1;min-height:420px;overflow:auto;padding:22px 6px 60px;outline:none;font-size:1rem;line-height:1.62;word-break:break-word;overflow-wrap:anywhere}.simple-note-editor:empty::before{content:attr(data-placeholder);color:#9aa6b2;pointer-events:none}.simple-note-editor a{color:#1769aa;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.simple-note-editor p{margin:.35em 0 .85em}.simple-note-editor ul,.simple-note-editor ol{padding-left:1.55rem}
.simple-note-welcome{margin:auto;text-align:center;color:#657486;padding:40px}.simple-note-welcome h2{color:#24303c;margin:.5rem 0}.simple-note-welcome-icon{font-size:3rem}
@media(max-width:900px){.simple-notes-shell{grid-template-columns:280px minmax(0,1fr)}.simple-note-form{padding:20px 22px}.simple-note-topline{align-items:flex-start;flex-direction:column;gap:8px}.simple-note-title{width:100%}.simple-note-actions{width:100%;flex-wrap:wrap}.simple-note-actions select{flex:1}.simple-note-dates{display:none}}
@media(max-width:680px){.simple-notes-shell{display:block}.simple-notes-list{border-right:0;min-height:auto;max-height:42vh;border-bottom:1px solid #dce3eb}.notes-title-list{max-height:25vh}.simple-note-form{padding:16px 14px}.simple-note-title{font-size:1.45rem}.simple-note-toolbar{overflow-x:auto}.toolbar-help{display:none}.simple-note-editor{min-height:48vh;padding-top:16px}}

/* V1.7.1 - fixed Notes chrome + independent panes + expanded editor toolbar */
.notes-page{height:100vh;min-height:100vh;overflow:hidden}
.notes-page .topbar{position:relative;top:auto;flex:0 0 62px;height:62px;z-index:20}
.notes-page .simple-notes-shell{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}
.notes-page footer{flex:0 0 42px;height:42px;display:flex;align-items:center;justify-content:center;margin:0;position:relative;z-index:20;background:#fff;border-top:1px solid #dfe4ea}
.notes-page .simple-notes-list{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.notes-page .notes-title-list{flex:none;min-height:auto;overflow:visible}
.notes-page .simple-note-workspace{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#fff}
.notes-page .simple-note-form{min-height:100%;height:auto;overflow:visible}
.notes-page .simple-note-editor{flex:none;min-height:calc(100vh - 320px);overflow:visible;padding-bottom:80px}
.note-save-button{background:#173f6b!important;color:#fff;border-color:#173f6b!important;font-weight:700}.note-save-button:hover{background:#0f345b!important}.note-save-button:disabled{opacity:.65;cursor:wait}
.note-share-button{font-weight:650}
.simple-note-toolbar{gap:8px;flex-wrap:wrap;background:#fff}
.toolbar-group{display:inline-flex;align-items:center;gap:3px;padding-right:7px;margin-right:1px;border-right:1px solid #dde4eb}.toolbar-group:last-of-type{border-right:0}
.simple-note-toolbar button{min-width:38px;height:36px;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-weight:600}
.simple-note-toolbar button[title="Align left"]{text-align:left;justify-content:flex-start;padding-left:9px}.simple-note-toolbar button[title="Align center"]{text-align:center}.simple-note-toolbar button[title="Align right"]{text-align:right;justify-content:flex-end;padding-right:9px}
.simple-note-editor mark{background:#fff19a;padding:0 .08em;border-radius:2px}.simple-note-editor sup,.simple-note-editor sub{font-size:.75em}.simple-note-editor blockquote{margin:.8em 0;padding:.25em 1em;border-left:4px solid #b9c8d8;color:#495a6b;background:#f8fafc}.simple-note-editor .pv-align-left{text-align:left}.simple-note-editor .pv-align-center{text-align:center}.simple-note-editor .pv-align-right{text-align:right}.simple-note-editor .pv-align-justify{text-align:justify}
@media(max-width:680px){.notes-page{height:auto;min-height:100vh;overflow:auto}.notes-page .topbar{position:sticky;top:0}.notes-page .simple-notes-shell{overflow:visible}.notes-page .simple-notes-list{height:auto;max-height:42vh;overflow-y:auto}.notes-page .simple-note-workspace{height:auto;overflow:visible}.notes-page footer{position:static}.simple-note-toolbar{flex-wrap:nowrap;overflow-x:auto}.toolbar-group{flex:0 0 auto}.notes-page .simple-note-editor{min-height:48vh}}


/* V1.7.2 - keep note title/actions/status/formatting toolbar fixed while note body scrolls */
.notes-page .simple-note-fixed-controls{
  position:sticky;
  top:0;
  z-index:16;
  background:#fff;
  padding-top:2px;
  box-shadow:0 8px 14px -14px rgba(15,23,42,.35);
}
.notes-page .simple-note-toolbar{background:#fff}
.notes-page .simple-note-editor{padding-top:24px}
@media(max-width:680px){
  .notes-page .simple-note-fixed-controls{position:sticky;top:62px;z-index:18;padding-top:6px}
}


/* V1.7.5 - lock Notes controls in place; only the note body scrolls */
@media (min-width:681px){
  .notes-page .simple-note-workspace{
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  .notes-page .simple-note-form{
    height:100%;
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .notes-page .simple-note-fixed-controls{
    position:relative;
    top:auto;
    flex:0 0 auto;
    z-index:18;
    background:#fff;
  }
  .notes-page .simple-note-editor{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding-top:24px;
    padding-bottom:80px;
  }
}

/* V1.7.6 - Trash context menu and bulk bookmark management */
.context-menu{position:fixed;z-index:1000;min-width:180px;padding:6px;background:#fff;border:1px solid #cfd8e3;border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.18)}
.context-menu[hidden]{display:none!important}.context-menu button{width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:7px;color:#a12626;font-weight:700;cursor:pointer}.context-menu button:hover{background:#fff0f0}
.bookmark-bulkbar{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:9px 12px;border:1px solid #d9e2ec;border-radius:10px;background:#fff;min-height:44px}.bulk-select-all{display:flex;align-items:center;gap:7px;font-weight:650;cursor:pointer}.bulk-select-all input,.bookmark-select input{width:17px;height:17px;accent-color:#1f5f96}.bookmark-bulkbar .muted{margin-right:auto}.danger-soft{border:1px solid #e1b7b7;background:#fff;color:#a12626;border-radius:8px;padding:.48rem .72rem;font-weight:700;cursor:pointer}.danger-soft:hover:not(:disabled){background:#fff0f0}.danger-soft:disabled{opacity:.45;cursor:not-allowed}
.item-card{position:relative}.bookmark-select{position:absolute;top:10px;left:10px;z-index:5;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:rgba(255,255,255,.94);border:1px solid #d6e0ea;cursor:pointer;box-shadow:0 1px 3px rgba(15,23,42,.06)}.bookmark-select+.card-main{padding-left:34px}.item-card.bulk-selected{outline:2px solid #2d72aa;outline-offset:1px;background:#f5faff}
.items-view.rows .bookmark-select{top:50%;transform:translateY(-50%)}
@media(max-width:680px){.bookmark-bulkbar{flex-wrap:wrap}.bookmark-bulkbar .muted{margin-right:0}.danger-soft{width:100%}}

/* V2.7.1 — AssemblyAI Transcription settings form */
.transcription-settings-form{max-width:860px}
.transcription-settings-form>label:not(:has(input[type="checkbox"])){display:block;font-weight:650;margin:0 0 6px}
.transcription-settings-form .transcription-input,
.transcription-settings-form .transcription-select{
  display:block;
  width:100%;
  max-width:620px;
  min-height:44px;
  padding:.7rem .8rem;
  margin:0 0 8px;
  border:1px solid #cbd3dc;
  border-radius:8px;
  background:#fff;
  color:#17202a;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.transcription-settings-form .transcription-select{max-width:320px;appearance:auto}
.transcription-settings-form .transcription-input:hover,
.transcription-settings-form .transcription-select:hover{border-color:#aebbc8}
.transcription-settings-form .transcription-input:focus,
.transcription-settings-form .transcription-select:focus{border-color:#4f83b8;box-shadow:0 0 0 3px rgba(31,111,191,.11)}
.transcription-settings-form>label:has(input[type="checkbox"]){display:flex;align-items:center;gap:10px;margin:14px 0;font-weight:650}
.transcription-settings-form>label:has(input[type="checkbox"]) input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:#173f6b}
@media(max-width:760px){.transcription-settings-form .transcription-input,.transcription-settings-form .transcription-select{max-width:none;width:100%}}

/* V2.8.1 — compact in-note audio recorder.
   The recorder is chrome, not the note body: never allow it to consume remaining editor height. */
.notes-page .audio-recorder-panel,
.v2-editor-pane .audio-recorder-panel{
  flex:0 0 auto !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  margin:0 !important;
  padding:10px 20px !important;
  display:grid;
  grid-template-columns:auto minmax(240px,360px) auto;
  grid-template-areas:
    "main device actions"
    "message message connection";
  align-items:center;
  gap:8px 14px;
  border-bottom:1px solid #d8e0e8;
  background:#f8fafc;
}
.notes-page .audio-recorder-panel[hidden],
.v2-editor-pane .audio-recorder-panel[hidden]{display:none !important}
.audio-recorder-panel .recorder-main{grid-area:main;display:flex;align-items:center;gap:8px;min-width:0;margin:0 !important}
.audio-recorder-panel .recorder-device{grid-area:device;display:flex;align-items:center;gap:8px;min-width:0;margin:0 !important}
.audio-recorder-panel .recorder-device label{margin:0 !important;white-space:nowrap;font-size:.82rem;color:#637083;font-weight:650}
.audio-recorder-panel .recorder-device select{width:100%;min-width:180px;max-width:320px;height:36px;padding:5px 10px;margin:0 !important;border:1px solid #cbd3dc;border-radius:8px;background:#fff}
.audio-recorder-panel .recorder-actions{grid-area:actions;display:flex;align-items:center;gap:7px;flex-wrap:nowrap;margin:0 !important}
.audio-recorder-panel .recorder-actions button{min-height:34px;padding:6px 11px;margin:0 !important;white-space:nowrap}
.audio-recorder-panel .recorder-info{display:contents}
.audio-recorder-panel .recorder-message{grid-area:message;margin:0 !important;min-height:0 !important;font-size:.82rem;line-height:1.25;color:#637083}
.audio-recorder-panel .recording-connection{grid-area:connection;margin:0 !important;min-height:0 !important;text-align:right;white-space:nowrap;font-size:.78rem;font-weight:650;color:#327044}
.audio-recorder-panel .recording-preview{grid-column:1/-1;width:100%;height:40px;margin:2px 0 0 !important}
.audio-recorder-panel .mic-meter{width:110px;max-width:12vw;height:8px;flex:0 0 auto}
/* Keep saved recordings immediately below the compact recorder. */
.v2-editor-pane .v2-editor-scroll{flex:1 1 auto !important;min-height:0 !important}
.v2-editor-pane .audio-attachments{margin-top:0 !important;padding-top:12px !important}
@media(max-width:980px){
  .notes-page .audio-recorder-panel,.v2-editor-pane .audio-recorder-panel{
    grid-template-columns:1fr auto;
    grid-template-areas:"main actions" "device device" "message message" "connection connection";
  }
  .audio-recorder-panel .recording-connection{text-align:left;white-space:normal}
}
@media(max-width:680px){
  .notes-page .audio-recorder-panel,.v2-editor-pane .audio-recorder-panel{
    padding:10px 12px !important;
    grid-template-columns:1fr;
    grid-template-areas:"main" "device" "actions" "message" "connection";
  }
  .audio-recorder-panel .recorder-main,.audio-recorder-panel .recorder-device,.audio-recorder-panel .recorder-actions{width:100%}
  .audio-recorder-panel .recorder-actions{flex-wrap:wrap}
  .audio-recorder-panel .recorder-device select{max-width:none}
  .audio-recorder-panel .mic-meter{max-width:none;flex:1;width:auto}
}
