@font-face{font-family:"Figtree";font-weight:400;font-display:swap;src:url(/static/fonts/figtree-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-weight:500;font-display:swap;src:url(/static/fonts/figtree-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-weight:600;font-display:swap;src:url(/static/fonts/figtree-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:600;font-display:swap;src:url(/static/fonts/bricolage-grotesque-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-display:swap;src:url(/static/fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2")}
:root{
  --bg:#fff;--bg-soft:#F6F7F9;--line:#DDE1EA;--line-soft:#EBEEF4;
  --text:#141A2B;--muted:#5A6276;--muted-2:#9AA1B4;
  --primary:#141A2B;--primary-hover:#232B42;
  --saffron:#D99A12;--lapis:#2440A8;--lapis-soft:#E6EBFA;
  --accent:#A8740A;--accent-bg:#FBF3DF;
  --ok:#15803d;--ok-bg:#dcfce7;--err:#b91c1c;--err-bg:#fee2e2;--warn:#8a6300;--warn-bg:#FBF3DF;--info:var(--lapis);--info-bg:var(--lapis-soft);
  --radius:10px;--sidebar:250px;
  --font:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-display:"Bricolage Grotesque",var(--font);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px}
h2{font-family:var(--font-display);font-size:18px;font-weight:600;margin:0}
h3{font-size:15px;font-weight:600;margin:0}
p{margin:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.xs{font-size:12px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}

/* Layout */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:4px 4px 16px}
.brand .logo{width:36px;height:36px;flex:0 0 36px}
.brand .logo svg{width:36px;height:36px;display:block}
.brand b{display:block;font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.01em}
.brand b em{font-style:normal;color:var(--saffron)}
.brand span{display:block;font-size:12px;color:var(--muted)}
.nav-section{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 10px 6px;font-weight:600}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;text-decoration:none;color:#374151;font-size:14.5px}
.nav a svg{width:17px;height:17px;color:var(--muted-2)}
.nav a:hover{background:var(--bg-soft)}
.nav a.active{background:var(--accent-bg);color:var(--accent);font-weight:500;box-shadow:inset 3px 0 0 var(--saffron)}
.nav a.active svg{color:var(--saffron)}
.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;font-size:12.5px;color:var(--muted)}
.sidebar-foot button{background:none;border:0;padding:0;color:var(--text);text-decoration:underline;cursor:pointer;font:inherit;font-size:12.5px}
.main{flex:1;min-width:0;padding:38px 48px 60px}
.container{max-width:1100px;margin:0 auto}
.container.narrow{max-width:780px}
.container.wide{max-width:1180px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}
.page-head .sub{color:var(--muted);margin-top:2px}
.eyebrow{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:4px}
.eyebrow::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--saffron);margin-right:7px;vertical-align:1px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:8px;padding:9px 14px;font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;line-height:1.2}
.btn:hover{background:var(--bg-soft)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-hover)}
.btn.sm{padding:6px 10px;font-size:13px}
.btn.xs{padding:4px 9px;font-size:12px}
.btn.danger{color:var(--err);border-color:var(--err-bg)}
.btn.danger:hover{background:var(--err-bg)}
.btn.link{border:0;background:none;padding:0;color:var(--err);text-decoration:underline;font-weight:400}
.btn.link.plain{color:var(--text)}
.btn:disabled{opacity:.5;cursor:default}
.btn.block{width:100%;justify-content:center}
.inline-form{display:inline}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.card+.card{margin-top:14px}
.card.soft{background:var(--bg-soft);border-color:var(--line-soft);box-shadow:none}
.card.tight{padding:14px 16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.kpi{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff}
.kpi .label{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.kpi .value{font-size:28px;font-weight:600;margin:6px 0 2px}
.kpi .value.blue{color:var(--lapis)}.kpi .value.green{color:var(--ok)}.kpi .value.red{color:var(--err)}
.kpi .hint{font-size:12.5px;color:var(--muted)}
.stat-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0}
.stat-tile{background:var(--bg-soft);border-radius:10px;padding:18px;text-align:center}
.stat-tile .v{font-size:26px;font-weight:600}
.stat-tile .l{font-size:12.5px;color:var(--muted)}

/* Chips / badges */
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;text-decoration:none;color:var(--text);background:#fff;cursor:pointer;font-family:inherit}
.chip:hover{background:var(--bg-soft)}
.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.chip .n{color:var(--muted)}.chip.active .n{color:#cbd5e1}
.badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:500;white-space:nowrap}
.badge.ok{background:var(--ok-bg);color:var(--ok)}
.badge.err{background:var(--err-bg);color:var(--err)}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.info{background:var(--info-bg);color:var(--info)}
.badge.grey{background:#f1f5f9;color:#475569}
.tag{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12.5px;background:#f1f5f9;color:#334155}
.tag.up{background:#dcfce7;color:#166534}.tag.down{background:#fee2e2;color:#991b1b}

/* Flash */
.flash{border-radius:10px;padding:11px 14px;margin-bottom:18px;font-size:14px;border:1px solid}
.flash.ok{background:var(--ok-bg);border-color:#bbf7d0;color:#14532d}
.flash.err{background:var(--err-bg);border-color:#fecaca;color:#7f1d1d}

/* Forms */
label.field,.field{display:block;margin-bottom:16px}
label.field>span,.label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}
.help{font-size:12.5px;color:var(--muted);margin-top:5px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=datetime-local],input[type=search],select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;font-size:14.5px;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lapis-soft);outline-offset:0;border-color:#8EA6FF}
textarea{min-height:110px;resize:vertical}
.radios{display:flex;gap:16px;flex-wrap:wrap}
.radios label{display:inline-flex;align-items:center;gap:6px;font-size:14.5px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check{display:flex;align-items:center;gap:10px;font-size:14.5px;margin-bottom:12px}
.check input{width:18px;height:18px}
.ai-box{background:var(--bg-soft);border:1px solid var(--line-soft);border-radius:10px;padding:16px;margin:14px 0 18px}
.ai-box .title{font-weight:500;margin-bottom:10px;font-size:14.5px}
.actions{display:flex;gap:10px;margin-top:20px}
fieldset{border:1px solid var(--line);border-radius:10px;padding:14px 18px 6px;margin:0 0 18px}
legend{font-weight:600;padding:0 6px;font-size:14px}

/* Table */
.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{background:var(--bg-soft);text-align:left;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:12px 14px;font-weight:600}
.tbl td{padding:14px;border-top:1px solid var(--line-soft);vertical-align:middle}
.tbl .thumb{width:48px;height:48px;border-radius:6px;object-fit:cover;background:#eee;display:block}
.tbl .caption{max-width:380px;color:#1f2937}
.tbl .acts{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.tbl .acts form{margin:0}

/* Archive grid */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:16px}
.media-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;position:relative}
.media-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f1f5f9}
.media-card .body{padding:10px 12px 12px}
.media-card .desc{font-size:13px;color:#1f2937;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:56px}
.media-card .meta{font-size:12px;color:var(--muted);margin-top:6px;display:flex;justify-content:space-between;align-items:center}
.media-card .src{position:absolute;top:8px;right:8px;background:rgba(17,24,39,.8);color:#fff;font-size:11px;border-radius:5px;padding:2px 6px}
.media-card .sel{position:absolute;top:8px;left:8px;width:18px;height:18px;accent-color:var(--primary)}
.media-card .links{display:flex;justify-content:space-between;margin-top:8px;font-size:13px}
.media-card .links a,.media-card .links button{background:none;border:0;padding:0;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;color:var(--text)}
.media-card .links .del{color:var(--err)}
.media-card.picked{outline:3px solid var(--accent)}
.picked-strip{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.picked-strip .pm{position:relative}
.picked-strip img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.picked-strip button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:0;background:var(--primary);color:#fff;font-size:12px;cursor:pointer;line-height:1}

/* Inbox */
.comment{border-top:1px solid var(--line-soft);padding:12px 0}
.comment:first-child{border-top:0}
.comment .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.comment .head b{color:#374151;font-weight:500}
.comment .reason{font-size:12.5px;color:var(--muted);margin-top:4px}
.comment .text{margin-top:4px;font-size:14.5px}
.comment .reply{margin-top:4px;font-size:14.5px;color:#166534}
.comment .tools{margin-top:8px;display:flex;gap:8px;align-items:center}
.comment .tools input{flex:1;padding:6px 10px;font-size:13.5px}

/* Insights */
.recs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.rec{background:var(--accent-bg);border:1px solid #F0DDA8;border-radius:10px;padding:12px 14px}
.rec b{display:block;font-size:14.5px;margin-bottom:3px;font-weight:500}
.rec p{font-size:13px;color:#6B4E07}
.bars{display:flex;align-items:flex-end;gap:3px;height:120px;margin-top:10px}
.bars .bar{flex:1;background:var(--lapis);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.bars .bar:hover::after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#111;color:#fff;font-size:11px;padding:3px 6px;border-radius:4px;white-space:nowrap;margin-bottom:4px}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}
.top-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.top-posts a{text-decoration:none}
.top-posts img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:#f1f5f9}
.top-posts .cap{font-size:12px;color:var(--muted);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.factors{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
details summary{cursor:pointer;color:var(--text);text-decoration:underline;font-size:14px;margin-top:14px}
.factor-table td{padding:5px 10px;font-size:13.5px;border-top:1px solid var(--line-soft)}

/* Calendar */
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cal .dow{background:var(--bg-soft);padding:8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;text-align:center;border-bottom:1px solid var(--line)}
.cal .day{min-height:120px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:6px;background:#fff}
.cal .day.other{background:#fafafa;color:var(--muted-2)}
.cal .day.today .dn{background:var(--saffron);color:#141A2B;font-weight:600}
.cal .dn{display:inline-block;font-size:12.5px;width:24px;height:24px;line-height:24px;text-align:center;border-radius:50%;margin-bottom:4px}
.cal .ev{display:flex;gap:6px;align-items:center;font-size:12px;padding:3px 6px;border-radius:6px;margin-bottom:3px;text-decoration:none;color:#1f2937;background:#f1f5f9}
.cal .ev.published{background:var(--ok-bg)}.cal .ev.scheduled{background:var(--info-bg)}.cal .ev.failed{background:var(--err-bg)}.cal .ev.draft{background:#f1f5f9;color:var(--muted)}
.cal .ev img{width:18px;height:18px;border-radius:3px;object-fit:cover}
.cal .ev span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--bg-soft)}
.login-card{width:380px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;box-shadow:0 10px 40px rgba(20,26,43,.08)}
.login-wrap{background:radial-gradient(1200px 600px at 20% -10%,var(--lapis-soft),transparent 60%),var(--bg-soft)}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;place-items:center;z-index:50}
.modal.open{display:grid}
.modal .box{background:#fff;border-radius:14px;width:min(960px,94vw);max-height:88vh;overflow:auto;padding:22px}
.modal .box .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.empty{padding:40px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
.news-item{border-top:1px solid var(--line-soft);padding:12px 0}
.news-item:first-child{border-top:0}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid #cbd5e1;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:900px){.sidebar{display:none}.main{padding:20px 16px}.grid-2,.recs,.charts{grid-template-columns:1fr}.stat-tiles{grid-template-columns:1fr}}

.picked-strip .vid{position:absolute;left:4px;bottom:4px;background:rgba(15,23,42,.8);color:#fff;font-size:10px;border-radius:4px;padding:1px 5px}
