:root{--bg:#0b1220;--bg-elev:#0e1627;--panel:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--brand:#22d3ee;--accent:#a78bfa;--danger:#ef4444;--border:#1f2a44;--focus:#38bdf8;--shadow:0 10px 30px rgba(0,0,0,.35)}
*{box-sizing:border-box;user-select:none}
html,body{height:100%}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text)}
.title-input,.content-input{user-select:text}
.app{display:grid;grid-template-columns:320px 1fr;height:100vh;overflow:hidden}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:saturate(120%) blur(2px);z-index:9}
.overlay[hidden]{display:none}
.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,var(--panel),var(--bg-elev));display:flex;flex-direction:column;min-width:260px;min-height:0;overflow:hidden}
.sidebar-header{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--border);transition:box-shadow .2s ease}
.sidebar-header.elev{box-shadow:0 6px 12px rgba(0,0,0,.25)}
.filters{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.filter-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 10px;border-radius:8px;cursor:pointer}
.filter-btn.active{border-color:var(--brand);color:var(--text)}
.tags{padding:8px 12px;border-bottom:1px solid var(--border);overflow:visible}
.tags-header{display:flex;justify-content:space-between;align-items:center;color:var(--muted);margin-bottom:8px}
.tag-list{display:flex;gap:6px;flex-wrap:wrap}
.tag{background:#0b1324;border:1px solid var(--border);padding:4px 8px;border-radius:999px;color:var(--muted);cursor:pointer}
.note-list{list-style:none;margin:0;padding:12px;overflow:auto;flex:1;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.note-list{scrollbar-width:thin;scrollbar-color:var(--brand) transparent}
.note-list::-webkit-scrollbar{width:10px;height:10px}
.note-list::-webkit-scrollbar-track{background:transparent}
.note-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--brand),var(--accent));border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.note-list::-webkit-scrollbar-thumb:hover{filter:brightness(1.1)}
.note-list.list-view{display:block}
.note-list.list-view .note-item{display:block;margin:0 0 10px 0}
.note-item{position:relative;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#0b1324;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-height:56px;transition:box-shadow .15s ease,border-color .15s ease,transform .06s ease,background-color .15s ease;overflow:hidden}
.note-item:hover{box-shadow:var(--shadow);border-color:rgba(56,189,248,.35)}
.note-item:active{transform:translateY(1px)}
.note-item.active{background:rgba(56,189,248,.06);outline:2px solid var(--focus);outline-offset:0}
.note-item:focus{outline:2px solid var(--focus);outline-offset:0}
.note-item .note-title{font-weight:700}
.note-item .note-snippet{color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.note-list.list-view .note-item .note-snippet{-webkit-line-clamp:2}
.note-item .note-meta{margin-top:auto;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}

/* Swipe indicators */
.swipe-indicator{position:absolute;top:0;bottom:0;width:80px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;opacity:0;transition:opacity .2s ease;z-index:1}
.swipe-indicator.restore{left:0;background:linear-gradient(90deg,rgba(34,197,94,.8),rgba(34,197,94,.4));color:white}
.swipe-indicator.delete{right:0;background:linear-gradient(270deg,rgba(239,68,68,.8),rgba(239,68,68,.4));color:white}
.swipe-indicator.trash{right:0;background:linear-gradient(270deg,rgba(245,158,11,.8),rgba(245,158,11,.4));color:white}
.note-updated{color:var(--muted);font-size:11px;opacity:.85;white-space:nowrap;font-variant-numeric:tabular-nums}
.note-title{font-weight:600}
.note-snippet{color:var(--muted);font-size:12px;margin-top:4px}
.note-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:8px}
.editor{display:flex;flex-direction:column;min-width:0;max-width:var(--editor-width, 100%)}
.editor-toolbar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}
.title-input{flex:0 0 420px;max-width:50vw;background:transparent;border:none;color:var(--text);font-size:18px;font-weight:600}
.title-input:focus{outline:none}
.spacer{flex:1}
.btn{background:#131c2f;border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:8px;cursor:pointer}
.btn.primary{background:linear-gradient(135deg,var(--brand),var(--accent));border:none;color:#031019;font-weight:700}
.btn.primary[hidden]{display:none}
.btn.ghost{background:transparent}
.btn.danger{color:var(--danger);border-color:rgba(239,68,68,.35)}
.mobile-only{display:none}
.menu{position:relative}
.menu-popover{position:absolute;right:0;top:36px;background:#0b1324;border:1px solid var(--border);border-radius:10px;min-width:200px;box-shadow:var(--shadow);padding:6px;z-index:10}
.menu-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:8px 10px;border-radius:8px;cursor:pointer}
.menu-item:hover{background:#0f1a30}
.menu-item.danger{color:var(--danger)}
.tag-editor{display:flex;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border)}
.applied-tags{display:flex;gap:6px;flex-wrap:wrap}
.content{flex:1;min-height:0}
.content-input{width:100%;height:calc(100% - 0px);padding:16px 18px;background:transparent;border:none;color:var(--text);font:16px/1.6 ui-sans-serif,system-ui}
.content-input{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}
.content-input::-webkit-scrollbar{width:10px;height:10px}
.content-input::-webkit-scrollbar-track{background:transparent}
.content-input::-webkit-scrollbar-thumb{background:rgba(148,163,184,.55);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.content-input::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.75)}
.content-input:focus{outline:none}
.input{background:#0b1324;border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:10px;width:100%}
.dialog{border:none;border-radius:16px;background:#0b1324;color:var(--text);padding:0;box-shadow:0 20px 40px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.05);min-width:400px;max-width:90vw;backdrop-filter:blur(20px)}
.dialog::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(8px)}
.dialog form{padding:24px;position:relative}
.dialog h3{margin:0 0 20px 0;font-size:20px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.dialog h3::before{content:'⚙️';font-size:16px}
.dialog .row{display:flex;align-items:center;justify-content:space-between;margin:16px 0;gap:16px;padding:8px 0}
.dialog .row label{font-weight:600;color:var(--text);font-size:14px;min-width:100px}
.dialog .row input[type="range"]{flex:1;margin:0 12px;height:6px;background:var(--border);border-radius:3px;outline:none;cursor:pointer}
.dialog .row input[type="range"]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:50%;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.dialog .row input[type="range"]::-moz-range-thumb{width:18px;height:18px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.dialog .row span{font-size:13px;color:var(--muted);min-width:70px;text-align:right;font-weight:500;background:rgba(148,163,184,.1);padding:4px 8px;border-radius:6px}
.dialog-actions{display:flex;justify-content:space-between;gap:12px;padding-top:20px;margin-top:20px;border-top:1px solid var(--border)}
.dialog-actions .btn{min-width:90px;padding:10px 16px;font-weight:600;border-radius:10px;transition:all .2s ease}
.dialog-actions .btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.dialog-actions .btn.reset{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:var(--danger);opacity:0;transform:scale(.9);transition:all .3s ease}
.dialog-actions .btn.reset.show{opacity:1;transform:scale(1)}
.dialog-actions .btn.reset:hover{background:rgba(239,68,68,.2);transform:translateY(-1px) scale(1.05)}

@media (max-width: 960px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;width:86vw;max-width:360px;transform:translateX(-100%);transition:transform .25s ease;z-index:10}
  .sidebar.open{transform:none;box-shadow:var(--shadow)}
  .sidebar-header{position:sticky;top:0;z-index:11;background:var(--panel)}
  .editor-toolbar{position:sticky;top:0;z-index:5;gap:4px;padding:8px 10px}
  .editor-toolbar .btn{
    /* padding:4px 6px; */
    font-size:12px;min-width:32px;height:32px}
  .title-input{flex:1;font-size:16px;margin-right:4px}
  .mobile-only{display:inline-flex}
  .mobile-hide{display:none}
  .menu-popover{right:10px;top:40px;min-width:180px;max-width:calc(100vw - 20px)}
  .note-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding:10px}
}

/* Extra-small devices: make settings dialog compact without changing layout */
@media (max-width: 420px){
  .dialog{min-width:auto;width:92vw;max-width:92vw;border-radius:14px;box-shadow:0 14px 28px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.06);max-height:85vh;overflow:auto}
  .dialog form{padding:14px}
  .dialog h3{font-size:16px;margin:0 0 12px 0}
  .dialog .row{margin:10px 0;gap:10px;padding:6px 0}
  .dialog .row label{min-width:84px;font-size:13px}
  .dialog .row input[type="range"]{height:4px;margin:0 8px}
  .dialog .row input[type="range"]::-webkit-slider-thumb{width:14px;height:14px}
  .dialog .row input[type="range"]::-moz-range-thumb{width:14px;height:14px}
  .dialog .row span{font-size:12px;padding:3px 6px}
  .dialog-actions{gap:8px;padding-top:12px;margin-top:12px}
  .dialog-actions .btn{min-width:80px;padding:8px 12px;font-size:13px;border-radius:8px}
}

.undo-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(100px);background:#0b1324;border:1px solid var(--border);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);z-index:1000;transition:transform .3s ease;opacity:0}
.undo-toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.undo-toast span{color:var(--text);font-size:14px}
.undo-toast .btn{font-size:12px;padding:4px 8px}

/* Compact Mode Styles */
.compact-mode .app{grid-template-columns:1fr}
.compact-mode .sidebar{display:none}
.compact-mode .editor{display:none}

/* Compact Header */
.compact-header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border)}
.compact-header-content{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}
.compact-title{font-size:24px;font-weight:600;color:var(--text);margin:0}
.compact-header-actions{display:flex;align-items:center;gap:8px}
.compact-filters-container{display:none;gap:8px;padding:0 20px 12px;align-items:center}
.compact-filters-container.show{display:flex}
.compact-filter-btn{padding:6px 12px;background:var(--panel);border:1px solid var(--border);border-radius:16px;color:var(--text);font-size:13px;cursor:pointer;transition:all .2s ease;outline:none}
.compact-filter-btn:hover{background:var(--bg-elev);border-color:var(--accent)}
.compact-filter-btn.active{background:var(--accent);border-color:var(--accent);color:white}
.compact-search-container{padding:0 20px 16px}
.compact-search{width:100%;padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:16px;outline:none}
.compact-search::placeholder{color:var(--muted)}

/* Mobile optimizations for compact header */
@media (max-width: 768px) {
  .compact-header-content{padding:8px 12px}
  .compact-title{font-size:18px}
  .compact-filters-container{padding:0 12px 6px;gap:4px}
  .compact-filter-btn{padding:4px 8px;font-size:11px}
  .compact-search-container{padding:0 12px 8px}
  .compact-search{padding:8px 12px;font-size:14px}
}

/* Floating Action Button */
.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--brand);color:white;border:none;font-size:24px;font-weight:300;cursor:pointer;box-shadow:0 4px 12px rgba(34,211,238,.3);transition:all .2s ease;z-index:1000}
.fab:hover{transform:scale(1.05);box-shadow:0 6px 16px rgba(34,211,238,.4)}

/* Compact Note List */
.compact-note-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px;max-width:1200px;margin:0 auto;position:fixed;top:160px;bottom:0;left:0;right:0;overflow:auto;background:var(--bg);z-index:10;scrollbar-width:thin;scrollbar-color:var(--border) transparent;align-content:start}
.compact-note-list::-webkit-scrollbar{width:6px}
.compact-note-list::-webkit-scrollbar-track{background:transparent}
.compact-note-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.compact-note-list::-webkit-scrollbar-thumb:hover{background:var(--muted)}
.compact-note-list[hidden]{display:none}

/* Mobile adjustments for compact note list */
@media (max-width: 768px) {
  .compact-note-list{top:120px;padding:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;align-content:start}
}
.compact-note-list .note-item{min-height:150px;max-height:150px;padding:16px;border-radius:8px;background:var(--panel);border:1px solid var(--border);cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between}
.compact-note-list .note-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.15);transform:translateY(-2px)}
.compact-note-list .note-item .note-title{font-size:16px;font-weight:500;margin-bottom:8px;line-height:1.4;color:var(--text)}
.compact-note-list .note-item .note-snippet{font-size:14px;color:var(--muted);line-height:1.5;margin-bottom:12px;flex:1}
.compact-note-list .note-item .note-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);opacity:.8}
.compact-note-list .note-item .note-tags{display:none}
.compact-note-list .note-item .tag{display:none}

/* Note Editor Page */
.note-editor-page{position:fixed;inset:0;background:var(--bg);z-index:1000;display:flex;flex-direction:column}
.note-editor-page[hidden]{display:none}
.editor-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--panel)}
.editor-content{flex:1;padding:20px;max-width:800px;margin:0 auto;width:100%}
.title-input-editor{width:100%;background:transparent;border:none;color:var(--text);font-size:24px;font-weight:400;margin-bottom:16px;outline:none}
.title-input-editor::placeholder{color:var(--muted)}
.tag-editor-editor{margin-bottom:20px}
.content-input-editor{width:100%;height:calc(100vh - 200px);background:transparent;border:none;color:var(--text);font:16px/1.6 ui-sans-serif,system-ui;resize:none;outline:none}
.content-input-editor::placeholder{color:var(--muted)}

/* Light theme */
[data-theme="light"]{
  --bg:#f6f7fb;
  --bg-elev:#ffffff;
  --panel:#ffffff;
  --text:#0b1220;
  --muted:#475569;
  --border:#e2e8f0;
  --shadow:0 10px 30px rgba(2,6,23,.1);
}
[data-theme="light"] .btn{background:#f3f4f6}
[data-theme="light"] .btn.ghost{background:transparent}
[data-theme="light"] .menu-popover{background:#fff}
[data-theme="light"] .input{background:#f8fafc}
[data-theme="light"] .note-item{background:#f8fafc;border-color:#e2e8f0}
[data-theme="light"] .note-item.active{background:rgba(6,182,212,.08);outline-color:#06b6d4}
[data-theme="light"] .note-item:hover{box-shadow:0 4px 12px rgba(2,6,23,.1);border-color:rgba(6,182,212,.35)}
[data-theme="light"] .filter-btn.active{border-color:#06b6d4;color:#0b1220}
[data-theme="light"] .tag{background:#e2e8f0;border-color:#cbd5e1;color:#475569}
[data-theme="light"] .dialog{background:#fff;color:#0b1220}
[data-theme="light"] .menu-item:hover{background:#f1f5f9}
[data-theme="light"] .note-list{scrollbar-color:#64748b transparent}
[data-theme="light"] .note-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#06b6d4,#8b5cf6)}
[data-theme="light"] .content-input{scrollbar-color:#94a3b8 transparent}
[data-theme="light"] .content-input::-webkit-scrollbar-thumb{background:rgba(100,116,139,.55)}
[data-theme="light"] .undo-toast{background:#fff;border-color:#e2e8f0}

/* System theme fallback */
@media (prefers-color-scheme: light){
  :root:not([data-theme]){--bg:#f6f7fb;--bg-elev:#ffffff;--panel:#ffffff;--text:#0b1220;--muted:#475569;--border:#e2e8f0;--shadow:0 10px 30px rgba(2,6,23,.1)}
  :root:not([data-theme]) .btn{background:#f3f4f6}
  :root:not([data-theme]) .btn.ghost{background:transparent}
  :root:not([data-theme]) .menu-popover{background:#fff}
  :root:not([data-theme]) .input{background:#f8fafc}
  :root:not([data-theme]) .note-list{scrollbar-color:#64748b transparent}
  :root:not([data-theme]) .note-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#06b6d4,#8b5cf6)}
  :root:not([data-theme]) .content-input{scrollbar-color:#94a3b8 transparent}
  :root:not([data-theme]) .content-input::-webkit-scrollbar-thumb{background:rgba(100,116,139,.55)}
  :root:not([data-theme]) .undo-toast{background:#fff;border-color:#e2e8f0}
}


