/* Hub 知识库 — styles from portal/mockup.html */
:root {
    --bg:#f9f7f4; --bg-card:#fff; --bg-secondary:#f2efeb;
    --border:#e5e2de; --text:#2d2d2d; --text-secondary:#666; --text-muted:#999;
    --accent:#c47b2e; --accent-light:#f5ead8;
    --green:#2e7d32; --green-bg:#e8f5e9;
    --blue:#1565c0; --blue-bg:#e3f2fd;
    --purple:#7b1fa2; --purple-bg:#f3e5f5;
    --orange:#e65100; --orange-bg:#fff3e0;
    --red:#c62828; --red-bg:#fce4ec;
    --radius:8px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{height:100%;overflow:hidden;}
  body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;display:flex;flex-direction:column;}

  .topbar{display:flex;background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0;align-items:stretch;}
  .tab{padding:12px 20px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;}
  .tab:hover{color:var(--text-secondary);}
  .tab.active{color:var(--accent);border-bottom-color:var(--accent);}
  .tab-spacer{flex:1;}
  .tab-right{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-muted);}
  .lang-toggle{padding:3px 10px;border-radius:12px;font-size:11px;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text-secondary);}

  .panel{flex:1;display:none;overflow:hidden;}
  .panel.visible{display:flex;}
  .sidebar{width:210px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:16px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;}
  .sidebar-section{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:18px 0 8px;display:flex;align-items:center;justify-content:space-between;}
  .sidebar-section:first-child{margin-top:0;}
  .sidebar-add{width:16px;height:16px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .sidebar-add:hover{background:var(--bg-card);color:var(--accent);border-color:var(--accent);}
  .sidebar-item{padding:6px 10px;border-radius:6px;font-size:13px;color:var(--text-secondary);margin-bottom:2px;cursor:pointer;display:flex;align-items:center;gap:8px;}
  .sidebar-item:hover{background:rgba(0,0,0,.04);}
  .sidebar-item.active{background:var(--accent);color:white;}
  .sidebar-icon{width:16px;text-align:center;font-size:12px;opacity:.6;flex-shrink:0;}
  .sidebar-count{margin-left:auto;opacity:.5;font-size:11px;}
  .sidebar-bottom{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);}
  .sidebar-divider{height:1px;background:var(--border);margin:8px 0;}
  .sidebar-hint{color:var(--text-muted);font-style:italic;font-size:11px;padding-left:34px;padding-top:2px;padding-bottom:4px;cursor:pointer;}
  .sidebar-hint:hover{color:var(--accent);}

  /* Feed */
  .feed{flex:1;display:flex;flex-direction:column;overflow:hidden;}
  .feed-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0;gap:12px;}
  .feed-title{font-size:15px;font-weight:600;}
  .feed-filters{display:flex;gap:6px;}
  .pill{padding:4px 12px;border-radius:14px;font-size:12px;border:1px solid var(--border);background:transparent;cursor:pointer;}
  .pill.active{background:var(--bg-secondary);border-color:transparent;font-weight:500;}
  .search-box{padding:6px 14px;border-radius:14px;border:1px solid var(--border);font-size:12px;width:200px;background:var(--bg-secondary);outline:none;}
  .search-box:focus{border-color:var(--accent);}
  .feed-list{flex:1;overflow-y:auto;}
  .feed-item{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .15s;}
  .feed-item:hover{background:var(--bg-secondary);}
  .feed-item.selected{background:var(--accent-light);}
  .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
  .dot.unread{background:var(--accent);}
  .dot.read{border:1px solid var(--border);}
  .item-body{flex:1;min-width:0;}
  .item-title{font-size:13px;font-weight:500;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .item-meta{font-size:11px;color:var(--text-muted);}
  .badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:500;margin-right:4px;}
  .b-rss{background:#fff3e0;color:#e65100;}.b-wechat{background:#e8f5e9;color:#2e7d32;}
  .b-wallabag{background:#e3f2fd;color:#1565c0;}.b-github{background:#f3e5f5;color:#7b1fa2;}
  .b-x{background:#e0e0e0;color:#333;}.b-scraper{background:#fce4ec;color:#c62828;}.b-memo{background:#fff8e1;color:#ff8f00;}
  .score{padding:2px 8px;border-radius:10px;font-size:11px;flex-shrink:0;font-weight:500;}

  .preview{width:320px;background:var(--bg-secondary);border-left:1px solid var(--border);padding:20px;flex-shrink:0;overflow-y:auto;}
  .preview-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px;}
  .preview-title{font-size:16px;font-weight:600;margin-bottom:10px;line-height:1.4;}
  .preview-text{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:16px;}
  .preview-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;}
  .tag{padding:3px 10px;border-radius:10px;background:var(--bg);font-size:11px;color:var(--text-secondary);}
  .preview-actions{display:flex;gap:8px;margin-bottom:16px;}
  .btn{flex:1;padding:8px;border-radius:6px;font-size:12px;border:none;cursor:pointer;font-weight:500;text-align:center;transition:opacity .15s;}
  .btn:hover{opacity:.85;}
  .btn-primary{background:var(--accent);color:white;}
  .btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary);}
  .btn-sm{flex:none;padding:6px 14px;font-size:12px;}
  .btn-green{background:var(--green);color:white;}
  .btn-danger{background:transparent;border:1px solid var(--red);color:var(--red);}
  .preview-meta{padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted);line-height:2;}

  /* Stats bar */
  .stats-bar{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-card);}
  .stat-card{flex:1;padding:14px 20px;border-right:1px solid var(--border);text-align:center;}
  .stat-card:last-child{border-right:none;}
  .stat-value{font-size:22px;font-weight:700;color:var(--text);}
  .stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:2px;}
  .stat-value.accent{color:var(--accent);}
  .stat-value.green{color:var(--green);}
  .stat-value.blue{color:var(--blue);}

  /* Studio main area */
  .studio-main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
  .studio-views{display:flex;gap:6px;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;}
  .view-pill{padding:5px 14px;border-radius:6px;font-size:12px;cursor:pointer;color:var(--text-muted);font-weight:500;}
  .view-pill:hover{background:rgba(0,0,0,.04);}
  .view-pill.active{background:var(--accent);color:white;}

  /* Kanban */
  .kanban{display:flex;gap:14px;flex:1;padding:20px;overflow-x:auto;overflow-y:hidden;}
  .k-col{width:240px;min-width:240px;display:flex;flex-direction:column;flex-shrink:0;}
  .k-col-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
  .k-count{background:var(--bg-secondary);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500;}
  .k-col-body{background:var(--bg-secondary);border-radius:var(--radius);padding:8px;flex:1;overflow-y:auto;}
  .k-card{background:white;border-radius:6px;padding:12px;margin-bottom:8px;border:1px solid var(--border);cursor:pointer;transition:box-shadow .15s;}
  .k-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06);}
  .k-card:last-child{margin-bottom:0;}
  .k-card-title{font-size:13px;font-weight:500;margin-bottom:4px;}
  .k-card-meta{font-size:11px;color:var(--text-muted);}
  .k-card.writing{border-color:var(--accent);}
  .k-card.ready{border-color:var(--green);}
  .progress-bar{height:3px;border-radius:2px;background:var(--border);margin-top:8px;overflow:hidden;}
  .progress-fill{height:100%;border-radius:2px;background:var(--accent);animation:pulse 2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{width:55%}50%{width:75%}}
  .status-writing{font-size:11px;color:var(--accent);margin-top:4px;display:flex;align-items:center;gap:4px;}
  .status-writing::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1.5s ease-in-out infinite;}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
  .status-ready{font-size:11px;color:var(--green);}
  .platform-pills{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap;}
  .pp{font-size:9px;padding:1px 6px;border-radius:3px;background:var(--bg-secondary);color:var(--text-muted);}
  .pp.done{background:var(--green-bg);color:var(--green);}
  .schedule-date{font-size:10px;color:var(--blue);margin-top:4px;font-weight:500;}
  .reuse-badge{font-size:9px;padding:1px 6px;border-radius:3px;background:var(--blue-bg);color:var(--blue);margin-left:auto;}
  .cat{font-size:9px;padding:1px 6px;border-radius:3px;display:inline-block;margin-bottom:4px;}
  .cat-news{background:#fce4ec;color:#c62828;}
  .cat-practice{background:var(--blue-bg);color:var(--blue);}
  .cat-usecase{background:var(--green-bg);color:var(--green);}
  .cat-pitfall{background:var(--orange-bg);color:var(--orange);}
  .cat-tool{background:var(--purple-bg);color:var(--purple);}
  .cat-trend{background:var(--accent-light);color:var(--accent);}
  .cat-deep{background:#e0e0e0;color:#555;}

  /* List view */
  .list-view{flex:1;overflow-y:auto;display:none;}
  .list-view.visible{display:block;}
  .list-row{display:flex;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);gap:12px;cursor:pointer;transition:background .15s;}
  .list-row:hover{background:var(--bg-secondary);}
  .list-status{width:80px;flex-shrink:0;}
  .list-status-pill{font-size:10px;padding:2px 8px;border-radius:10px;display:inline-block;}
  .ls-candidate{background:var(--bg-secondary);color:var(--text-muted);}
  .ls-writing{background:var(--accent-light);color:var(--accent);}
  .ls-ready{background:var(--green-bg);color:var(--green);}
  .ls-published{background:var(--blue-bg);color:var(--blue);}
  .list-title{flex:1;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .list-platforms{display:flex;gap:3px;width:120px;flex-shrink:0;}
  .list-date{font-size:11px;color:var(--text-muted);width:90px;flex-shrink:0;text-align:right;}
  .list-account{font-size:11px;color:var(--text-muted);width:80px;flex-shrink:0;}

  /* Schedule view */
  .schedule-view{flex:1;overflow-y:auto;display:none;padding:20px;}
  .schedule-view.visible{display:block;}
  .sched-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px;}
  .sched-day{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:120px;}
  .sched-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
  .sched-day-header{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:8px;display:flex;justify-content:space-between;}
  .sched-day-num{font-size:13px;font-weight:600;color:var(--text);}
  .sched-day.today .sched-day-num{color:var(--accent);}
  .sched-item{font-size:11px;padding:4px 8px;background:var(--green-bg);color:var(--green);border-radius:4px;margin-bottom:4px;cursor:pointer;}
  .sched-item:hover{opacity:.8;}
  .sched-item.pending{background:var(--accent-light);color:var(--accent);}

  /* Article detail */
  .article-detail{display:none;flex:1;flex-direction:column;overflow:hidden;}
  .article-detail.visible{display:flex;}
  .detail-toolbar{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0;}
  .detail-back{cursor:pointer;font-size:13px;color:var(--accent);font-weight:500;}
  .detail-status{font-size:11px;padding:3px 10px;border-radius:10px;}
  .detail-body{flex:1;display:flex;overflow:hidden;}
  .detail-editor{flex:1;padding:24px 32px;overflow-y:auto;}
  .detail-editor h1{font-size:20px;font-weight:600;margin-bottom:4px;}
  .detail-editor p{font-size:14px;color:var(--text-secondary);line-height:1.8;margin-bottom:12px;}
  .editable-title{font-size:20px;font-weight:600;border:none;background:transparent;width:100%;outline:none;padding:4px 0;border-bottom:2px solid transparent;color:var(--text);}
  .editable-title:focus{border-bottom-color:var(--accent);}
  .editor-content{width:100%;min-height:300px;border:1px solid var(--border);border-radius:var(--radius);padding:16px;font-size:14px;line-height:1.8;color:var(--text-secondary);outline:none;resize:none;font-family:inherit;background:var(--bg-card);}
  .editor-content:focus{border-color:var(--accent);}
  .detail-sidebar{width:300px;border-left:1px solid var(--border);padding:20px;overflow-y:auto;background:var(--bg-secondary);}
  .detail-section{margin-bottom:20px;}
  .detail-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;}
  .template-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:8px;cursor:pointer;}
  .template-preview:hover{border-color:var(--accent);}
  .template-preview.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
  .template-name{font-size:12px;font-weight:500;}
  .template-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}
  .platform-check{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;}
  .platform-check input{accent-color:var(--accent);}
  .platform-note{font-size:10px;color:var(--text-muted);margin-left:22px;}
  .account-select{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--bg-card);outline:none;color:var(--text);}
  .account-select:focus{border-color:var(--accent);}
  .img-preview{height:80px;background:var(--bg);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;margin-bottom:6px;overflow:hidden;position:relative;}
  .img-preview.has-img{background:linear-gradient(135deg,var(--accent-light),var(--purple-bg));border-style:solid;}
  .img-regen{font-size:11px;color:var(--accent);cursor:pointer;display:flex;align-items:center;gap:4px;}
  .img-regen:hover{text-decoration:underline;}
  .topic-origin{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:10px;font-size:12px;}
  .topic-origin-title{font-weight:500;margin-bottom:2px;}
  .topic-origin-meta{font-size:11px;color:var(--text-muted);}
  .outputs-list{margin-top:8px;}
  .output-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:11px;}
  .output-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}

  /* Write Now modal */
  .modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:100;align-items:center;justify-content:center;}
  .modal-overlay.visible{display:flex;}
  .modal{background:var(--bg-card);border-radius:12px;padding:24px;width:480px;max-width:90vw;box-shadow:0 8px 32px rgba(0,0,0,.15);}
  .modal h2{font-size:16px;font-weight:600;margin-bottom:16px;}
  .modal-field{margin-bottom:16px;}
  .modal-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;}
  .modal-row{display:flex;gap:8px;align-items:center;}
  .radio-card{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:center;transition:all .15s;}
  .radio-card:hover{border-color:var(--accent);}
  .radio-card.selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px var(--accent);}
  .radio-card-name{font-size:12px;font-weight:500;}
  .radio-card-hint{font-size:10px;color:var(--text-muted);margin-top:2px;}
  .modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;}
  .lang-auto{font-size:10px;color:var(--green);margin-top:4px;font-style:italic;}

  /* Cherry Markdown editor mockup */
  .cherry-editor{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex:1;display:flex;flex-direction:column;}
  .cherry-toolbar{display:flex;gap:2px;padding:6px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;}
  .cherry-btn{width:28px;height:28px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;}
  .cherry-btn:hover{background:rgba(0,0,0,.06);}
  .cherry-sep{width:1px;height:20px;background:var(--border);margin:0 4px;}
  .cherry-body{flex:1;display:flex;overflow:hidden;}
  .cherry-write{flex:1;padding:16px;font-family:'SF Mono',Monaco,Consolas,monospace;font-size:13px;line-height:1.8;color:var(--text);overflow-y:auto;white-space:pre-wrap;border:none;outline:none;resize:none;background:var(--bg-card);}
  .cherry-divider{width:1px;background:var(--border);}
  .cherry-preview{flex:1;padding:16px 20px;overflow-y:auto;font-size:14px;line-height:1.8;color:var(--text);}
  .cherry-preview h2{font-size:18px;font-weight:600;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);}
  .cherry-preview p{margin-bottom:10px;color:var(--text-secondary);}
  .cherry-preview strong{color:var(--text);}
  .cherry-preview ul{margin:8px 0 8px 20px;color:var(--text-secondary);}
  .cherry-preview li{margin-bottom:4px;}
  .cherry-mode-tabs{display:flex;gap:0;margin-left:auto;}
  .cherry-mode{padding:4px 10px;font-size:11px;cursor:pointer;color:var(--text-muted);border-radius:4px;}
  .cherry-mode.active{background:var(--accent);color:white;}

  /* AI Digest banner */
  .digest-banner{padding:10px 20px;background:linear-gradient(135deg,var(--accent-light),#f0e6f6);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;cursor:pointer;}
  .digest-banner:hover{opacity:.9;}
  .digest-icon{font-size:16px;}
  .digest-text{font-size:12px;color:var(--text-secondary);flex:1;}
  .digest-text strong{color:var(--text);}
  .digest-btn{padding:4px 12px;border-radius:6px;background:var(--accent);color:white;border:none;font-size:11px;font-weight:500;cursor:pointer;}

  /* Library grid */
  .lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px;flex:1;overflow-y:auto;align-content:start;}
  .lib-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:box-shadow .15s;}
  .lib-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06);}
  .lib-type{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:10px;}
  .t-tool{background:var(--purple-bg);color:var(--purple);}
  .t-skill{background:var(--blue-bg);color:var(--blue);}
  .t-link{background:var(--orange-bg);color:var(--orange);}
  .t-prompt{background:var(--accent-light);color:var(--accent);}
  .lib-title{font-size:14px;font-weight:600;margin-bottom:6px;}
  .lib-desc{font-size:12px;color:var(--text-secondary);line-height:1.6;margin-bottom:12px;}
  .lib-footer{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--border);}
  .lib-tags{display:flex;gap:6px;flex-wrap:wrap;}
  .lib-usage{font-size:11px;color:var(--text-muted);white-space:nowrap;}

  /* Write potential indicator */
  .write-potential{display:flex;align-items:center;gap:3px;font-size:10px;flex-shrink:0;margin-left:4px;}
  .wp-bar{display:flex;gap:1px;}
  .wp-dot{width:4px;height:12px;border-radius:1px;background:var(--border);}
  .wp-dot.filled{background:var(--accent);}
  .wp-dot.high{background:var(--green);}

  /* Stale topic */
  .stale-indicator{font-size:9px;padding:1px 6px;border-radius:3px;background:var(--orange-bg);color:var(--orange);}

  /* Batch action bar */
  .batch-bar{padding:8px 20px;background:var(--accent-light);border-bottom:1px solid var(--accent);display:flex;align-items:center;gap:12px;flex-shrink:0;}

  /* Runway alert */
  .runway-alert{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--orange-bg);border-radius:6px;font-size:11px;color:var(--orange);}

  /* Template version badge */
  .version-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--bg-secondary);color:var(--text-muted);margin-left:4px;}

  /* Title suggestions */
  .title-suggestions{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:12px;margin:8px 20px 0;display:none;}
  .title-suggestions.visible{display:block;}
  .title-sug-header{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
  .title-option{padding:8px 10px;border-radius:6px;font-size:13px;cursor:pointer;margin-bottom:4px;border:1px solid transparent;display:flex;align-items:center;gap:8px;transition:all .15s;}
  .title-option:hover{background:var(--bg-card);border-color:var(--border);}
  .title-option.selected{background:var(--accent-light);border-color:var(--accent);}
  .title-angle{font-size:9px;padding:1px 6px;border-radius:3px;background:var(--bg-card);color:var(--text-muted);flex-shrink:0;}

  /* Cmd+K search overlay */
  .cmdk-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:200;align-items:flex-start;justify-content:center;padding-top:15vh;}
  .cmdk-overlay.visible{display:flex;}
  .cmdk{background:var(--bg-card);border-radius:12px;width:560px;max-width:90vw;box-shadow:0 16px 64px rgba(0,0,0,.2);overflow:hidden;}
  .cmdk-input-wrap{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
  .cmdk-input{flex:1;border:none;outline:none;font-size:15px;background:transparent;color:var(--text);}
  .cmdk-hint{font-size:10px;color:var(--text-muted);padding:2px 6px;border:1px solid var(--border);border-radius:4px;}
  .cmdk-results{max-height:360px;overflow-y:auto;padding:8px;}
  .cmdk-group{padding:4px 0;}
  .cmdk-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:4px 12px 6px;}
  .cmdk-item{padding:8px 12px;border-radius:6px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .1s;}
  .cmdk-item:hover{background:var(--bg-secondary);}
  .cmdk-item-icon{width:20px;text-align:center;font-size:12px;color:var(--text-muted);flex-shrink:0;}
  .cmdk-item-text{flex:1;min-width:0;}
  .cmdk-item-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .cmdk-item-meta{font-size:11px;color:var(--text-muted);}
  .cmdk-item-type{font-size:9px;padding:1px 6px;border-radius:3px;background:var(--bg-secondary);color:var(--text-muted);flex-shrink:0;}

  /* Blogger view */
  .blogger-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:20px;flex:1;overflow-y:auto;align-content:start;}
  .blogger-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:box-shadow .15s;}
  .blogger-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06);}
  .blogger-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
  .blogger-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:var(--text-muted);flex-shrink:0;}
  .blogger-name{font-size:14px;font-weight:600;}
  .blogger-handle{font-size:12px;color:var(--text-muted);}
  .blogger-bio{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-bottom:10px;}
  .blogger-stats{display:flex;gap:12px;font-size:11px;color:var(--text-muted);margin-bottom:10px;}
  .blogger-stat-val{font-weight:600;color:var(--text);}
  .blogger-score{display:flex;align-items:center;gap:4px;}
  .score-bar{display:flex;gap:2px;}
  .score-seg{width:8px;height:14px;border-radius:2px;background:var(--border);}
  .score-seg.filled{background:var(--accent);}
  .score-seg.high{background:var(--green);}
  .blogger-stage{font-size:10px;padding:2px 8px;border-radius:10px;}
  .stage-discovered{background:var(--bg-secondary);color:var(--text-muted);}
  .stage-follow{background:var(--green-bg);color:var(--green);}

  /* X post in feed — rich card */
  .x-post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:8px 20px;}
  .x-post-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
  .x-post-avatar{width:28px;height:28px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-muted);}
  .x-post-content{font-size:13px;color:var(--text);line-height:1.6;margin-bottom:10px;}
  .x-post-media{background:var(--bg-secondary);border-radius:6px;height:120px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;font-size:12px;color:var(--text-muted);}
  .x-post-actions{display:flex;gap:6px;flex-wrap:wrap;}
  .x-action{font-size:10px;padding:4px 10px;border-radius:4px;border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:var(--bg-card);transition:all .15s;}
  .x-action:hover{border-color:var(--accent);color:var(--accent);}
  .x-action.primary{background:var(--accent);color:white;border-color:var(--accent);}

  /* Dark mode */
  body.dark{--bg:#1a1a1a;--bg-card:#242424;--bg-secondary:#2a2a2a;--border:#3a3a3a;--text:#e8e4df;--text-secondary:#aaa;--text-muted:#777;--accent-light:#3d2a14;}
  body.dark .session-banner.warn{background:#3d2a14;color:var(--accent);}
  body.dark input,body.dark textarea,body.dark select{background:var(--bg-secondary);color:var(--text);border-color:var(--border);}
  body.dark .cherry-write{background:var(--bg-card);color:var(--text);}
  body.dark .k-card,body.dark .lib-card,body.dark .blogger-card{background:var(--bg-card);}
  body.dark .toggle{background:var(--border);}

  /* Empty states */
  .empty-state{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px;}
  .empty-icon{font-size:48px;margin-bottom:16px;}
  .empty-title{font-size:16px;font-weight:600;margin-bottom:6px;}
  .empty-desc{font-size:13px;color:var(--text-secondary);margin-bottom:20px;max-width:320px;line-height:1.6;}

  /* Digest output card */
  .digest-card{margin:12px 20px;background:linear-gradient(135deg,var(--accent-light),#f0e6f6);border:1px solid var(--border);border-radius:var(--radius);padding:16px;flex-shrink:0;}
  .digest-card h3{font-size:14px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
  .digest-theme{padding:6px 10px;background:var(--bg-card);border-radius:6px;margin-bottom:6px;font-size:12px;display:flex;align-items:center;gap:8px;}
  .digest-theme:last-child{margin-bottom:0;}
  .digest-rec{font-size:11px;color:var(--accent);font-weight:500;margin-left:auto;cursor:pointer;}

  /* Phone preview frame */
  .phone-frame{width:280px;height:500px;border:2px solid var(--border);border-radius:24px;overflow:hidden;background:white;flex-shrink:0;display:flex;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.08);}
  .phone-notch{height:28px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;}
  .phone-notch::after{content:'';width:60px;height:4px;border-radius:2px;background:var(--border);}
  .phone-content{flex:1;overflow-y:auto;padding:12px 16px;font-size:12px;line-height:1.8;}
  .phone-content h1{font-size:16px;font-weight:700;margin-bottom:8px;line-height:1.3;}
  .phone-content p{margin-bottom:8px;color:#333;}
  .phone-content h2{font-size:14px;font-weight:600;margin:12px 0 6px;color:#333;}
  .phone-content ul{margin:4px 0 8px 16px;}
  .phone-content li{margin-bottom:2px;color:#555;}
  .phone-bar{height:32px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;gap:20px;font-size:10px;color:var(--text-muted);}

  /* Auto-save indicator */
  .autosave{font-size:11px;display:flex;align-items:center;gap:4px;}
  .autosave.saved{color:var(--green);}
  .autosave.saving{color:var(--accent);}

  /* Version history panel */
  .version-item{padding:8px 0;border-bottom:1px solid var(--border);font-size:12px;cursor:pointer;}
  .version-item:hover{color:var(--accent);}
  .version-item:last-child{border-bottom:none;}
  .version-current{color:var(--green);font-weight:500;}
  .version-meta{font-size:10px;color:var(--text-muted);margin-top:2px;}

  /* Bulk action bar */
  .bulk-bar{padding:8px 20px;background:var(--accent-light);border-bottom:1px solid var(--accent);display:none;align-items:center;gap:12px;flex-shrink:0;font-size:12px;}
  .bulk-bar.visible{display:flex;}

  /* Session warning banner */
  .session-banner{padding:8px 20px;display:flex;align-items:center;gap:10px;flex-shrink:0;font-size:12px;}
  .session-banner.ok{background:var(--green-bg);color:var(--green);}
  .session-banner.warn{background:var(--orange-bg);color:var(--orange);}
  .session-banner.expired{background:var(--red-bg);color:var(--red);}
  .session-banner .btn-sm{font-size:11px;padding:3px 10px;}

  /* Settings page */
  .settings-body{flex:1;overflow-y:auto;padding:24px 32px;max-width:720px;}
  .settings-section{margin-bottom:32px;}
  .settings-section-title{font-size:14px;font-weight:600;margin-bottom:4px;}
  .settings-section-desc{font-size:12px;color:var(--text-muted);margin-bottom:16px;}
  .settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);}
  .settings-row:last-child{border-bottom:none;}
  .settings-label{font-size:13px;font-weight:500;}
  .settings-hint{font-size:11px;color:var(--text-muted);margin-top:2px;}
  .settings-control{display:flex;align-items:center;gap:8px;}
  .toggle{width:36px;height:20px;border-radius:10px;background:var(--border);position:relative;cursor:pointer;transition:background .2s;}
  .toggle.on{background:var(--green);}
  .toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:white;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
  .toggle.on::after{transform:translateX(16px);}
  .settings-select{padding:5px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--bg-card);outline:none;}
  .settings-input{padding:5px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--bg-card);outline:none;width:200px;}

  /* QR login card */
  .qr-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;width:240px;}
  .qr-placeholder{width:160px;height:160px;margin:12px auto;background:var(--bg-secondary);border:2px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:40px;}
  .qr-status{font-size:12px;margin-top:8px;}
