:root{--accent: #4f46e5;--accent-hover: #4338ca;--accent-fill: #4f46e5;--accent-fill-hover: #4338ca;--accent-soft: #eef2ff;--accent-ring: rgba(79, 70, 229, .28);--accent-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--bg: #f5f6fa;--surface: #ffffff;--surface-2: #f1f3f9;--border: rgba(15, 23, 42, .07);--border-strong: rgba(15, 23, 42, .13);--text: #0f172a;--text-2: #475569;--text-3: #8b95a7;--danger: #e11d48;--danger-soft: #fff1f2;--success: #059669;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 6px 20px -6px rgba(15, 23, 42, .14), 0 2px 6px rgba(15, 23, 42, .04);--shadow-lg: 0 24px 60px -12px rgba(15, 23, 42, .28);--radius: 16px;--radius-sm: 10px;--radius-xs: 7px;--sidebar-w: 272px;--topbar-bg: rgba(245, 246, 250, .94);--ease: .18s cubic-bezier(.2, .8, .2, 1);--mobile-nav-h: 64px}[data-theme=dark]{color-scheme:dark;--accent: #818cf8;--accent-hover: #a5b4fc;--accent-fill: #6366f1;--accent-fill-hover: #4f46e5;--accent-soft: rgba(129, 140, 248, .14);--accent-ring: rgba(129, 140, 248, .35);--bg: #0a0d14;--surface: #12161f;--surface-2: #1a1f2b;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #eef1f6;--text-2: #b8c0cd;--text-3: #6b7587;--danger: #fb7185;--danger-soft: rgba(251, 113, 133, .12);--success: #34d399;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 60px -12px rgba(0, 0, 0, .7);--topbar-bg: rgba(10, 13, 20, .94)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]){color-scheme:dark;--accent: #818cf8;--accent-hover: #a5b4fc;--accent-fill: #6366f1;--accent-fill-hover: #4f46e5;--accent-soft: rgba(129, 140, 248, .14);--accent-ring: rgba(129, 140, 248, .35);--bg: #0a0d14;--surface: #12161f;--surface-2: #1a1f2b;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #eef1f6;--text-2: #b8c0cd;--text-3: #6b7587;--danger: #fb7185;--danger-soft: rgba(251, 113, 133, .12);--success: #34d399;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 60px -12px rgba(0, 0, 0, .7);--topbar-bg: rgba(10, 13, 20, .94)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}::selection{background:var(--accent-soft);color:var(--accent)}a{color:inherit;text-decoration:none}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:600;letter-spacing:-.005em;cursor:pointer;transition:background-color var(--ease),border-color var(--ease),color var(--ease),box-shadow var(--ease),filter var(--ease);white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled){filter:brightness(.94)}.btn-primary{background:var(--accent-fill);color:#fff;box-shadow:0 1px 2px #0f172a1f,inset 0 1px #ffffff24}.btn-primary:hover:not(:disabled){background:var(--accent-fill-hover)}.btn-ghost{background:var(--surface);color:var(--text-2);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.93)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;width:38px;height:38px;background:transparent;color:var(--text-2);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--ease),color var(--ease),border-color var(--ease);-webkit-tap-highlight-color:transparent}.btn-icon:hover{background:var(--surface-2);color:var(--text)}.btn-icon.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.btn-icon:focus-visible,.sidebar-item:focus-visible,.tag-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.input,.select,textarea.input{width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-size:14px;transition:border-color var(--ease),box-shadow var(--ease)}.input:focus,.select:focus,textarea.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.input:hover:not(:focus),.select:hover:not(:focus){border-color:color-mix(in srgb,var(--text-3) 60%,transparent)}.field{margin-bottom:16px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:6px}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.4}.badge .dot{width:7px;height:7px;border-radius:50%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0d1480;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fade .15s ease}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;max-height:90dvh;overflow-y:auto;animation:pop .18s cubic-bezier(.2,.9,.3,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16.5px;font-weight:700;letter-spacing:-.01em}.modal-body{padding:22px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--text-3)}.row{display:flex;align-items:center;gap:10px}.error-text{color:var(--danger);font-size:13px;margin-top:8px}.public-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;margin-top:18px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:border-color var(--ease),background var(--ease)}.public-toggle.on{border-color:var(--accent);background:var(--accent-soft)}.public-toggle-text{display:flex;flex-direction:column;gap:2px;font-size:13.5px}.public-toggle-text .muted{font-size:12px}.switch{flex-shrink:0;width:40px;height:24px;border-radius:999px;background:var(--border-strong);position:relative;transition:background var(--ease)}.public-toggle.on .switch{background:var(--accent)}.switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--ease)}.public-toggle.on .switch-knob{transform:translate(16px)}@media (max-width: 880px){.hide-sm{display:none}}.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 60%),var(--bg)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);padding:38px 32px 32px;text-align:center}.login-logo{width:52px;height:52px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:var(--accent-grad);color:#fff;box-shadow:0 10px 24px -8px #6366f199}.login-card h1{margin:0 0 4px;font-size:23px;font-weight:750;letter-spacing:-.025em}.login-card .btn{width:100%;min-height:44px}@media (max-width: 560px){.login-card{padding:30px 22px 24px}}.login-sub{margin:0 0 26px;color:var(--text-3);font-size:14px}.login-card .field{text-align:left}.login-footer{font-size:12px}.login-warning{margin:-10px 0 18px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:13px;line-height:1.45;text-align:left}.app-shell{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;height:100dvh}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:20px 20px 16px;font-weight:750;font-size:16px;letter-spacing:-.02em}.sidebar-brand-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--accent-grad);color:#fff;border-radius:10px;box-shadow:0 6px 14px -4px #6366f18c}.sidebar-nav{flex:1;overflow-y:auto;padding:6px 12px 14px}.sidebar-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:14px 12px 6px}.sidebar-item{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:38px;padding:8px 12px;margin-bottom:2px;border:none;background:transparent;color:var(--text-2);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:550;text-align:left;transition:background-color var(--ease),color var(--ease);-webkit-tap-highlight-color:transparent}.sidebar-item:hover{background:var(--surface-2);color:var(--text)}.sidebar-item.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.sidebar-item.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sidebar-item.drop-target{background:var(--accent-soft);color:var(--accent);outline:2px dashed var(--accent);outline-offset:-2px}.sidebar-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-count{font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-3);background:var(--surface-2);padding:1px 8px;border-radius:999px}.sidebar-item.active .sidebar-count{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.sidebar-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.sidebar-sub{padding-left:32px}.sidebar-sub .sidebar-item-name{font-size:13px}.sidebar-empty{padding:6px 12px;font-size:13px}.sidebar-foot{padding:10px 12px;border-top:1px solid var(--border)}.sidebar-scrim{display:none}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:14px 28px;background:var(--topbar-bg);border-bottom:1px solid var(--border)}.topbar-search{flex:1;min-width:0;max-width:560px}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-icon.menu-btn{display:none}.searchbar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:0 16px;color:var(--text-3);box-shadow:var(--shadow-sm);transition:border-color var(--ease),box-shadow var(--ease)}.searchbar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.searchbar-input{flex:1;min-width:0;border:none;background:transparent;padding:10px 0;font-size:14px;color:var(--text);outline:none}.searchbar-clear{border:none;background:transparent;cursor:pointer;color:var(--text-3);display:flex;padding:4px;border-radius:50%}.searchbar-clear:hover{color:var(--text);background:var(--surface-2)}.toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:28px 28px 10px}.toolbar-title h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:26px;font-weight:750;letter-spacing:-.025em}.toolbar-controls{display:flex;align-items:center;gap:10px}.sort-select{width:auto;padding:8px 12px;min-height:38px}.view-toggle{display:flex;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.view-toggle .btn-icon{width:32px;height:32px;border-radius:var(--radius-xs)}.doc-area{flex:1;padding:16px 28px 28px}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.doc-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--ease),border-color var(--ease)}.doc-card.draggable:active{cursor:grabbing}.doc-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.fav-corner{position:absolute;top:10px;left:10px;z-index:2;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:#f59e0b;box-shadow:var(--shadow-sm)}.fav-inline{color:#f59e0b;margin-right:5px;vertical-align:-1px}.star-btn.on,.star-btn:hover{color:#f59e0b}.doc-card.selectable{cursor:pointer}.doc-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.select-check{position:absolute;top:10px;left:10px;z-index:3;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:2px solid var(--border-strong);background:var(--surface);color:#fff}.select-check.on{background:var(--accent);border-color:var(--accent)}.select-check.sm{position:static;width:18px;height:18px;flex-shrink:0}.bulk-bar{position:sticky;bottom:calc(16px + var(--bulk-offset, 0px));margin:0 24px 16px;display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:15}.bulk-count{font-weight:600;margin-right:auto}.install-prompt{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:calc(100vw - 32px)}.install-icon{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--accent);color:#fff}.install-text{display:flex;flex-direction:column;line-height:1.3}.install-text .muted{font-size:12.5px}.mobile-nav{display:none}@media (max-width: 880px){.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:center;height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -8px 24px -12px #0f172a2e}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;border:none;background:transparent;color:var(--text-3);font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-nav-item.active{color:var(--accent)}.mobile-nav-add{width:52px;height:52px;margin:0 auto;display:flex;align-items:center;justify-content:center;border:none;border-radius:18px;background:var(--accent-grad);color:#fff;box-shadow:0 10px 22px -8px #6366f1b3;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-nav-add:active{filter:brightness(.92)}}.scan-actions{display:flex;gap:10px;flex-wrap:wrap}.scan-actions .btn{flex:1;min-width:140px;justify-content:center}.scan-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 0;color:var(--text-3);border:1px dashed var(--border);border-radius:var(--radius);margin-top:14px}.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin-top:14px}.scan-page{position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-alt, var(--surface));aspect-ratio:3 / 4;display:flex;align-items:center;justify-content:center}.scan-page img{width:100%;height:100%;object-fit:cover}.scan-page-num{position:absolute;top:6px;left:6px;min-width:22px;height:22px;padding:0 6px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:11px;font-size:12px;font-weight:600}.scan-page-actions{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:2px;padding:4px;background:#0f172a8c}.scan-page-actions .btn-icon{color:#fff;width:34px;height:34px}.scan-page-loading{color:var(--text-3)}.ver-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.ver-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.ver-main{flex:1;min-width:0}.ver-date{font-weight:600;font-size:13px}.ver-sub{font-size:12px}.share-create{display:flex;flex-direction:column;gap:10px;margin-top:10px}.share-create-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.share-dl{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.share-dl input{width:16px;height:16px;accent-color:var(--accent)}.share-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.share-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.share-item.expired{opacity:.55}.share-main{flex:1;min-width:0}.share-token{font-size:13px;font-weight:600}.share-sub{font-size:12px}@media (max-width: 560px){.share-create-row{grid-template-columns:1fr}}.doc-snippet{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--text-2);background:var(--surface-2);border-radius:6px;padding:7px 9px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.doc-row .doc-snippet{-webkit-line-clamp:1;margin-top:4px}.trash-note{margin:0 24px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}.thumb{position:relative;aspect-ratio:1 / 1.25;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--border)}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.doc-card:hover .thumb img{transform:scale(1.035)}.thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0a0d1447,#0a0d1400 32%);opacity:0;transition:opacity var(--ease);pointer-events:none}.doc-card:hover .thumb:after{opacity:1}.thumb-loading,.thumb-fallback{display:flex;align-items:center;justify-content:center;color:var(--text-3)}.doc-card-body{display:flex;flex-direction:column;flex:1;padding:12px 14px 13px}.doc-card-title{font-weight:650;font-size:14px;line-height:1.35;letter-spacing:-.01em;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}.doc-card-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:22px;margin-bottom:8px}.doc-card-badges .pub-pill{margin-left:0}.doc-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.doc-card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--border);font-size:12px;font-variant-numeric:tabular-nums}.doc-card-actions{position:absolute;top:10px;right:10px;z-index:3;display:flex;gap:4px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transition:opacity var(--ease),visibility var(--ease)}.doc-card:hover .doc-card-actions,.doc-card:focus-within .doc-card-actions{opacity:1;visibility:visible}.doc-card-actions .btn-icon{width:32px;height:32px;border-radius:9px}.doc-card-actions .btn-icon:hover{background:var(--surface-2)}.doc-card-actions .btn-icon[title^=Supprimer]:hover,.doc-card-actions .btn-icon[title^=Mettre]:hover{color:var(--danger);background:var(--danger-soft)}.doc-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.doc-list-head,.doc-row{display:grid;grid-template-columns:40px 1fr 170px 120px 100px 150px;align-items:center;gap:12px;padding:12px 18px}.doc-list-head{font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--surface-2)}.doc-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background-color var(--ease)}.doc-row:last-child{border-bottom:none}.doc-row:hover{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}.doc-row-main{min-width:0}.doc-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--accent-soft)}.doc-row-title{font-weight:600;font-size:14px;letter-spacing:-.005em}.doc-row-meta{display:flex;gap:6px;margin-top:2px;flex-wrap:wrap}.tag{font-size:11.5px;color:var(--text-3)}.tag-btn{border:1px solid transparent;background:var(--surface-2);border-radius:999px;padding:2px 9px;cursor:pointer;font-size:11.5px;color:var(--text-2);transition:background var(--ease),color var(--ease),border-color var(--ease)}.tag-btn:hover{background:var(--accent-soft);color:var(--accent)}.suggested-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.tag-btn.used{opacity:.45;cursor:default}.cf-row{display:grid;grid-template-columns:1fr 1fr 36px;gap:8px;margin-bottom:8px}@media (max-width: 560px){.cf-row{grid-template-columns:1fr 1fr 32px}}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 12px;background:var(--accent-soft);color:var(--accent);border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:600}.filter-chip button{display:flex;border:none;background:transparent;color:inherit;cursor:pointer;padding:2px;border-radius:50%}.filter-chip button:hover{background:#2563eb26}.doc-row-date,.doc-row-size{font-size:13px}.doc-row-actions{display:flex;justify-content:flex-end;gap:2px;opacity:0;visibility:hidden;transition:opacity var(--ease),visibility var(--ease)}.doc-row:hover .doc-row-actions,.doc-row:focus-within .doc-row-actions{opacity:1;visibility:visible}.state-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px}.empty-state{gap:6px;color:var(--text-3);text-align:center}.empty-state>svg{width:64px;height:64px;padding:16px;border-radius:20px;background:var(--accent-soft);color:var(--accent)}.empty-state h3{margin:12px 0 0;color:var(--text);font-size:18px;letter-spacing:-.01em}.empty-state p{margin:0 0 14px;max-width:320px}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 24px 28px}.pub-pill{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);vertical-align:middle}.public-page{min-height:100vh;display:flex;flex-direction:column}.public-header{border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.public-header-inner{max-width:1100px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px}.public-brand{display:flex;align-items:center;gap:12px;min-width:0}.public-brand-text{min-width:0}.public-brand-sub{font-size:12.5px}.public-brand-icon{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent-grad);color:#fff;border-radius:11px;box-shadow:0 6px 14px -4px #6366f18c}.public-brand-name{font-weight:700;font-size:15px}.public-toolbar{max-width:1100px;margin:0 auto;width:100%;display:flex;gap:12px;padding:20px 24px 8px}.public-search{flex:1;max-width:560px}.public-content{max-width:1100px;margin:0 auto;width:100%;padding:12px 24px 32px;flex:1}.public-groups{display:flex;flex-direction:column;gap:26px}.public-group-head{display:flex;align-items:center;gap:10px;margin:4px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.public-group-head h3{margin:0;font-size:15px;font-weight:700}.public-group-head .sidebar-dot{width:10px;height:10px}.public-group-head .muted{font-size:12px;background:var(--surface-2);padding:1px 8px;border-radius:999px}@media (max-width: 880px){.public-header-inner{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.public-brand-sub{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.public-toolbar{padding:16px 16px 6px}.public-content{padding:10px 16px 28px}}@media (max-width: 560px){.public-toolbar{flex-direction:column}.public-toolbar .sort-select{width:100%}}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:28px 20px;text-align:center;cursor:pointer;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color var(--ease),background var(--ease),color var(--ease)}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone.has-file{border-style:solid;border-color:var(--border-strong);background:var(--surface-2);color:var(--text)}.dropzone-text{font-size:14px}.dropzone-file{display:flex;align-items:center;gap:12px;text-align:left;color:var(--accent)}.dropzone-filename{font-weight:600;color:var(--text);word-break:break-all}.progress{position:relative;height:26px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width .15s ease}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.upload-queue{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto}.upload-queue-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2)}.upload-queue-item.done{border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.upload-queue-item.error{border-color:var(--danger)}.upload-queue-item.indexing,.upload-queue-item.uploading{border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.uq-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text)}input.uq-title{flex:1;padding:6px 9px;font-size:13px}.uq-meta{font-size:12px;white-space:nowrap}.uq-err{color:var(--danger);font-weight:700;width:18px;text-align:center}.color-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.color-swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform var(--ease)}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface) inset}@media (max-width: 880px){.sidebar{position:fixed;left:0;top:0;z-index:80;width:min(86vw,320px);transform:translate(-100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-lg);padding-top:env(safe-area-inset-top);border-radius:0 20px 20px 0}.sidebar.open{transform:none}.sidebar-item{min-height:44px}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0d1473;z-index:75;opacity:0;pointer-events:none;transition:opacity var(--ease)}.sidebar-scrim.show{opacity:1;pointer-events:auto}.doc-list-head{display:none}.doc-row{grid-template-columns:34px 1fr auto;padding:12px 14px}.doc-row:has(.select-check){grid-template-columns:18px 34px 1fr auto}.doc-row-cat,.doc-row-date,.doc-row-size,.hide-sm{display:none}.toolbar{flex-direction:column;align-items:stretch}.topbar-upload,.topbar-scan{display:none}.topbar{padding:10px 14px;gap:8px;padding-top:max(10px,env(safe-area-inset-top))}.toolbar{padding:18px 16px 6px}.doc-area{padding:12px 16px calc(var(--mobile-nav-h) + 28px + env(safe-area-inset-bottom))}.pagination{padding-bottom:calc(var(--mobile-nav-h) + 20px + env(safe-area-inset-bottom))}.trash-note,.bulk-bar{margin-left:16px;margin-right:16px}.app-shell{--bulk-offset: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom))}.install-prompt{bottom:calc(var(--mobile-nav-h) + 14px + env(safe-area-inset-bottom))}}@media (hover: none){.doc-card-actions{opacity:1;visibility:visible;box-shadow:var(--shadow-sm)}.doc-row-actions{opacity:1;visibility:visible}.doc-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border)}.doc-card:hover .thumb img{transform:none}.doc-card:hover .thumb:after{opacity:0}.btn-icon{min-width:40px;min-height:40px}.doc-card-actions .btn-icon{width:34px;height:34px;min-width:34px;min-height:34px}}@media (max-width: 560px){.doc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.doc-card-body{padding:10px 11px 11px}.doc-card-title{font-size:13.5px;min-height:2.6em;margin-bottom:6px}.doc-card-tags,.doc-card .doc-snippet{display:none}.doc-card-badges{margin-bottom:4px}.doc-card-meta span:last-child{display:none}.doc-card-actions{top:6px;right:6px;padding:2px;gap:0;border-radius:10px}.doc-card-actions .btn-icon{width:30px;height:30px;min-width:30px;min-height:30px}.toolbar-title h2{font-size:22px}.toolbar-controls{flex-wrap:nowrap}.toolbar-controls .sort-select{flex:1;min-width:0}.searchbar-input,.input,.select,textarea.input{font-size:16px}.modal{max-width:100%;border-radius:22px 22px 0 0;max-height:92dvh}.modal-overlay{padding:0;align-items:flex-end;z-index:100}.modal-header{position:relative;padding-top:24px}.modal-header:before{content:"";position:absolute;top:8px;left:50%;margin-left:-18px;width:36px;height:4px;border-radius:4px;background:var(--border-strong)}.modal-footer{padding-bottom:max(16px,env(safe-area-inset-bottom));position:sticky;bottom:0;background:var(--surface)}}.viewer{display:flex;flex-direction:column;height:100vh;background:var(--bg)}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.viewer-bar-left,.viewer-bar-center,.viewer-bar-right{display:flex;align-items:center;gap:6px}.viewer-bar-left{flex:1;min-width:0}.viewer-bar-right{flex:1;justify-content:flex-end}.viewer-title{font-weight:600;font-size:14px;margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-sep{width:1px;height:22px;background:var(--border-strong);margin:0 4px}.page-jump{display:flex;align-items:center;gap:8px}input.page-input{width:56px;flex:none;text-align:center;padding:6px 4px}.zoom-label{font-size:13px;font-weight:600;min-width:42px;text-align:center;color:var(--text-2)}.bm-wrap{position:relative}.bm-badge{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;padding:0 3px;font-size:10px;font-weight:700;line-height:15px;text-align:center;border-radius:999px;background:var(--accent);color:#fff}.bm-menu{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:30;min-width:150px;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px}.bm-menu-title{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-3);padding:4px 8px 6px}.bm-menu-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;color:var(--text-2);padding:7px 8px;border-radius:6px;font-size:13px;cursor:pointer;text-align:left}.bm-menu-item:hover{background:var(--surface-2);color:var(--accent)}.viewer-info{width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;padding:16px}.viewer-info-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.viewer-info-head h4{margin:0;font-size:14px}.viewer-info-block{margin-bottom:18px}.viewer-info-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:6px}.viewer-info-notes{margin:0;font-size:13.5px;color:var(--text-2);white-space:pre-wrap}.viewer-info-fields{margin:0;display:flex;flex-direction:column;gap:8px}.viewer-info-field{display:flex;flex-direction:column;gap:1px}.viewer-info-field dt{font-size:12px;color:var(--text-3)}.viewer-info-field dd{margin:0;font-size:13.5px;font-weight:600}@media (max-width: 900px){.viewer-info{position:absolute;right:0;top:57px;bottom:0;z-index:8;box-shadow:var(--shadow-lg);border-left:1px solid var(--border)}}.viewer-outline{width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.viewer-outline-head{display:flex;align-items:center;justify-content:space-between;padding:12px 10px 12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1}.viewer-outline-head h4{margin:0;font-size:14px}.outline-ul{list-style:none;margin:0;padding:0}.outline-root{padding:8px 8px 16px}.outline-li{margin:0}.outline-row{display:flex;align-items:center;gap:2px;border-radius:6px}.outline-row.current{background:var(--accent-soft)}.outline-caret{flex-shrink:0;width:20px;height:26px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-3);cursor:pointer;padding:0}.outline-caret:hover{color:var(--text)}.outline-caret-spacer{width:20px;flex-shrink:0}.outline-title{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:none;background:transparent;cursor:pointer;padding:6px 8px 6px 2px;text-align:left;color:var(--text-2);font-size:13px;border-radius:6px}.outline-title:hover:not(:disabled){color:var(--accent)}.outline-title:disabled{cursor:default;color:var(--text-3)}.outline-row.current .outline-title{color:var(--accent);font-weight:600}.outline-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outline-page{flex-shrink:0;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}@media (max-width: 900px){.viewer-outline{position:absolute;left:0;top:57px;bottom:0;z-index:9;width:min(82vw,300px);box-shadow:var(--shadow-lg)}}.viewer-search{display:flex;align-items:center;gap:6px;margin-left:8px;padding:4px 6px 4px 10px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px}.viewer-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input.viewer-search-input{width:150px;border:none;background:transparent;padding:4px 0;font-size:13px;color:var(--text);outline:none}.viewer-search-count{font-size:12px;color:var(--text-3);white-space:nowrap;min-width:42px;text-align:center}.viewer-search .btn-icon{width:28px;height:28px}@media (max-width: 560px){input.viewer-search-input{width:96px}}.viewer-body{flex:1;display:flex;min-height:0}.viewer-thumbs{width:184px;flex-shrink:0;overflow-y:auto;padding:14px 12px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.thumb-item{border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;padding:0}.thumb-canvas-wrap{position:relative;width:100%;border:2px solid transparent;border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);background:#fff;transition:border-color var(--ease);min-height:60px}.thumb-item:hover .thumb-canvas-wrap{border-color:var(--border-strong)}.thumb-item.active .thumb-canvas-wrap{border-color:var(--accent)}.thumb-item-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.thumb-num{font-size:11px;color:var(--text-3);font-weight:600}.thumb-item.active .thumb-num{color:var(--accent)}.viewer-stage{flex:1;overflow:auto;position:relative;display:block;padding:24px 16px 48px;touch-action:pan-x pan-y;overscroll-behavior:contain}.pdf-pages{display:flex;flex-direction:column;align-items:center;gap:18px;width:fit-content;min-width:100%;margin:0 auto;box-sizing:border-box}.pdf-page{position:relative;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:var(--shadow-md);border-radius:2px;max-width:100%}.pdf-page-canvas{display:block;max-width:100%;height:auto}.pdf-pages.pdf-dark .pdf-page{box-shadow:0 0 0 1px #ffffff0f,var(--shadow-md)}.pdf-pages.pdf-dark .pdf-page-canvas{filter:invert(1) hue-rotate(180deg)}.pdf-highlights{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pdf-highlight{position:absolute;background:#facc1573;outline:1px solid rgba(202,138,4,.6);border-radius:2px;mix-blend-mode:multiply}.pdf-link-layer{position:absolute;top:0;right:0;bottom:0;left:0}.pdf-link{position:absolute;display:block;padding:0;border:none;background:transparent;cursor:pointer;border-radius:2px;transition:background .12s ease,box-shadow .12s ease}.pdf-link:hover{background:#2563eb2e;box-shadow:0 0 0 1px #2563eb73 inset}.pdf-page-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:13px;background:repeating-linear-gradient(-45deg,var(--surface-2),var(--surface-2) 10px,var(--surface) 10px,var(--surface) 20px)}.viewer-loading,.viewer-error{display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;width:100%;min-height:70vh;color:var(--text-3)}.viewer-error p{margin:0}@media (max-width: 900px){.viewer-thumbs{position:absolute;left:0;top:57px;bottom:0;z-index:8;box-shadow:var(--shadow-lg)}.viewer-title{display:none}}@media (max-width: 560px){.viewer-bar{flex-wrap:wrap;gap:6px;padding:8px;padding-top:max(8px,env(safe-area-inset-top))}.viewer-bar-left,.viewer-bar-center,.viewer-bar-right{flex:none}.viewer-bar-left{gap:2px}.viewer-bar-center{order:3;width:100%;justify-content:center}.viewer-bar-right{order:2;margin-left:auto;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.viewer-bar-right::-webkit-scrollbar{display:none}.hide-xs{display:none}.viewer-stage{padding:12px 6px calc(40px + env(safe-area-inset-bottom))}.viewer-bar .btn-icon{min-width:38px;min-height:38px}.viewer-bar .btn{padding:8px 10px}.viewer-thumbs{top:auto}.viewer-search{margin-left:0}input.viewer-search-input{width:28vw;max-width:130px;font-size:16px}}.viewer-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:90;max-width:calc(100vw - 32px);padding:10px 16px;background:var(--accent);color:#fff;border-radius:999px;box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:500;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.admin-page{min-height:100vh;display:flex;flex-direction:column}.admin-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.admin-bar{gap:12px;padding-top:max(12px,env(safe-area-inset-top))}.admin-bar-title{font-weight:700;font-size:15px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 880px){.admin-content{padding:18px 14px 40px;gap:14px}.admin-card{padding:18px 16px}}.admin-content{max-width:720px;width:100%;margin:0 auto;padding:28px 20px 48px;display:flex;flex-direction:column;gap:20px}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px 24px}.admin-card-head h3{display:flex;align-items:center;gap:8px;margin:0 0 2px;font-size:16px}.admin-card-head p{margin:0 0 16px;font-size:13.5px}.cat-create-row{display:flex;gap:10px}.cat-create-row .input{flex:1}.cat-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column}.cat-item{display:flex;align-items:center;gap:12px;padding:12px 4px;border-top:1px solid var(--border)}.cat-item:first-child{border-top:none}.cat-name{font-weight:600}.cat-count{flex:1;font-size:13px}.cat-edit{width:100%;display:flex;flex-direction:column;gap:10px}.admin-account{display:flex;gap:28px;margin-bottom:18px;flex-wrap:wrap}.admin-stat{display:flex;flex-direction:column;gap:2px}.admin-stat-num{font-size:22px;font-weight:700;letter-spacing:-.01em}.admin-card code{background:var(--surface-2);padding:1px 6px;border-radius:5px;font-size:12px}.site-settings{display:flex;flex-direction:column}.site-settings .field{margin-bottom:16px}.dashboard{display:flex;flex-direction:column;gap:22px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface-2);border-radius:var(--radius-sm)}.kpi-num{font-size:22px;font-weight:700;letter-spacing:-.01em}.kpi .muted{font-size:12.5px}.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}.dash-block h4{margin:0 0 12px;font-size:14px}.stat-rows{display:flex;flex-direction:column;gap:9px}.stat-row{display:grid;grid-template-columns:140px 1fr 34px;align-items:center;gap:10px}.stat-label{display:flex;align-items:center;gap:7px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-bar{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:999px;transition:width .4s ease}.stat-val{font-size:13px;font-weight:600;text-align:right}.month-chart{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:8px}.month-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}.month-bar{width:100%;min-height:3px;background:var(--accent);border-radius:4px 4px 0 0;transition:height .4s ease}.month-label{font-size:10px;color:var(--text-3)}.activity-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}.activity-item{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid var(--border);font-size:13px}.activity-item:first-child{border-top:none}.activity-icon{width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-2);color:var(--text-2)}.activity-icon.a-upload{background:#05966924;color:#059669}.activity-icon.a-delete{background:var(--danger-soft);color:var(--danger)}.activity-icon.a-share{background:var(--accent-soft);color:var(--accent)}.activity-text{flex:1;min-width:0}.activity-time{flex-shrink:0;font-size:12px}.twofa-status{display:flex;align-items:center;gap:8px;font-size:14px;padding:10px 14px;background:var(--surface-2);border-radius:var(--radius-sm);margin-bottom:12px}.twofa-status.on{background:#0596691f;color:#059669}.twofa-setup{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.twofa-secret{display:inline-block;font-size:14px;font-weight:600;letter-spacing:.1em;background:var(--surface-2);padding:6px 10px;border-radius:6px;word-break:break-all}.twofa-disable{margin-top:6px}@media (max-width: 640px){.dash-cols{grid-template-columns:1fr}.stat-row{grid-template-columns:110px 1fr 30px}}.reindex-stats{display:flex;gap:28px;margin-bottom:16px;flex-wrap:wrap}.reindex .admin-stat-num{font-size:20px}.user-list{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column}.user-item{display:flex;align-items:center;gap:12px;padding:12px 4px;border-top:1px solid var(--border)}.user-item:first-child{border-top:none}.user-avatar{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.user-main{flex:1;min-width:0}.user-name{font-weight:600;display:flex;align-items:center;gap:8px}.user-sub{font-size:12.5px}.user-editor{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.user-editor h4{margin:0 0 14px;font-size:14px}.user-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;gap:3px}.role-seg-btn{border:none;background:transparent;color:var(--text-2);padding:7px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--ease),color var(--ease)}.role-seg-btn:hover{color:var(--text)}.role-seg-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.perm-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:14px}.perm-item{display:flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer}.perm-item input{width:16px;height:16px;accent-color:var(--accent)}.scope-grid{display:flex;flex-wrap:wrap;gap:8px}.scope-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;font-size:13px;color:var(--text-2);cursor:pointer;transition:border-color var(--ease),background var(--ease),color var(--ease)}.scope-chip:hover{border-color:var(--accent)}.scope-chip.active{background:var(--accent-soft);color:var(--accent);border-color:transparent}@media (max-width: 560px){.user-form-grid,.perm-list{grid-template-columns:1fr}}
