@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0e0b;--surface: #1a1916;--surface2: #222119;--surface3: #2a2926;--border: #2e2c27;--border2: #3d3b35;--accent: #c8a96e;--accent2: #e8c98a;--text: #e8e4da;--muted: #8a8678;--dim: #5a5850;--green: #4a9c6e;--red: #c45a4a;--blue: #4a7ac4;--purple: #7a5ac4;--yellow: #d4a817}html,body,#root{height:100%;overflow:hidden}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}button{cursor:pointer;font-family:DM Sans,sans-serif}input,select,textarea{font-family:DM Sans,sans-serif}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;min-width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-logo{padding:20px 16px 14px;border-bottom:1px solid var(--border)}.sidebar-logo h1{font-family:Playfair Display,serif;font-size:22px;color:var(--accent2);font-weight:600;letter-spacing:-.5px}.sidebar-logo p{font-size:10px;color:var(--dim);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto}.nav-section{margin-bottom:18px}.nav-section-label{font-size:10px;color:var(--dim);letter-spacing:1.5px;text-transform:uppercase;padding:0 8px;margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;cursor:pointer;color:var(--muted);font-size:13px;transition:all .12s;margin-bottom:1px;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:#c8a96e1a;color:var(--accent2)}.nav-item .nav-icon{font-size:14px;width:16px;text-align:center;flex-shrink:0}.sidebar-user{padding:10px;border-top:1px solid var(--border)}.user-card{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;background:var(--surface2)}.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#c8a96e,#7a5ac4);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:#fff;flex-shrink:0}.user-name{font-size:13px;font-weight:500;color:var(--text)}.user-sub{font-size:11px;color:var(--dim)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{height:50px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:10px;background:var(--surface);flex-shrink:0}.topbar-title{font-family:Playfair Display,serif;font-size:17px;color:var(--text);font-weight:500}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.topbar-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;flex-shrink:0}.topbar-hamburger span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;transition:all .2s}.topbar-hamburger:hover span{background:var(--accent)}.page-content{flex:1;overflow:auto;padding:20px;min-width:0}.sidebar-overlay{display:none}@media (max-width: 768px){.topbar-hamburger{display:flex}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:99}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 24px #00000080}.sidebar-open{transform:translate(0)}.page-content{padding:14px}}.badge{background:#c8a96e1f;color:var(--accent);font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid rgba(200,169,110,.2);white-space:nowrap}.badge-green{background:#4a9c6e1f;color:var(--green);border-color:#4a9c6e33}.badge-blue{background:#4a7ac41f;color:var(--blue);border-color:#4a7ac433}.badge-red{background:#c45a4a1f;color:var(--red);border-color:#c45a4a33}.tag{display:inline-flex;align-items:center;font-size:11px;padding:2px 7px;border-radius:4px;font-weight:500;white-space:nowrap}.tag-polity{background:#4a7ac426;color:var(--blue)}.tag-history{background:#7a5ac426;color:var(--purple)}.tag-economy{background:#c8a96e26;color:var(--accent)}.tag-geography{background:#4a9c6e26;color:var(--green)}.tag-science{background:#c45a4a26;color:var(--red)}.tag-general{background:#5a58504d;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:8px;border:none;font-size:13px;font-weight:500;transition:all .12s;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0f0e0b}.btn-primary:hover:not(:disabled){background:var(--accent2)}.btn-secondary{background:transparent;color:var(--muted);border:1px solid var(--border2)}.btn-secondary:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.btn-ghost{background:transparent;color:var(--muted);border:none}.btn-ghost:hover{color:var(--text)}.btn-danger{background:#c45a4a1f;color:var(--red);border:1px solid rgba(196,90,74,.25)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:6px}.btn-icon{width:32px;height:32px;padding:0;border-radius:7px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.card-title{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:14px}.form-group{margin-bottom:14px}.form-label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);font-size:13px;outline:none;transition:border .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border2)}.form-select option{background:#1a1916}.form-textarea{resize:vertical;min-height:80px;line-height:1.6}.progress-bar{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .4s}.divider{height:1px;background:var(--border);margin:14px 0}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid var(--border2);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f0e0bb3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:inherit;z-index:10}.loading-text{font-size:13px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 900px){.grid-4,.grid-3{grid-template-columns:1fr 1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.stat-value{font-family:Playfair Display,serif;font-size:26px;font-weight:500;color:var(--text);line-height:1.1}.stat-label{font-size:12px;color:var(--muted);margin-top:5px}.stat-delta{font-size:11px;margin-top:6px}.delta-up{color:var(--green)}.delta-down{color:var(--red)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-card{width:360px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px}.auth-logo{text-align:center;margin-bottom:24px}.auth-logo h1{font-family:Playfair Display,serif;font-size:28px;color:var(--accent2)}.auth-logo p{font-size:12px;color:var(--dim);margin-top:4px;letter-spacing:1px;text-transform:uppercase}.auth-error{font-size:12px;color:var(--red);background:#c45a4a1a;border:1px solid rgba(196,90,74,.2);border-radius:6px;padding:8px 10px;margin-bottom:12px}.auth-switch{text-align:center;margin-top:16px;font-size:13px;color:var(--muted)}.auth-switch button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px}
