/* ===== 白糖糕 · 财经选题工作台（Octopus "Monolith" 大理石配色）===== */
:root{
  --paper:#f5f0e8;        /* 暖米大理石底 */
  --panel:#f8f4ed;        /* 卡片底（最浅） */
  --ink:#2c2417;          /* 主文字（暖墨） */
  --ink-2:#433b2c;
  --ink-soft:#6b5e4c;     /* 次文字 */
  --muted:#9a8d7a;        /* 弱文字 */
  --line:#d4cbb8;         /* 边框 */
  --line-2:#e6dfce;       /* 浅边框 */
  --gold:#3d3426;         /* 主强调＝浓咖 */
  --gold-2:#8b7355;       /* 次强调＝暖棕 */
  --gold-soft:#ece7dc;    /* 浅底块 */
  --brass:#c4a96a;        /* 黄铜高光 */
  --side:#e6e2dd;         /* 侧栏＝浅大理石 */
  --side-2:#dcd6cd;
  --side-line:#d7d1cb;
  --side-text:#5b5550;    /* 侧栏文字 */
  --side-strong:#433e39;
  --up:#8b3a2a;           /* 涨＝赤陶红 */
  --down:#4a6b3a;         /* 跌＝橄榄绿 */
  --radius:14px;
  --shadow:0 1px 2px rgba(60,48,32,.05), 0 8px 24px rgba(60,48,32,.10);
  --serif:"Noto Serif SC",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;cursor:pointer}
input,textarea{font-family:inherit}
::selection{background:var(--gold-soft)}

/* ===== App 布局 ===== */
.app{display:flex;min-height:100vh}

/* ===== 侧边栏（浅大理石）===== */
.sidebar{
  width:248px;flex:0 0 248px;
  background:linear-gradient(180deg,#ece7dc,#e3ddd0);
  color:var(--side-text);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;
  border-right:1px solid var(--side-line);
}
.side-brand{
  display:flex;align-items:center;gap:12px;
  padding:22px 20px;border-bottom:1px solid var(--side-line);
}
.brand-mark{
  width:42px;height:42px;flex:0 0 42px;border-radius:11px;
  background:linear-gradient(145deg,var(--gold-2),var(--gold));
  color:#f5f0e8;font-family:var(--serif);font-weight:900;font-size:22px;
  display:grid;place-items:center;
  box-shadow:0 4px 12px rgba(61,52,38,.3);
}
.side-brand .brand-text{display:flex;flex-direction:column;line-height:1.3}
.side-brand b{color:var(--side-strong);font-size:17px;font-family:var(--serif)}
.side-brand small{color:var(--muted);font-size:12px;letter-spacing:.5px}

.side-nav{padding:14px 12px;display:flex;flex-direction:column;gap:4px;flex:1}
.nav-item{
  display:flex;align-items:center;gap:12px;
  width:100%;padding:11px 13px;border:0;border-radius:10px;
  background:transparent;color:var(--side-text);font-size:14.5px;font-weight:600;
  text-align:left;transition:background .15s,color .15s;
}
.nav-item:hover{background:#dcd6cd;color:var(--side-strong)}
.nav-item.active{background:var(--gold);color:#f5f0e8;box-shadow:0 4px 12px rgba(61,52,38,.28)}
.nav-item.active .ni-ico{background:rgba(245,240,232,.95);color:var(--gold);border-color:transparent}
.ni-ico{
  width:28px;height:28px;flex:0 0 28px;border-radius:8px;
  display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:14px;
  background:#f8f4ed;color:var(--gold-2);border:1px solid var(--side-line);
}
.ni-count{
  margin-left:auto;font-size:12px;color:var(--ink-soft);
  background:#f3eee4;border-radius:20px;padding:1px 9px;min-width:24px;text-align:center;
}
.nav-item.active .ni-count{color:#f5f0e8;background:rgba(245,240,232,.25)}

.side-foot{padding:16px;border-top:1px solid var(--side-line)}
.side-fav{
  display:flex;align-items:center;justify-content:space-between;
  background:#f8f4ed;border:1px solid var(--side-line);border-radius:10px;padding:10px 14px;margin-bottom:10px;
}
.side-fav span{font-size:13px;color:var(--ink-soft)}
.side-fav b{color:var(--gold-2);font-size:18px;font-family:var(--serif)}
.side-note{font-size:11.5px;color:var(--muted);text-align:center}

/* ===== 主区域 ===== */
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:18px;
  padding:16px 28px;background:var(--panel);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20;
}
.menu-btn{display:none;font-size:24px;background:none;border:0;color:var(--ink);line-height:1}
.top-title{display:flex;flex-direction:column;line-height:1.25}
.top-title h1{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--ink)}
.top-date{font-size:12.5px;color:var(--muted)}
.top-search{margin-left:auto;flex:0 1 340px}
.top-search input{
  width:100%;padding:10px 16px;border:1px solid var(--line);border-radius:24px;
  background:var(--paper);font-size:14px;color:var(--ink);outline:none;transition:border .15s,box-shadow .15s;
}
.top-search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(61,52,38,.14);background:#fffdf9}

/* 按钮 */
.btn{
  border:1px solid transparent;border-radius:10px;padding:10px 18px;
  font-size:14px;font-weight:700;transition:transform .12s,box-shadow .15s,background .15s;white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#f5f0e8;box-shadow:0 4px 14px rgba(61,52,38,.28)}
.btn-primary:hover{box-shadow:0 6px 18px rgba(61,52,38,.4)}
.btn-small{padding:7px 13px;font-size:13px;border-color:var(--line);background:#f8f4ed;color:var(--ink)}
.btn-small:hover{border-color:var(--gold);color:var(--gold)}
.btn-small.btn-primary{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#f5f0e8;border-color:transparent;box-shadow:0 3px 10px rgba(61,52,38,.25)}
.btn-danger{color:var(--up)}
.btn-danger:hover{border-color:var(--up);background:#f3e7e2}

/* ===== 面板 ===== */
.panels{padding:24px 28px 48px;flex:1}
.panel{display:none;animation:fade .25s ease}
.panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:22px;box-shadow:var(--shadow)}
.block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.block-head h2{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--ink)}
.link-more{background:none;border:0;color:var(--gold);font-size:13.5px;font-weight:700}
.link-more:hover{text-decoration:underline}

/* ===== 双语：英文 sub 样式 ===== */
.sub-en{font-size:12.5px;color:var(--muted);line-height:1.55;font-weight:400;letter-spacing:.1px}
.news-body .sub-en{margin-bottom:7px}
.title-en{margin:-4px 0 10px;font-size:13px;font-style:italic}
.tc-hook .sub-en{margin-top:5px;color:var(--gold-2)}
.tc-field .sub-en{margin-top:3px}
.mat-card .sub-en{margin-top:8px}

/* ===== 来源标注 ===== */
.tc-src{font-size:12px;color:var(--muted);margin:2px 0 0;line-height:1.5}
.tc-src b{color:var(--ink-soft);font-weight:700}
.mat-src{font-size:11.5px;color:var(--muted);margin-top:10px}
a.news-src{text-decoration:none;transition:color .15s}
a.news-src:hover{color:var(--gold);text-decoration:underline}

/* ===== 今日概览 ===== */
.dash-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}
.dash-main .block:last-child{margin-bottom:0}
.dash-side .block:last-child{margin-bottom:0}

/* 资讯列表 */
.news-list{display:flex;flex-direction:column}
.news-item{
  display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line);cursor:default;
}
.news-item:first-child{padding-top:0}
.news-item:last-child{border-bottom:0;padding-bottom:0}
.news-time{flex:0 0 50px;font-size:12px;color:var(--muted);padding-top:2px}
.news-body{flex:1;min-width:0}
.news-body h3{font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:4px;line-height:1.45}
.news-body p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
.news-tags{margin-top:7px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.cat-pill{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:6px}
.cat-macro{background:#ece4d4;color:#6e5a3a}
.cat-market{background:#f1e1d9;color:#9c4a36}
.cat-money{background:#e7ecdd;color:#4a6b3a}
.cat-hot{background:#f3e8cf;color:#917420}
.news-src{font-size:11.5px;color:var(--muted)}
.mini-btn{font-size:12px;font-weight:700;color:var(--gold);background:var(--gold-soft);border:0;border-radius:6px;padding:3px 10px;margin-left:auto}
.mini-btn:hover{background:#e3dccb}
.news-item.clickable{cursor:pointer;border-radius:10px;transition:background .12s}
.news-item.clickable:hover{background:var(--gold-soft)}
.news-item.clickable:hover h3{color:var(--gold)}
.news-readmore{font-size:11.5px;font-weight:700;color:var(--gold-2)}

/* 文章详情（左原文 / 右生成）*/
.article-view{max-width:1180px;margin:0 auto}
.article-back{margin-bottom:16px}
.article-2col{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start}
.article-main{min-width:0}
.article-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}
.article-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:13px}
.article-src{font-size:12.5px;color:var(--ink-soft);font-weight:500}
.article-time{font-size:12.5px;color:var(--muted)}
.article-title{font-family:var(--serif);font-size:24px;font-weight:900;color:var(--ink);line-height:1.45;margin-bottom:16px}
.article-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.article-srclink{text-decoration:none}
.article-body{font-size:15.5px;line-height:2;color:var(--ink)}
.article-body p{margin-bottom:15px}
.article-body p:last-child{margin-bottom:0}
.article-empty{color:var(--muted)}

/* 右栏：提炼 + 脚本草稿 */
.article-gen{position:sticky;top:16px;display:flex;flex-direction:column;gap:16px}
.gen-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;box-shadow:var(--shadow)}
.gen-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;gap:10px}
.gen-head h3{font-family:var(--serif);font-size:15.5px;font-weight:700;color:var(--ink)}
.gen-head .mini-btn{margin-left:0}
.gen-meta{font-size:11.5px;color:var(--muted);white-space:nowrap}
.gen-points{list-style:none;display:flex;flex-direction:column;gap:9px}
.gen-points li{position:relative;padding-left:16px;font-size:13px;line-height:1.65;color:var(--ink-soft)}
.gen-points li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:2px;background:var(--brass)}
.gen-empty{color:var(--muted);padding-left:0}
.gen-empty::before{display:none}
.gen-script{width:100%;min-height:230px;border:1px solid var(--line);border-radius:10px;padding:12px 13px;font-size:13.5px;line-height:1.8;color:var(--ink);background:var(--paper);resize:vertical;outline:none;white-space:pre-wrap;font-family:var(--sans)}
.gen-script:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(61,52,38,.13);background:#fffdf9}
.gen-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.gen-note{font-size:11px;color:var(--muted);line-height:1.5;margin-top:10px}

@media(max-width:900px){
  .article-2col{grid-template-columns:1fr}
  .article-gen{position:static}
}

.news-list.big .news-item{padding:18px 0}
.news-list.big .news-body h3{font-size:16.5px}
.news-list.big .news-body p{font-size:14px}

/* 行情速览 */
.market-list{display:flex;flex-direction:column;gap:2px}
.market-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line-2)}
.market-row:last-child{border-bottom:0}
.market-name{font-size:13.5px;color:var(--ink);font-weight:500;display:flex;flex-direction:column;line-height:1.25}
.market-name small{font-size:10.5px;color:var(--muted);font-weight:400}
.market-val{display:flex;align-items:baseline;gap:9px}
.market-val b{font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums}
.market-val i{font-size:12.5px;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.up{color:var(--up)} .down{color:var(--down)}
.tiny-note{font-size:11.5px;color:var(--muted);margin-top:10px}

/* 热点雷达 */
.hot-list{list-style:none;counter-reset:hot}
.hot-list li{counter-increment:hot;display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.hot-list li:last-child{border-bottom:0}
.hot-list li::before{
  content:counter(hot);flex:0 0 22px;height:22px;border-radius:6px;display:grid;place-items:center;
  font-size:12px;font-weight:700;background:var(--gold-soft);color:var(--muted);
}
.hot-list li:nth-child(-n+3)::before{background:var(--brass);color:#2c2417}
.hot-list .hot-t{display:flex;flex-direction:column;line-height:1.25}
.hot-list .hot-t small{font-size:10.5px;color:var(--muted);font-weight:400}
.hot-heat{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}

/* ===== 工具栏 / 标签 ===== */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.toolbar-hint{font-size:13.5px;color:var(--ink-soft)}
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{
  border:1px solid var(--line);background:#f8f4ed;color:var(--ink-soft);
  padding:7px 16px;border-radius:22px;font-size:13.5px;font-weight:500;transition:all .15s;
}
.tab:hover{border-color:var(--gold);color:var(--gold)}
.tab.active{background:var(--gold);color:#f5f0e8;border-color:var(--gold)}
.result-count{font-size:13px;color:var(--muted)}

/* ===== 选题卡片 ===== */
.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}
.topic-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.topic-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.topic-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(60,48,32,.16);border-color:var(--border-dark,#b8ad97)}
.tc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tc-fav{background:none;border:0;font-size:19px;color:var(--line);line-height:1;transition:color .15s,transform .15s}
.tc-fav:hover{transform:scale(1.15)}
.tc-fav.on{color:var(--brass)}
.topic-card h3{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--ink);margin-bottom:10px;line-height:1.45}
.tc-field{font-size:13.5px;margin-bottom:8px;color:var(--ink-soft);line-height:1.55}
.tc-field b{color:var(--ink);font-weight:700}
.tc-hook{background:var(--gold-soft);border-radius:9px;padding:9px 12px;font-size:13.5px;color:#5a4a33;margin:4px 0 12px;line-height:1.5}
.tc-hook b{color:var(--gold)}
.tc-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line-2)}
.tc-meta{font-size:12px;color:var(--muted)}
.tc-gen{margin-left:auto}

/* ===== 素材卡片 ===== */
.material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.mat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.mat-card h3{font-size:15px;font-weight:700;color:var(--gold);margin-bottom:9px;display:flex;align-items:center;gap:8px}
.mat-card h3::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--brass)}
.mat-card p{font-size:14px;color:var(--ink);line-height:1.7;flex:1}
.mat-card .mini-btn{margin-top:14px;margin-left:0;align-self:flex-start}

/* ===== 脚本工作区 ===== */
.script-layout{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start}
.script-list-col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.script-list-col .block-head{margin-bottom:14px}
.script-list-col h2{font-size:16px}
.draft-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}
.draft-item{
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;transition:all .15s;background:#f8f4ed;
}
.draft-item:hover{border-color:var(--gold)}
.draft-item.active{border-color:var(--gold);background:var(--gold-soft)}
.draft-item b{display:block;font-size:14px;color:var(--ink);font-weight:700;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draft-item span{font-size:12px;color:var(--muted)}
.draft-empty{font-size:13px;color:var(--muted);text-align:center;padding:24px 8px}

.script-edit-col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.script-edit-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}
#scriptTitle{flex:1;border:0;border-bottom:2px solid var(--line);font-size:18px;font-weight:700;font-family:var(--serif);color:var(--ink);padding:6px 2px;outline:none;transition:border .15s}
#scriptTitle:focus{border-color:var(--gold)}
.script-actions{display:flex;gap:8px}
#scriptBody{
  width:100%;min-height:48vh;border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;font-size:14.5px;line-height:1.9;color:var(--ink);resize:vertical;outline:none;
  background:var(--paper);transition:border .15s,box-shadow .15s;white-space:pre-wrap;
}
#scriptBody:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(61,52,38,.13);background:#fffdf9}
.script-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12.5px;color:var(--muted)}
.save-hint{color:var(--down);font-weight:700}

/* ===== Toast ===== */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#f5f0e8;padding:11px 22px;border-radius:24px;font-size:14px;font-weight:500;
  box-shadow:0 8px 28px rgba(44,36,23,.4);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== 响应式 ===== */
/* 侧栏遮罩：默认隐藏，仅手机端抽屉打开时显示 */
.nav-backdrop{display:none}

@media (max-width:1080px){
  .dash-grid{grid-template-columns:1fr}
  .script-layout{grid-template-columns:1fr}
  .draft-list{max-height:none;flex-direction:row;flex-wrap:wrap}
  .draft-item{flex:1 1 160px}
}
@media (max-width:760px){
  .sidebar{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:transform .25s;overflow-y:auto}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 40px rgba(44,36,23,.35)}
  .sidebar.open ~ .nav-backdrop{display:block;position:fixed;inset:0;z-index:40;background:rgba(44,36,23,.42);animation:fade .2s ease}
  .menu-btn{display:block;flex:0 0 auto}
  .top-search{display:none}
  .panels{padding:18px 16px 40px}
  .topbar{padding:12px 14px;gap:12px}
  .top-title{min-width:0}
  .top-title h1{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-date{font-size:11.5px}
  #newScriptBtn{padding:9px 13px;font-size:13px}
  .topic-grid,.material-grid,.topic-row{grid-template-columns:1fr}
  .article-view{padding:0}
  .article-title{font-size:20px}
  .article-body{font-size:15px;line-height:1.9}
  .block{padding:16px 16px}
  .block-head h2{font-size:16.5px}
}
@media (max-width:430px){
  body{font-size:14.5px}
  .topbar{gap:10px}
  #newScriptBtn{padding:8px 11px;font-size:12.5px}
  .filter-tabs{gap:6px}
  .tab{padding:6px 13px;font-size:13px}
  .news-time{flex:0 0 42px}
  .gen-actions .btn{flex:1 1 auto}
}
