:root{--bg-app:#d7dbe3;--bg-shell:#ffffffb8;--bg-sidebar:#f6f7faf0;--bg-list:#fbfcfeeb;--bg-note:#fffdf7;--bg-note-accent:#f8f2de;--bg-selected:#eef2fb;--bg-chip:#eef1f6;--border-soft:#525c7024;--border-strong:#525c7038;--shadow-shell:0 24px 70px #20293924;--shadow-panel:0 8px 24px #20293914;--text-primary:#1f2633;--text-secondary:#5b6578;--text-tertiary:#7d8797;--accent-critical:#d24d57;--accent-warning:#d58a1d;--accent-info:#4879c6;--accent-success:#3f8a61}*{box-sizing:border-box}html{font-size:16px}body{min-height:100vh;color:var(--text-primary);background:radial-gradient(circle at 0 0,#fffffff2,#d7dbe3e0 35%,#cfd5e1 100%);margin:0;font-family:SF Pro Text,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-frame{min-height:100vh;padding:20px}.shell{border:1px solid var(--border-soft);background:var(--bg-shell);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);min-height:calc(100vh - 40px);box-shadow:var(--shadow-shell);border-radius:28px;grid-template-columns:320px minmax(0,1fr);display:grid;overflow:hidden}.sidebar,.notes-column,.detail-column{min-height:0}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-soft);flex-direction:column;gap:18px;padding:24px 18px;display:flex}.sidebar-brand{gap:4px;display:grid}.sidebar-kicker{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.sidebar-title{font-family:Iowan Old Style,Georgia,serif;font-size:1.5rem;font-weight:600}.sidebar-subtitle{color:var(--text-secondary);font-size:.92rem;line-height:1.4}.nav-group,.meta-group{gap:8px;display:grid}.nav-link{color:var(--text-secondary);border-radius:14px;justify-content:space-between;align-items:center;padding:10px 12px;transition:background-color .16s,color .16s;display:flex}.nav-link:hover,.nav-link.active{color:var(--text-primary);background:#ffffffb8}.meta-card{border:1px solid var(--border-soft);background:#ffffffb8;border-radius:18px;gap:10px;padding:14px;display:grid}.meta-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.meta-value{color:var(--text-primary);font-size:.95rem}.meta-row{justify-content:space-between;gap:12px;display:flex}.search-input{border:1px solid var(--border-soft);width:100%;color:var(--text-primary);background:#ffffffd9;border-radius:14px;outline:none;padding:12px 14px}.search-input:focus{border-color:#4879c680;box-shadow:0 0 0 4px #4879c61f}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--bg-chip);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;border-radius:999px;padding:7px 11px;font-size:.82rem}.chip.active{color:var(--text-primary);background:#4879c61f;border-color:#4879c638}.sidebar-scroll{gap:12px;display:grid;overflow:auto}.note-card,.sidebar-note-card{border:1px solid var(--border-soft);box-shadow:var(--shadow-panel);background:#ffffffb8;border-radius:18px;gap:10px;padding:14px;transition:transform .16s,border-color .16s,background-color .16s;display:grid}.note-card:hover,.sidebar-note-card:hover{transform:translateY(-1px)}.note-card.selected,.sidebar-note-card.selected{background:var(--bg-selected);border-color:#4879c647}.note-card-header,.note-card-footer,.detail-meta-row,.threat-meta-row,.section-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.note-card-date,.muted{color:var(--text-tertiary);font-size:.82rem}.note-card-title{font-size:1rem;font-weight:600;line-height:1.35}.note-card-preview{color:var(--text-secondary);font-size:.9rem;line-height:1.4}.badge-row{flex-wrap:wrap;gap:8px;display:flex}.badge{border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:.78rem;font-weight:600;display:inline-flex}.badge.critical{color:var(--accent-critical);background:#d24d571f}.badge.high,.badge.medium,.badge.review{color:var(--accent-warning);background:#d58a1d1f}.badge.published,.badge.yes{color:var(--accent-success);background:#3f8a611f}.badge.neutral,.badge.no{color:var(--text-secondary);background:#5b65781a}.badge.info{color:var(--accent-info);background:#4879c61f}.detail-column{background:linear-gradient(#fffdf7fa,#fffbf2f0);overflow:auto}.detail-inner{gap:18px;max-width:920px;margin:0 auto;padding:28px;display:grid}.hero-note,.section-card,.threat-card{border:1px solid var(--border-soft);background:var(--bg-note);box-shadow:var(--shadow-panel);border-radius:22px}.hero-note{background:linear-gradient(180deg, #fffdf7, var(--bg-note-accent));padding:24px}.detail-title{letter-spacing:-.03em;margin:0;font-family:Iowan Old Style,Georgia,serif;font-size:clamp(2rem,3.8vw,3rem);line-height:1.05}.detail-subtitle{color:var(--text-secondary);max-width:66ch;margin:8px 0 0;line-height:1.55}.section-card{gap:14px;padding:20px;display:grid}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:0;font-size:.92rem}.bullet-list{gap:10px;margin:0;padding-left:20px;display:grid}.bullet-list li,.threat-summary,.source-list,.methodology-copy{color:var(--text-secondary);line-height:1.6}.threat-grid{gap:14px;display:grid}.threat-card{gap:14px;padding:18px;display:grid}.threat-title{margin:0;font-size:1.08rem;line-height:1.35}.threat-summary{margin:0}.meta-inline{flex-wrap:wrap;gap:8px;display:flex}.source-list{flex-wrap:wrap;gap:10px;margin:0;padding-left:0;list-style:none;display:flex}.source-link{color:var(--accent-info);text-underline-offset:2px;text-decoration:underline}.methodology-copy{gap:14px;display:grid}.detail-nav{justify-content:space-between;gap:12px;display:flex}.detail-nav a{border:1px solid var(--border-soft);background:#ffffffa6;border-radius:16px;flex:1;padding:14px}.detail-nav a span{display:block}.detail-nav-label{color:var(--text-tertiary);margin-bottom:6px;font-size:.8rem}.empty-state{border:1px dashed var(--border-strong);color:var(--text-secondary);border-radius:18px;padding:16px}@media (max-width:1100px){.shell{grid-template-columns:280px minmax(0,1fr)}}@media (max-width:920px){.app-frame{padding:0}.shell{border-radius:0;grid-template-columns:1fr;min-height:100vh}.sidebar{border-right:0;border-bottom:1px solid var(--border-soft)}}
