:root{--bg: #0f1419;--surface: #1a2332;--surface2: #243044;--border: #2d3a4f;--text: #e8edf4;--text2: #94a3b8;--accent: #3b82f6;--accent2: #60a5fa;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:var(--accent);color:#fff;padding:8px 16px;border-radius:8px;font-weight:500;transition:background .15s}button:hover{background:var(--accent2)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--text2);border:1px solid var(--border)}button.ghost:hover{background:var(--surface2);color:var(--text)}button.danger{background:var(--danger)}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.app-layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .logo{font-size:20px;font-weight:700;padding:8px 12px 20px;display:flex;align-items:center;gap:8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--text2);border:none;background:none;width:100%;text-align:left;font-weight:500}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent);color:#fff}.main{padding:24px 32px;overflow-y:auto}.stats-bar{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;min-width:140px}.stat-card .value{font-size:28px;font-weight:700;color:var(--accent2)}.stat-card .label{font-size:13px;color:var(--text2);margin-top:2px}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.toolbar input{flex:1;min-width:200px;max-width:400px}.bookmark-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.bookmark-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s,transform .15s}.bookmark-card:hover{border-color:var(--accent);transform:translateY(-1px)}.bookmark-card.read{opacity:.65}.card-image{height:140px;background:var(--surface2);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover}.card-image .placeholder{font-size:40px;opacity:.3}.card-body{padding:14px 16px}.card-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}.card-header img.favicon{width:20px;height:20px;border-radius:4px;flex-shrink:0;margin-top:2px}.card-title{font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-title a{color:var(--text);text-decoration:none}.card-title a:hover{color:var(--accent2)}.card-summary{font-size:13px;color:var(--text2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tag{font-size:11px;padding:2px 8px;border-radius:12px;background:var(--surface2);color:var(--text2)}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.card-actions button{font-size:12px;padding:4px 10px}.badge{font-size:11px;padding:2px 8px;border-radius:12px;font-weight:500}.badge.tools{background:#1e3a5f;color:#60a5fa}.badge.reading{background:#3b2f1e;color:#fbbf24}.badge.reference{background:#1e3b2f;color:#4ade80}.badge.favorite{background:#3b1e3b;color:#c084fc}.badge.pending{background:#3b2f1e;color:var(--warning)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f1419,#1a2332,#0f1419)}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:400px}.login-box h1{font-size:28px;margin-bottom:8px}.login-box p{color:var(--text2);margin-bottom:24px}.login-box .field{margin-bottom:16px}.login-box label{display:block;font-size:13px;color:var(--text2);margin-bottom:6px}.login-box .error{color:var(--danger);font-size:13px;margin-top:12px}.settings-form{max-width:600px}.settings-form .section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.settings-form h3{margin-bottom:16px;font-size:16px}.settings-form .field{margin-bottom:14px}.settings-form label{display:block;font-size:13px;color:var(--text2);margin-bottom:6px}.settings-form .hint{font-size:12px;color:var(--text2);margin-top:4px}.empty-state{text-align:center;padding:60px 20px;color:var(--text2)}.empty-state .icon{font-size:48px;margin-bottom:16px}@media(max-width:768px){.app-layout{grid-template-columns:1fr}.sidebar{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.main{padding:16px}}
