:root{
  --bg:#fff;
  --surface:#fff;
  --surface-subtle:#f3f4f2;
  --border:#e5e6e2;
  --border-strong:#cfd1cb;
  --text:#20211f;
  --text-secondary:#5e625d;
  --text-muted:#92968f;
  --accent:#252724;
  --accent-soft:#f0f1ee;
  --danger:#a54137;
  --radius:5px;
  --shadow:0 10px 28px rgba(28,30,27,.08);
}

[hidden]{display:none!important}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
.topbar{background:var(--bg);backdrop-filter:none}
.primary-btn:hover,.note-new-btn:hover{background:#000}
.link-card:hover{background:#fff}
.field-hint.success{color:var(--accent)}

.auth-view{height:100vh;display:grid;grid-template-rows:auto 1fr;background:var(--bg);padding:28px 36px}
.auth-brand{display:flex;align-items:center;gap:10px;font-size:15px}
.auth-panel{position:relative;width:min(380px,calc(100vw - 36px));align-self:center;justify-self:center;margin-top:-48px;padding:32px;background:var(--surface);border:0;border-radius:0}.auth-close{position:absolute;right:20px;top:24px;width:30px;height:30px;border:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:20px}.auth-close:hover{color:var(--text)}
.auth-heading small{color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.04em}.auth-heading h1{margin:10px 0 7px;font-size:25px}.auth-heading p{margin:0 0 25px;color:var(--text-secondary);font-size:13px;line-height:1.6}
.auth-panel label{display:block;margin:0 0 16px;color:var(--text-secondary);font-size:12px;font-weight:500}.auth-panel input{display:block;width:100%;height:42px;margin-top:7px;padding:0 11px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);outline:0}.auth-panel input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.auth-submit{width:100%;height:42px;margin-top:4px}.auth-switch{width:100%;margin-top:16px;border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:13px}.first-user-hint{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--border);color:var(--text-muted);text-align:center;font-size:11px}.auth-error{min-height:18px;margin:-3px 0 8px;color:var(--danger);font-size:12px}

.card-head{padding-right:0}.card-actions{position:absolute;right:10px;bottom:8px;display:flex;align-items:center;gap:2px}.card-actions .star{position:static;width:28px;height:28px;font-size:16px}.card-edit{height:26px;padding:0 6px;border:0;border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;opacity:0}.link-card:hover .card-edit,.link-card:focus-within .card-edit{opacity:1}.card-edit:hover{background:var(--surface-subtle);color:var(--text)}.system-lock{height:22px;display:inline-flex;align-items:center;padding:0 4px;color:var(--text-muted);font-size:10px;opacity:0}.link-card:hover .system-lock,.link-card:focus-within .system-lock{opacity:1}.link-card .card-meta{padding-right:72px}.list-view .link-card{padding-right:88px}.list-view .card-actions{top:50%;bottom:auto;transform:translateY(-50%)}.list-view .card-meta{padding-right:0}
.form-actions>span{flex:1}.danger-text{border:0;background:transparent;color:var(--danger);cursor:pointer;padding:0}.danger-text:hover{text-decoration:underline}
.empty-actions{display:flex;justify-content:center;gap:8px}.setting-select{height:32px;min-width:92px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);outline:0}.setting-select:focus{border-color:var(--text)}
.guest-setting-note{margin-top:26px;padding-top:20px;border-top:1px solid var(--border)}.guest-setting-note strong{font-size:13px}.guest-setting-note p{margin:7px 0 14px;color:var(--text-secondary);font-size:12px;line-height:1.6}
.notes-workspace,.notes-stage,.notes-board{min-width:0;max-width:100%}.notes-board{overflow-x:hidden}.note-card-grid{width:100%;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}.note-card{min-width:0}
.sync-status.syncing .status-dot{background:#b48135}.sync-status.error .status-dot{background:var(--danger)}.connected-label{color:var(--accent);font-size:12px}
.logout-btn{width:100%;height:40px;margin-top:28px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--danger);cursor:pointer}.logout-btn:hover{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,transparent)}
.admin-intro{margin:0 0 18px;color:var(--text-secondary);font-size:13px;line-height:1.6}.drawer-loading{color:var(--text-muted)}.user-list{display:flex;flex-direction:column}.user-row{display:grid;grid-template-columns:32px minmax(0,1fr) 80px 48px;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid var(--border)}.user-row>div{min-width:0}.user-row strong,.user-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row strong{font-size:12px}.user-row small{margin-top:3px;color:var(--text-muted);font-size:10px}.user-row select{height:30px;border:1px solid var(--border);border-radius:3px;background:var(--bg);color:var(--text);font-size:11px}.user-status{height:30px;border:0;border-radius:3px;background:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;font-size:11px}.user-status.disabled{color:var(--accent)}.user-status:disabled,.user-row select:disabled{opacity:.45;cursor:not-allowed}
.category-add-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:24px}.category-add-form input{min-width:0;height:38px;padding:0 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);outline:0}.category-add-form input:focus{border-color:var(--text)}.category-manager-list{border-top:1px solid var(--border)}.category-row{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:7px;padding:12px 0;border-bottom:1px solid var(--border)}.category-row input{grid-column:1;grid-row:1;min-width:0;height:32px;border:0;background:transparent;color:var(--text);outline:0}.category-row input:not(:disabled):focus{border-bottom:1px solid var(--text)}.category-row>span{grid-column:1;grid-row:2;color:var(--text-muted);font-size:10px}.category-row button{border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px}.category-row button[data-save-category]{grid-column:2;grid-row:1/3}.category-row .category-delete{grid-column:3;grid-row:1/3;color:var(--danger)}.category-row button:hover{color:var(--text)}.category-row button:disabled{color:var(--text-muted);opacity:.4;cursor:not-allowed}
.category-manager-head{padding-bottom:22px}.category-manager-head>p{margin:0 0 14px;color:var(--text-secondary);font-size:13px}.category-manager-head form{display:grid;grid-template-columns:1fr auto;gap:8px}.category-manager-head input,.category-rename-form input{min-width:0;height:38px;padding:0 11px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);outline:0}.category-manager-head input:focus,.category-rename-form input:focus{border-color:var(--text)}.category-clean-list{border-top:1px solid var(--border)}.category-clean-row{min-height:62px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--border);transition:opacity .12s,background .12s}.category-clean-row.dragging{opacity:.45;background:var(--surface-subtle)}.category-drag-handle{width:20px;flex:0 0 20px;color:var(--text-muted);cursor:grab;font-size:16px;line-height:32px;text-align:center;user-select:none}.category-drag-handle:active{cursor:grabbing}.category-drag-handle:focus-visible{outline:1px solid var(--text);outline-offset:1px}.category-clean-row>div:nth-child(2){min-width:0;flex:1}.category-clean-row strong,.category-clean-row small{display:block}.category-clean-row strong{font-size:13px;font-weight:500}.category-clean-row small{margin-top:4px;color:var(--text-muted);font-size:11px}.category-clean-actions{display:flex;gap:1px;opacity:0}.category-clean-row:hover .category-clean-actions,.category-clean-row:focus-within .category-clean-actions{opacity:1}.category-clean-actions button,.category-rename-form button[data-cancel-rename]{height:30px;padding:0 6px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px}.category-clean-actions button[data-move-category]{width:25px;padding:0;font-size:14px}.category-clean-actions button:last-child{color:var(--danger)}.category-clean-actions button:disabled{visibility:hidden}.category-rename-form{min-height:62px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;border-bottom:1px solid var(--border)}.category-rename-form .primary-btn{min-height:32px;padding:0 10px;font-size:11px}
.note-folder-row{position:relative;display:flex;align-items:center}.note-folder-row .note-tree-item{min-width:0;padding-right:58px}.note-folder-row .folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-folder-actions{position:absolute;right:5px;display:flex;align-items:center;gap:1px;padding-left:8px;background:linear-gradient(90deg,transparent,var(--surface-subtle) 24%);opacity:0;transition:opacity .12s}.note-folder-row:hover .note-folder-actions,.note-folder-row:focus-within .note-folder-actions{opacity:1}.note-folder-row:hover .note-tree-item b,.note-folder-row:focus-within .note-tree-item b{opacity:0}.note-folder-actions button{width:25px;height:26px;border:0;border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px}.note-folder-actions button:hover{background:var(--surface);color:var(--text)}.note-folder-actions button:last-child:hover{color:var(--danger)}.note-folder-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:3px;margin:3px 0;padding:4px;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.note-folder-form input{min-width:0;height:28px;padding:0 6px;border:0;background:transparent;color:var(--text);font-size:12px;outline:0}.note-folder-form button{height:26px;padding:0 5px;border:0;border-radius:3px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px}.note-folder-form button[type="submit"]{background:var(--text);color:var(--surface)}.note-folder-form button:hover{color:var(--text)}
.toast{position:fixed;left:50%;bottom:26px;z-index:100;max-width:min(420px,calc(100vw - 32px));padding:10px 14px;border:1px solid var(--border);border-radius:4px;background:var(--text);color:var(--surface);font-size:12px;opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:.16s ease}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--danger);border-color:var(--danger);color:#fff}
.link-loader{height:62px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--text-muted);font-size:12px}.link-loader[hidden]{display:none}.link-loader span{width:14px;height:14px;border:1.5px solid var(--border-strong);border-top-color:var(--text);border-radius:50%;animation:linkbase-spin .7s linear infinite}.link-sentinel{height:1px}.link-sentinel[hidden]{display:none}.notes-loading{grid-column:1/-1;padding:80px 20px;text-align:center;color:var(--text-muted);font-size:12px}@keyframes linkbase-spin{to{transform:rotate(360deg)}}

body.dark{
  --bg:#171a17;
  --surface:#1d211e;
  --surface-subtle:#292e2a;
  --border:#343a35;
  --border-strong:#4b554d;
  --text:#edf0eb;
  --text-secondary:#bac1ba;
  --text-muted:#848f86;
  --accent:#77ac9b;
  --accent-soft:#243a33;
  --shadow:0 16px 42px rgba(0,0,0,.36);
}
body.dark .topbar{background:var(--bg)}body.dark .link-card:hover{background:#222722}

@media(max-width:540px){.auth-view{padding:22px 18px}.auth-panel{padding:24px}.user-row{grid-template-columns:30px minmax(0,1fr) 72px}.user-status{grid-column:3}.system-lock{display:none}}
@media(hover:none){.category-clean-actions,.note-folder-actions,.card-edit,.system-lock{opacity:1}.note-folder-row .note-tree-item b{opacity:0}}
.category-drag-handle{touch-action:none}
.note-card .note-star{right:38px}.note-card .note-delete{position:absolute;right:8px;top:10px;width:30px;height:30px;border:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:17px;opacity:0}.note-card:hover .note-delete,.note-card:focus-within .note-delete{opacity:1}.note-card .note-delete:hover{color:var(--danger)}.note-card h3{margin-right:56px}.folder-note-row{position:relative}.folder-note-row .folder-note{padding-right:30px}.folder-note-delete{position:absolute;right:4px;top:2px;width:25px;height:27px;border:0;border-radius:3px;background:var(--surface);color:var(--text-muted);cursor:pointer;font-size:15px;opacity:0}.folder-note-row:hover .folder-note-delete,.folder-note-row:focus-within .folder-note-delete{opacity:1}.folder-note-delete:hover{color:var(--danger)}
