:root{--bg:#f6f7fb;--bg-grad-1:#eef2ff;--bg-grad-2:#f6f7fb;--surface:#fff;--surface-2:#f3f4f8;--border:#e4e7f0;--text:#1a1c25;--text-soft:#5b6072;--text-faint:#8a8fa3;--accent:#4f46e5;--accent-soft:#eef0ff;--accent-text:#4338ca;--green:#0f9d58;--green-soft:#e6f5ec;--amber:#b7791f;--amber-soft:#fdf3e0;--shadow:0 1px 2px #1416280a, 0 8px 24px #1416280f;--shadow-hover:0 2px 4px #1416280f, 0 16px 40px #1416281f;--radius:16px}[data-theme=dark]{--bg:#0e0f16;--bg-grad-1:#14162a;--bg-grad-2:#0e0f16;--surface:#181a26;--surface-2:#1f2230;--border:#2a2d3d;--text:#edeef4;--text-soft:#a5a9bd;--text-faint:#71768c;--accent:#7c7bff;--accent-soft:#23233d;--accent-text:#b7b6ff;--green:#45d483;--green-soft:#16301f;--amber:#e2b45a;--amber-soft:#33280f;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--shadow-hover:0 2px 4px #00000059, 0 16px 40px #00000080}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--text);background:radial-gradient(1200px 600px at 50% -10%, var(--bg-grad-1), transparent 70%), var(--bg-grad-2);min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}.wrap{max-width:1000px;margin:0 auto;padding:0 20px}.topbar{justify-content:space-between;align-items:center;padding:20px 0;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:12px;font-weight:700;display:flex}.brand .logo{background:linear-gradient(135deg, var(--accent), #8b5cf6);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:18px;font-weight:800;display:grid;box-shadow:0 4px 12px #4f46e559}.theme-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);cursor:pointer;border-radius:10px;place-items:center;width:40px;height:40px;font-size:18px;transition:transform .15s,background .2s;display:grid}.theme-toggle:hover{transform:translateY(-1px)}.hero{text-align:center;padding:32px 0 8px}.hero h1{letter-spacing:-.03em;margin:0 0 14px;font-size:clamp(30px,5vw,46px);font-weight:800;line-height:1.1}.hero h1 .grad{background:linear-gradient(120deg, var(--accent), #a855f7);color:#0000;-webkit-background-clip:text;background-clip:text}.hero p{color:var(--text-soft);max-width:620px;margin:0 auto;font-size:clamp(15px,2.2vw,18px)}.stats{flex-wrap:wrap;justify-content:center;gap:12px;margin:26px 0 8px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow);border-radius:12px;min-width:108px;padding:12px 18px}.stat b{letter-spacing:-.02em;font-size:22px;display:block}.stat span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px}.controls{flex-wrap:wrap;align-items:center;gap:12px;margin:30px 0 18px;display:flex}.search{background:var(--surface);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow);border-radius:12px;flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.search input{color:var(--text);background:0 0;border:none;outline:none;width:100%;padding:13px 0;font-size:15px}.search svg{color:var(--text-faint);flex:none}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding-bottom:40px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:20px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.card:hover{box-shadow:var(--shadow-hover);border-color:var(--accent);transform:translateY(-3px)}.card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card h2{letter-spacing:-.02em;margin:0;font-size:22px}.card .yr-badge{color:var(--accent-text);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.meta{flex-direction:column;gap:7px;margin:14px 0 18px;display:flex}.meta div{color:var(--text-soft);align-items:center;gap:9px;font-size:14px;display:flex}.meta .ic{text-align:center;opacity:.8;width:16px}.note{color:var(--amber);background:var(--amber-soft);border-radius:9px;margin:-6px 0 16px;padding:8px 11px;font-size:13px}.actions{gap:10px;margin-top:auto;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:11px 12px;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-ghost{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-text)}.btn-disabled{background:var(--surface-2);color:var(--text-faint);cursor:not-allowed;border:1px dashed var(--border);pointer-events:none}.empty{text-align:center;color:var(--text-faint);grid-column:1/-1;padding:60px 20px}.about{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:10px 0 30px;padding:24px}.about h3{letter-spacing:-.01em;margin:0 0 10px;font-size:18px}.about p{color:var(--text-soft);margin:0 0 10px;font-size:14.5px}.about p:last-child{margin-bottom:0}.about code{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}footer{text-align:center;color:var(--text-faint);padding:10px 0 40px;font-size:13px}footer a{color:var(--accent-text);text-decoration:none}.panel-controls{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 16px;display:flex}.panel-controls label{color:var(--text-soft);align-items:center;gap:6px;font-size:14px;display:inline-flex}.panel-controls select,.panel-controls input[type=password]{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px}.panel-controls .btn{flex:none;padding:8px 14px}.sources-table{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:13.5px}.sources-table th,.sources-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}.sources-table th{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.sources-table td{color:var(--text-soft)}.sources-table a{color:var(--accent-text)}
