:root{
    --bg:#0f1117;
    --panel:#171a22;
    --panel2:#1d2130;
    --line:#2d3345;
    --text:#eef2ff;
    --muted:#9aa4bb;
    --accent:#7c9cff;
    --accent2:#9b7cff;
    --danger:#ff6b7a;
    --ok:#57d19b;
    --warn:#f6c85f;
    --shadow:0 18px 50px rgba(0,0,0,.28);
    --radius:14px;
  }
  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;
    color:var(--text);
    background:
      radial-gradient(circle at 20% 0%, rgba(124,156,255,.12), transparent 28%),
      radial-gradient(circle at 90% 5%, rgba(155,124,255,.10), transparent 25%),
      var(--bg);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  }
  button,input,textarea,select{font:inherit}
  button{cursor:pointer}
  .app{height:100%;display:grid;grid-template-rows:auto auto 1fr}
  .topbar{
    display:flex;gap:10px;align-items:center;flex-wrap:wrap;
    padding:12px 14px;border-bottom:1px solid var(--line);
    background:rgba(15,17,23,.88);backdrop-filter:blur(12px);position:relative;z-index:5
  }
  .brand{
    display:inline-flex;align-items:center;gap:8px;
    font-weight:800;letter-spacing:.2px;margin-right:4px
  }
  .brand-emblem{
    width:30px;height:30px;border-radius:50%;
    display:grid;place-items:center;position:relative;flex:0 0 auto;
    border:1px solid rgba(153,173,214,.42);
    background:rgba(12,17,25,.72);
    box-shadow:0 0 20px rgba(105,137,201,.06)
  }
  .brand-emblem::after{
    content:"";position:absolute;inset:4px;border-radius:50%;
    border:1px dashed rgba(164,182,220,.17)
  }
  .brand-emblem span{
    position:relative;z-index:1;font-family:serif;font-size:15px;color:#e5ebfa;
    line-height:1
  }
  .topbar-action{
    height:38px;min-height:38px;
    display:inline-flex;align-items:center;justify-content:center;
    align-self:center;box-sizing:border-box;
    margin:0;padding:9px 11px;border-radius:10px;
    font:inherit;font-size:13px;line-height:18px;white-space:nowrap;
    vertical-align:middle
  }
  .topbar-import-btn{
    cursor:pointer;
    border:1px solid var(--line);background:var(--panel);color:var(--text);
    transition:.15s ease;
  }
  .topbar-import-btn:hover{border-color:#4a5575;background:#202536}
  .topbar-import-btn input{display:none}
  .topbar > button.topbar-action,
  .topbar > label.topbar-action{
    height:38px;min-height:38px;margin-top:0;margin-bottom:0
  }
  .topbar button,.file-btn{
    border:1px solid var(--line);background:var(--panel);color:var(--text);
    padding:9px 11px;border-radius:10px;transition:.15s ease;
  }
  .topbar button:hover,.file-btn:hover{border-color:#4a5575;background:#202536}
  .topbar .primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent;color:#fff;font-weight:700}
  .topbar .danger{color:#ffb0b8}
  .file-btn{display:inline-flex;align-items:center}
  .file-btn input{display:none}
  .status{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap}
  .workspace{
    min-height:0;
    display:grid;
    grid-template-columns:300px minmax(560px,1fr) 300px;
    gap:0;
    position:relative;
  }
  .no-active-work-notice{
    position:absolute;inset:0;z-index:20;
    display:flex;align-items:center;justify-content:center;
    padding:28px;
    background:
      radial-gradient(circle at 50% 35%,rgba(124,156,255,.08),transparent 32%),
      rgba(12,15,21,.96);
    backdrop-filter:blur(5px)
  }
  .no-active-work-card{
    width:min(480px,100%);text-align:center;
    border:1px solid #364159;border-radius:18px;
    background:linear-gradient(180deg,#181e2a,#121720);
    padding:28px 24px;
    box-shadow:0 24px 70px rgba(0,0,0,.34)
  }
  .no-active-work-emblem{
    width:50px;height:50px;margin:0 auto 12px;border-radius:50%;
    display:grid;place-items:center;font-family:serif;font-size:21px;color:#e5ebfa;
    border:1px solid rgba(153,173,214,.42);
    background:rgba(12,17,25,.72);
    box-shadow:inset 0 0 0 5px rgba(164,182,220,.035)
  }
  .no-active-work-card h2{margin:0 0 9px;font-size:21px}
  .no-active-work-card p{margin:0 0 17px;color:var(--muted);font-size:13px;line-height:1.7}
  .no-active-work-card button{
    border:0;border-radius:10px;padding:10px 15px;color:#fff;font-weight:800;
    background:linear-gradient(135deg,var(--accent),var(--accent2))
  }
  .sidebar,.editor,.preview,.asset-sidebar{min-height:0;overflow:auto}
  .preview-page{padding:22px;overflow:auto;background:linear-gradient(180deg,rgba(13,17,24,.96),rgba(10,13,19,.98))}
  .preview-page-inner{max-width:1180px;margin:0 auto}
  .preview-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .preview-page-head h2{margin:0 0 5px;font-size:22px}
  .preview-page-head p{margin:0;color:var(--muted);font-size:12px}
  .preview-page-actions{display:flex;gap:8px;flex-wrap:wrap}
  .preview-page-actions button{border:1px solid var(--line);background:#1b2130;color:var(--text);padding:8px 10px;border-radius:9px}
  .preview-page .preview-shell{max-width:none}
  .preview-play-layout{
    display:grid;grid-template-columns:minmax(0,1fr) 260px;
    gap:16px;align-items:start
  }
  .preview-main-column{min-width:0}
  .preview-status-column{
    display:grid;gap:12px;position:sticky;top:12px;min-width:0
  }
  .preview-status-card{
    border:1px solid #303a50;border-radius:14px;
    background:linear-gradient(180deg,rgba(23,29,40,.98),rgba(17,22,31,.98));
    padding:12px;box-shadow:0 10px 28px rgba(0,0,0,.18)
  }
  .preview-status-title{
    font-size:13px;font-weight:800;margin-bottom:10px;color:#e8edff
  }
  .preview-status-column .game-stats{
    border:0;padding:0;background:transparent
  }
  .preview-status-column .inventory-items{
    display:flex;flex-wrap:wrap;gap:7px
  }
  @media (max-width:900px){
    .preview-play-layout{grid-template-columns:1fr}
    .preview-status-column{position:static;grid-template-columns:1fr 1fr}
  }
  @media (max-width:620px){
    .preview-status-column{grid-template-columns:1fr}
  }
  .sidebar{
    border-right:1px solid var(--line);background:rgba(17,20,27,.88);padding:12px;
    display:flex;flex-direction:column;gap:12px
  }
  .asset-sidebar{
    border-left:1px solid var(--line);
    background:rgba(17,20,27,.9);
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .asset-sidebar .sidebar-module{
    background:linear-gradient(180deg,rgba(29,34,46,.98),rgba(21,25,34,.96));
  }
  .asset-sidebar .scene-list,
  .asset-sidebar .item-list{
    max-height:none;
  }
  .project-info-editor{display:grid;gap:10px}
  .project-info-editor input,
  .project-info-editor textarea{
    width:100%;background:#111720;border:1px solid #38445d;color:#fff;
    border-radius:9px;padding:8px 9px;outline:none
  }
  .project-info-editor input:focus,
  .project-info-editor textarea:focus{
    border-color:#667dbb;box-shadow:0 0 0 2px rgba(102,125,187,.09)
  }
  .project-info-editor textarea{min-height:94px;resize:vertical;line-height:1.55}
  .sidebar-module{
    border:1px solid #30394d;
    background:linear-gradient(180deg,rgba(27,32,43,.96),rgba(20,24,33,.94));
    border-radius:13px;
    padding:11px;
    box-shadow:0 6px 18px rgba(0,0,0,.14),inset 0 1px rgba(255,255,255,.018);
  }
  .sidebar-module:hover{border-color:#3b4862}
  .sidebar-module .section-title{margin:0 0 9px}
  .sidebar-module .section-title h3{
    display:flex;align-items:center;gap:7px;font-size:13px;letter-spacing:.2px
  }
  .sidebar-module .section-title h3::before{
    content:"";width:3px;height:13px;border-radius:4px;background:#708bd6;opacity:.78
  }
  .sidebar-module-items .section-title h3::before{background:#8d7dd0}
  .sidebar-module-stats .section-title h3::before{background:#6d9cae}
  .sidebar-module-rules .section-title h3::before{background:#c49562}
  .sidebar-module-media .section-title h3::before{background:#7b8fae}
  .asset-sidebar .sidebar-module-project .section-title h3::before{background:#c49562}
  .asset-sidebar .sidebar-module-scenes .section-title h3::before{background:#718bd5}
  .asset-sidebar .sidebar-module-items .section-title h3::before{background:#8d7dd0}
  .sidebar-module .stat-panel,.sidebar-module .media-panel{
    border:0;background:transparent;padding:0;border-radius:0
  }
  .sidebar-module-rules .entry-rule-card{background:#121722}
  .sidebar-module-rules .entry-rule-grid,
  .sidebar-module-rules .rule-effect-items{grid-template-columns:1fr}
  .sidebar-module-rules .rule-row{grid-template-columns:1fr 72px 82px auto}
  .sidebar-module-rules .effect-row{grid-template-columns:1fr 82px auto}
  .rule-effect-items{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  .node-media-grid{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:12px;
    align-items:start;
  }
  .node-media-grid .media-subsection{
    height:100%;
    margin:0;
  }
  .node-media-grid .media-thumb{
    min-height:180px;
  }
  .visual-layout-settings{
    display:grid;gap:9px;margin-top:10px;padding:10px;
    border:1px solid #344057;border-radius:10px;background:#121823
  }
  .embedded-visual-settings{
    display:grid;gap:9px;padding-top:9px;border-top:1px solid rgba(90,105,135,.28)
  }
  .visual-setting-note{
    min-height:100%;display:flex;align-items:center;color:var(--muted);
    font-size:11px;line-height:1.55;padding:7px 9px;border:1px dashed #354159;border-radius:8px
  }
  .visual-layout-settings input{
    color:#fff!important;background:#111720!important;border-color:#38445d!important
  }
  .overlay-opacity-setting{
    display:grid;gap:6px;padding:9px;border:1px solid #344057;border-radius:9px;background:#101620
  }
  .overlay-opacity-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .overlay-opacity-head label{margin:0}
  .overlay-opacity-head output{font-size:12px;font-weight:800;color:#fff}
  .overlay-opacity-setting input[type="range"]{
    width:100%!important;padding:0!important;border:0!important;background:transparent!important;
    accent-color:#7c9cff
  }
  .game-visual-stage{
    position:relative;width:100%;height:clamp(360px,56vw,560px);
    overflow:hidden;border-radius:14px;background:#080a0f;margin:0 0 14px;
    border:1px solid #2f394e
  }
  .game-visual-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    display:block;user-select:none;pointer-events:none
  }
  .game-visual-stage::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(4,6,10,.05),rgba(4,6,10,.16))
  }
  .game-overlay-panel{
    position:absolute;z-index:2;overflow:auto;
    box-sizing:border-box;padding:15px 17px;
    color:#f4f6ff;background:rgba(8,11,17,.72);
    border:1px solid rgba(174,190,220,.26);
    border-radius:12px;backdrop-filter:blur(5px);
    box-shadow:0 10px 30px rgba(0,0,0,.28)
  }
  .game-overlay-panel .game-text{margin:0}
  .game-overlay-panel .choices{margin-top:14px}
  .game-overlay-panel .choice-btn{background:rgba(20,26,38,.86)}
  @media (max-width:720px){
    .game-visual-stage{height:420px}
  }
  .editor{padding:18px}
  .preview{border-left:1px solid var(--line);padding:16px;background:rgba(10,12,17,.34)}
  .section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 10px}
  .section-title h3{font-size:14px;margin:0}
  .section-title button{
    border:1px solid var(--line);background:var(--panel2);color:var(--text);
    border-radius:9px;padding:6px 9px
  }
  .scene-list,.item-list{display:flex;flex-direction:column;gap:7px}
  .scene-row,.item-row{
    width:100%;border:1px solid var(--line);background:var(--panel2);
    color:var(--text);border-radius:10px;padding:9px 10px;text-align:left;
    display:flex;gap:8px;align-items:center;justify-content:space-between
  }
  .scene-row:hover,.item-row:hover{border-color:#4d5978}
  .scene-row.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(124,156,255,.12)}
  .scene-row .title,.item-row .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .badge{font-size:10px;color:#d8e0ff;background:#323a58;border:1px solid #465176;padding:2px 6px;border-radius:999px;white-space:nowrap}
  .muted{color:var(--muted)}
  .small{font-size:12px}
  .divider{height:1px;background:var(--line);margin:16px 0}
  .card{
    background:rgba(23,26,34,.84);border:1px solid var(--line);border-radius:var(--radius);
    padding:14px;box-shadow:var(--shadow);margin-bottom:14px
  }
  /* 编辑器中间区域：功能分区高亮 */
  .editor{
    background:
      linear-gradient(180deg,rgba(18,22,30,.86),rgba(14,17,24,.92));
    padding:14px;
  }
  #editorBody{
    display:grid;
    gap:13px;
  }
  #editorBody > .card{
    position:relative;
    margin:0;
    border:1px solid #364159;
    background:
      linear-gradient(180deg,rgba(29,35,47,.97),rgba(21,26,36,.96));
    border-radius:14px;
    padding:14px;
    box-shadow:
      0 8px 22px rgba(0,0,0,.16),
      inset 0 1px rgba(255,255,255,.02);
    transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;
    overflow:visible;
  }
  #editorBody > .card:hover{
    border-color:#465775;
    box-shadow:
      0 10px 26px rgba(0,0,0,.2),
      inset 0 1px rgba(255,255,255,.026);
  }
  #editorBody > .card::before{
    content:"";
    position:absolute;
    left:-1px;
    top:12px;
    bottom:12px;
    width:3px;
    border-radius:0 4px 4px 0;
    background:#718bd5;
    opacity:.82;
  }
  #editorBody > .card:nth-child(2)::before{background:#8f7fd1}
  #editorBody > .card:nth-child(3)::before{background:#6f9ead}
  #editorBody > .card:nth-child(4)::before{background:#c39263}
  #editorBody > .card:nth-child(5)::before{background:#7b8ead}
  #editorBody > .card:nth-child(6)::before{background:#719382}
  #editorBody > .card:nth-child(7)::before{background:#a87a8d}
  #editorBody > .card h2,
  #editorBody > .card h3{
    color:#e3e9f8;
    letter-spacing:.15px;
  }
  #editorBody > .card > h3,
  #editorBody > .card .row > h2,
  #editorBody > .card .row h3{
    position:relative;
  }
  #editorBody > .card > h3{
    margin-bottom:11px;
    padding-bottom:8px;
    border-bottom:1px solid rgba(90,105,135,.28);
  }
  #editorBody > .card .hint{
    color:#9da9c1;
  }
  #editorBody > .card input,
  #editorBody > .card textarea,
  #editorBody > .card select{
    border-color:#38445d;
    background:#111720;
  }
  #editorBody > .card input:focus,
  #editorBody > .card textarea:focus,
  #editorBody > .card select:focus{
    border-color:#667dbb;
    box-shadow:0 0 0 2px rgba(102,125,187,.09);
    outline:none;
  }
  #editorBody > .card .multi-rule-box,
  #editorBody > .card .entry-rule-card{
    border-color:#303a50;
    background:#121823;
  }
  .rich-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:7px}
  .rich-reveal-control{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
  .rich-reveal-control label{font-size:11px;color:var(--muted);margin:0}
  .rich-reveal-control select{width:auto;min-width:178px;padding:7px 9px}
  .reveal-interval-control{display:flex;align-items:center;gap:5px}
  .reveal-interval-control input{
    width:82px!important;
    padding:7px 8px!important;
    text-align:right;
    color:#ffffff!important;
    background:#111720!important;
    border:1px solid #38445d!important;
    caret-color:#ffffff;
  }
  .reveal-interval-control input::-webkit-inner-spin-button,
  .reveal-interval-control input::-webkit-outer-spin-button{
    opacity:1;
  }
  .reveal-interval-control span{font-size:10px;color:var(--muted)}
  .rich-text-toolbar{
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;
    padding:8px;border:1px solid #354158;border-bottom:0;
    background:#151b27;border-radius:10px 10px 0 0
  }
  .rich-text-toolbar button{
    border:1px solid #3a4660;background:#1d2432;color:var(--text);
    border-radius:7px;padding:6px 9px;min-height:31px
  }
  .rich-text-toolbar button:hover{border-color:#657cb7;background:#242e42}
  .rich-text-toolbar button.format-painter-active{
    border-color:#7c9cff;
    background:linear-gradient(135deg,rgba(124,156,255,.28),rgba(155,124,255,.22));
    color:#fff;
    box-shadow:0 0 0 2px rgba(124,156,255,.10)
  }
  .rich-text-toolbar select{width:auto;min-width:105px;padding:6px 8px}
  .rich-tool-color{
    display:flex;align-items:center;gap:6px;border:1px solid #3a4660;background:#1d2432;
    border-radius:7px;padding:4px 7px;margin:0;color:#cbd4e7;font-size:11px
  }
  .rich-tool-color input{width:25px!important;height:22px!important;padding:0!important;border:0!important;background:transparent!important}
  .rich-text-editor{
    min-height:220px;max-height:520px;overflow:auto;
    padding:13px 14px;border:1px solid #38445d;border-radius:0 0 10px 10px;
    background:#111720;color:#e7eafd;line-height:1.75;outline:none;
    white-space:normal;word-break:break-word
  }
  .rich-text-editor:focus{border-color:#667dbb;box-shadow:0 0 0 2px rgba(102,125,187,.09)}
  .rich-text-editor:empty::before{content:attr(data-placeholder);color:#6f7b91;pointer-events:none}
  .rich-text-editor p,.rich-text-editor div{margin:.2em 0 .85em}
  .rich-text-editor br{line-height:1.75}
  .game-text{white-space:normal}
  .story-paragraph{white-space:pre-wrap;line-height:1.8;margin:0 0 .9em;animation:storyReveal .22s ease both}
  .story-paragraph:last-of-type{margin-bottom:0}
  .game-text.progressive{cursor:pointer;border-radius:9px;padding:4px 6px;margin-left:-6px;margin-right:-6px}
  .game-text.progressive:hover{background:rgba(124,156,255,.035)}
  .story-more-hint{font-size:11px;color:#8796b5;margin-top:10px;letter-spacing:.5px;user-select:none}
  .story-type-caret{
    display:inline-block;width:1px;height:1.05em;margin-left:2px;vertical-align:-.12em;
    background:currentColor;opacity:.72;animation:typeCaretBlink .8s steps(1,end) infinite
  }
  .game-text.typewriting{cursor:pointer}
  .game-text.manual-character{cursor:pointer}
  .story-manual-hint{font-size:11px;color:#8796b5;margin-top:10px;user-select:none}
  @keyframes typeCaretBlink{0%,48%{opacity:.75}49%,100%{opacity:0}}
  @keyframes storyReveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
  #editorBody > .card > .row:first-child{
    padding-bottom:9px;
    margin-bottom:10px;
    border-bottom:1px solid rgba(90,105,135,.25);
  }

  /* 中间栏顶部没有节点时也更清楚 */
  .editor > .empty{
    border:1px dashed #3a465f;
    border-radius:14px;
    background:rgba(20,25,35,.72);
    padding:28px;
  }

  .card h2,.card h3{margin:0 0 12px}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
  input[type=text],textarea,select{
    width:100%;background:#11141b;border:1px solid var(--line);color:var(--text);
    border-radius:10px;padding:10px 11px;outline:none
  }
  input[type=text]:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,156,255,.10)}
  textarea{min-height:165px;resize:vertical;line-height:1.62}
  select option{background:#11141b}
  .btn{
    border:1px solid var(--line);background:var(--panel2);color:var(--text);
    padding:8px 10px;border-radius:9px
  }
  .btn:hover{border-color:#536083}
  .btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent}
  .btn.danger{color:#ff9ca7}
  .btn.ok{color:#8de6bd}
  .row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .row.end{justify-content:flex-end}
  .image-box{
    border:1px dashed #3b455f;border-radius:12px;padding:10px;background:#11141b;
    min-height:100px;display:flex;align-items:center;justify-content:center;overflow:hidden
  }
  .image-box img{display:block;max-width:100%;max-height:260px;border-radius:8px}
  .image-placeholder{color:var(--muted);font-size:13px;text-align:center;padding:22px}
  .choice-card{border:1px solid var(--line);border-radius:12px;background:#131720;padding:12px;margin-top:10px}
  .choice-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
  .choice-num{font-weight:800;color:#dfe5ff}
  .choice-actions{display:flex;gap:6px}
  .choice-actions button{
    border:1px solid var(--line);background:#1e2331;color:var(--text);border-radius:8px;padding:5px 8px
  }
  .choice-jump-box{
    display:grid;gap:9px;margin-top:9px;padding:10px;
    border:1px solid #303a50;border-radius:10px;background:#111620
  }
  .choice-random-toggle{
    display:flex;align-items:center;gap:8px;margin:0;padding:7px 9px;
    border:1px solid #354159;border-radius:9px;background:#171d29;
    color:#e4e9f8;font-size:12px;font-weight:700;cursor:pointer
  }
  .choice-random-toggle input{width:auto;margin:0;accent-color:#7c9cff}
  .choice-random-targets{display:grid;gap:7px}
  .random-target-summary{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    font-size:11px;color:#aeb8ce
  }
  .random-target-list{
    max-height:190px;overflow-y:auto;overflow-x:hidden;
    border:1px solid #354159;border-radius:9px;background:#0d121a;
    scrollbar-width:thin
  }
  .random-target-row{
    display:flex;align-items:center;gap:8px;width:100%;margin:0;
    min-height:36px;padding:8px 9px;border-bottom:1px solid rgba(70,82,110,.35);
    color:#dce3f5;font-size:12px;cursor:pointer
  }
  .random-target-row:last-child{border-bottom:0}
  .random-target-row:hover{background:#171e2b}
  .random-target-row input{width:auto;flex:0 0 auto;margin:0;accent-color:#7c9cff}
  .random-target-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .random-target-tag{
    margin-left:auto;flex:0 0 auto;font-size:10px;color:#bfcaf0;
    border:1px solid #46547a;border-radius:999px;padding:2px 6px
  }
  .random-target-empty{
    padding:13px;text-align:center;color:var(--muted);font-size:11px
  }
  .logic{
    margin-top:10px;padding:10px;border-radius:10px;background:#0f1219;border:1px solid #293043
  }
  .logic-title{font-size:12px;font-weight:800;color:#cbd5f7;margin-bottom:8px}
  .logic-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .empty{padding:22px 12px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
  .preview-shell{
    max-width:760px;margin:0 auto;background:#0c0f15;border:1px solid var(--line);
    border-radius:18px;overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.35)
  }
  .preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#141821}
  .preview-toolbar strong{font-size:13px}
  .preview-toolbar button{border:1px solid var(--line);background:#1b2030;color:var(--text);padding:7px 9px;border-radius:9px}
  .game{padding:18px}
  .game-scene{animation:fade .18s ease}
  @keyframes fade{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
  .game h2{font-size:21px;margin:0 0 12px}
  .game-text{white-space:pre-wrap;line-height:1.75;color:#e7eafd;margin:12px 0 16px}
  .game-image{width:100%;max-height:350px;object-fit:contain;border-radius:12px;background:#080a0f;margin-bottom:13px}
  .choices{display:flex;flex-direction:column;gap:9px;margin-top:16px}
  .choice-btn{
    width:100%;text-align:left;border:1px solid #38425d;background:#171d2a;color:#f3f5ff;
    padding:11px 12px;border-radius:11px;transition:.14s ease
  }
  .choice-btn:hover{border-color:var(--accent);transform:translateY(-1px);background:#1c2435}
  .choice-btn:disabled{opacity:.46;cursor:not-allowed}
  .inventory{
    border-top:1px solid var(--line);padding:12px;background:#11151d
  }
  .inventory-title{font-size:12px;color:var(--muted);margin-bottom:8px}
  .inventory-items{display:flex;flex-wrap:wrap;gap:7px}
  .inventory-chip{
    font-size:12px;padding:5px 8px;border-radius:999px;
    background:#263047;border:1px solid #3e4c6e;color:#e8edff;
    transition:opacity .22s ease,transform .22s ease,box-shadow .22s ease
  }
  .inventory-chip.item-change-add{
    animation:itemGainHighlight .48s ease both;
    border-color:#7c9cff
  }
  .inventory-chip.item-change-remove{
    animation:itemRemoveHighlight .48s ease both;
    border-color:#d47b91
  }
  @keyframes itemGainHighlight{
    0%{opacity:.35;transform:scale(.94);box-shadow:0 0 0 rgba(124,156,255,0)}
    45%{opacity:1;transform:scale(1.08);box-shadow:0 0 18px rgba(124,156,255,.45)}
    100%{opacity:1;transform:scale(1);box-shadow:0 0 0 rgba(124,156,255,0)}
  }
  @keyframes itemRemoveHighlight{
    0%{opacity:1;transform:scale(1);box-shadow:0 0 0 rgba(212,123,145,0)}
    45%{opacity:1;transform:scale(1.08);box-shadow:0 0 18px rgba(212,123,145,.46)}
    100%{opacity:.5;transform:scale(.96);box-shadow:0 0 0 rgba(212,123,145,0)}
  }

  .site-nav{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 14px;
    border-bottom:1px solid var(--line);background:#121620;position:relative;z-index:4
  }
  .site-nav button{
    border:1px solid var(--line);background:#1a1f2b;color:var(--text);
    padding:8px 11px;border-radius:9px
  }
  .site-nav button.active{border-color:var(--accent);background:#263252}
  #navEditorBtn{
    opacity:.82;max-width:260px;display:inline-flex;align-items:center;gap:4px
  }
  #navEditorBtn #currentCreationLabel{
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
  #navEditorBtn.active{opacity:1}
  .save-work-group{
    display:inline-flex;align-items:center;gap:7px;
    padding:4px 6px;border:1px solid #2d3548;border-radius:10px;background:#10151e
  }
  .save-work-group #saveCompletedBtn{margin:0}
  .autosave-toggle,.autosave-interval{
    display:inline-flex;align-items:center;gap:5px;margin:0;color:#aeb8ce;font-size:11px;
    white-space:nowrap
  }
  .autosave-toggle input{accent-color:#7c9cff}
  .autosave-interval input{
    width:54px;background:#0d121a;border:1px solid #343d52;color:#fff;
    border-radius:7px;padding:5px 6px;text-align:right
  }
  .autosave-interval input:disabled{opacity:.45}
  .site-user{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
  .site-user strong{color:var(--text)}
  .portal-view{display:none;min-height:0;overflow:auto;padding:22px;background:rgba(10,12,17,.3)}
  .portal-view.active{display:block}
  .portal-inner{max-width:1180px;margin:0 auto}
  .portal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
  .portal-head h2{margin:0 0 6px;font-size:24px}
  .portal-head p{margin:0;color:var(--muted);line-height:1.6}
  .portal-actions{display:flex;gap:8px;flex-wrap:wrap}
  .portal-actions button,.work-card button,.community-card button{
    border:1px solid var(--line);background:#1b2130;color:var(--text);padding:8px 10px;border-radius:9px
  }
  .portal-actions .primary,.work-card .primary,.community-card .primary{
    background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent
  }
  .portal-search{display:flex;gap:8px;margin-bottom:14px}
  .portal-search input{max-width:420px}
  .works-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:13px}
  .work-card,.community-card{
    border:1px solid var(--line);background:#151a24;border-radius:14px;padding:14px;
    display:flex;flex-direction:column;gap:10px;min-width:0
  }
  .work-card h3,.community-card h3{margin:0;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .work-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:11px}
  .work-desc{font-size:12px;color:#c4cce0;line-height:1.55;min-height:38px}
  .work-actions{
    display:flex;gap:6px;flex-wrap:nowrap;align-items:stretch;margin-top:auto
  }
  .work-card .work-actions button,
  .community-card .work-actions button{
    flex:1 1 0;
    min-width:0;
    white-space:nowrap;
    padding:8px 6px;
    border-color:transparent;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff;
    font-size:12px;
    font-weight:700;
    line-height:1.2;
    text-align:center
  }
  .work-card .work-actions button:hover,
  .community-card .work-actions button:hover{
    border-color:transparent;
    filter:brightness(1.07)
  }
  .community-card .favorite-btn,
  .community-card .like-btn{
    flex:1 1 0
  }
  .community-card.favorite{
    border-color:#596a96;
    box-shadow:0 0 0 1px rgba(124,156,255,.08),0 10px 28px rgba(0,0,0,.16)
  }
  .community-card .favorite-btn.active{
    border-color:transparent;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff
  }
  .community-card .like-btn{
    min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:2px;
    font-size:12px;font-weight:700
  }
  .community-card .like-btn.active{
    border-color:transparent;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff
  }
  .community-card .like-count{
    display:inline-block;min-width:1.2em;text-align:right;
    font-variant-numeric:tabular-nums;transition:font-size .15s ease
  }
  .community-card .like-count.compact{font-size:10px}
  .community-card .like-count.tiny{font-size:9px;letter-spacing:-.35px}
  .favorite-badge{
    display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;
    border:1px solid #56688f;background:#26334e;color:#e8edff;font-size:10px
  }
  .work-badge{font-size:10px;border:1px solid #41506f;background:#242d42;color:#d9e2ff;padding:3px 7px;border-radius:999px}
  .work-badge.published{border-color:#35745d;background:#173b30;color:#a9eccf}
  .portal-empty{border:1px dashed var(--line);border-radius:14px;padding:34px;text-align:center;color:var(--muted)}
  .player-wrap{max-width:1180px;margin:0 auto}
  .player-frame-shell{
    border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0d1016;
    min-height:620px
  }
  .player-frame{
    width:100%;height:760px;border:0;display:block;background:#0d1016
  }
  .player-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;
    margin-bottom:14px
  }
  .player-head h2{margin:0 0 5px;font-size:22px}
  .player-head p{margin:0;color:var(--muted);font-size:12px}
  .player-actions{display:flex;gap:8px;flex-wrap:wrap}
  .player-actions button{
    border:1px solid var(--line);background:#1b2130;color:var(--text);padding:8px 10px;border-radius:9px
  }
  @media (max-width:720px){
    .player-frame{height:680px}
  }
  .auth-overlay{
    position:fixed;inset:0;z-index:100;background:
      radial-gradient(circle at 20% 0%,rgba(124,156,255,.16),transparent 30%),
      radial-gradient(circle at 90% 10%,rgba(155,124,255,.13),transparent 27%),#0d1016;
    display:flex;align-items:center;justify-content:center;padding:22px;overflow:auto
  }
  .auth-overlay.hidden{display:none}
  .auth-shell{width:min(460px,100%);border:1px solid var(--line);background:#151a24;border-radius:18px;padding:22px;box-shadow:0 28px 80px rgba(0,0,0,.42)}
  .auth-brand{font-size:21px;font-weight:900;margin-bottom:5px}
  .auth-sub{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:17px}
  .auth-screen{display:none}
  .auth-screen.active{display:block}
  .auth-screen h2{font-size:20px;margin:0 0 14px}
  .auth-field{margin-bottom:11px}
  .auth-field label{font-size:12px}
  .auth-field input{width:100%;background:#0f131b;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:11px}
  .auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
  .auth-code-row input{min-width:0}
  .auth-code-btn{
    height:42px;min-width:104px;border:1px solid #465273;background:#20283a;color:#eef2ff;
    border-radius:10px;padding:0 11px;font-size:12px;font-weight:700;white-space:nowrap
  }
  .auth-code-btn:hover{border-color:#62739f;background:#263149}
  .auth-code-btn:disabled{opacity:.55;cursor:not-allowed}
  .auth-code-hint{font-size:11px;color:var(--muted);line-height:1.5;margin-top:6px}
  .auth-code-hint.demo{color:#cdd7f3}
  @media (max-width:420px){
    .auth-code-row{grid-template-columns:1fr}
    .auth-code-btn{width:100%}
  }
  .auth-submit{width:100%;border:0;border-radius:10px;padding:11px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:800}
  .auth-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:13px}
  .auth-links button{border:0;background:transparent;color:#aebfff;padding:3px;cursor:pointer}
  .auth-message{min-height:20px;font-size:12px;margin:9px 0;color:#ffb7bf}
  .auth-message.ok{color:#8de6bd}
  .auth-note{font-size:11px;color:var(--muted);line-height:1.55;border-top:1px solid var(--line);margin-top:15px;padding-top:12px}
  .auth-overlay{overflow:hidden;padding:28px}
  .auth-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.78}
  .auth-stage{position:relative;z-index:2;width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,460px);gap:56px;align-items:center}
  .auth-showcase{padding:22px 10px;color:var(--text);animation:authRise .8s cubic-bezier(.2,.8,.2,1) both}
  .auth-showcase h1{font-size:clamp(34px,5vw,64px);line-height:1.08;letter-spacing:-1.5px;margin:10px 0 20px;max-width:650px}
  .auth-showcase p{max-width:610px;color:#c3ccdf;font-size:15px;line-height:1.8}
  .auth-kicker{font-size:11px;letter-spacing:4px;color:#95a9df;font-weight:800;margin-top:17px}
  .auth-feature-row{display:flex;gap:14px;flex-wrap:wrap;margin:23px 0;color:#aab7d7;font-size:12px}
  .auth-showcase blockquote{margin:28px 0 0;padding:16px 18px;border-left:2px solid rgba(124,156,255,.5);background:rgba(18,23,34,.45);color:#9eabc8;line-height:1.8;font-size:12px;max-width:590px}
  .auth-sigil{position:relative;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(151,168,213,.38);background:rgba(20,25,36,.64);box-shadow:inset 0 0 25px rgba(124,156,255,.08)}
  .auth-sigil span{font-family:serif;font-size:26px;color:#e7ecff;animation:sigilPulse 3.8s ease-in-out infinite}
  .auth-sigil i{position:absolute;inset:-7px;border:1px dashed rgba(151,168,213,.25);border-radius:50%;animation:sigilSpin 22s linear infinite}
  .auth-shell{position:relative;z-index:3;width:100%;background:rgba(21,26,36,.88);backdrop-filter:blur(16px);animation:authCardIn .7s .08s cubic-bezier(.2,.8,.2,1) both}
  .auth-shell::before{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;background:linear-gradient(135deg,rgba(124,156,255,.08),transparent 32%,rgba(155,124,255,.05))}
  .auth-screen,.auth-brand,.auth-sub,.auth-note{position:relative;z-index:1}
  .auth-field input{transition:border-color .18s,box-shadow .18s,transform .18s}
  .auth-field input:focus{border-color:#708bdd;box-shadow:0 0 0 3px rgba(124,156,255,.10);transform:translateY(-1px);outline:none}
  .auth-submit{position:relative;overflow:hidden;transition:transform .18s,filter .18s}
  .auth-submit:hover{transform:translateY(-1px);filter:brightness(1.07)}
  .auth-submit::after{content:"";position:absolute;top:-50%;left:-35%;width:28%;height:200%;transform:rotate(24deg);background:rgba(255,255,255,.16);animation:buttonShine 5s ease-in-out infinite}
  .auth-orb{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none;opacity:.2}
  .auth-orb-a{width:220px;height:220px;left:7%;top:12%;background:radial-gradient(circle,rgba(124,156,255,.7),transparent 68%);animation:orbFloatA 11s ease-in-out infinite}
  .auth-orb-b{width:280px;height:280px;right:5%;bottom:4%;background:radial-gradient(circle,rgba(155,124,255,.6),transparent 68%);animation:orbFloatB 13s ease-in-out infinite}
  @keyframes authRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes authCardIn{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}
  @keyframes sigilSpin{to{transform:rotate(360deg)}}
  @keyframes sigilPulse{0%,100%{opacity:.72;transform:scale(.96)}50%{opacity:1;transform:scale(1.05)}}
  @keyframes buttonShine{0%,68%{left:-35%}82%,100%{left:125%}}
  @keyframes orbFloatA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(35px,28px) scale(1.08)}}
  @keyframes orbFloatB{0%,100%{transform:translate(0,0)}50%{transform:translate(-36px,-24px)}}
  @media (max-width:880px){
    .auth-overlay{overflow:auto}
    .auth-stage{grid-template-columns:1fr;gap:18px;max-width:500px}
    .auth-showcase{padding:8px 4px}
    .auth-showcase h1{font-size:32px;margin:8px 0 12px}
    .auth-showcase p,.auth-showcase blockquote{display:none}
    .auth-sigil{width:52px;height:52px}
    .auth-feature-row{margin:12px 0 4px}
  }
  @media (prefers-reduced-motion:reduce){
    .auth-showcase,.auth-shell,.auth-sigil span,.auth-sigil i,.auth-submit::after,.auth-orb{animation:none!important}
  }

  /* 简洁登录页：风与水 */
  .auth-overlay{
    background:
      radial-gradient(circle at 48% 36%,rgba(100,128,185,.10),transparent 30%),
      linear-gradient(180deg,#0c1017 0%,#101721 62%,#0b151b 100%);
    padding:22px;
  }
  .auth-stage-simple{
    width:min(440px,100%);
    display:block;
    position:relative;
    z-index:5;
  }
  .auth-shell-simple{
    width:100%;
    padding:24px 25px 22px;
    background:rgba(18,23,32,.86);
    border:1px solid rgba(133,153,194,.26);
    box-shadow:0 24px 70px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.025);
    backdrop-filter:blur(14px);
  }
  .auth-shell-simple::before{
    background:linear-gradient(135deg,rgba(123,151,210,.055),transparent 38%,rgba(90,140,160,.035));
  }
  .auth-emblem{
    width:52px;height:52px;margin:0 auto 10px;border-radius:50%;
    display:grid;place-items:center;position:relative;
    border:1px solid rgba(153,173,214,.34);
    background:rgba(12,17,25,.58);
    box-shadow:0 0 35px rgba(105,137,201,.07);
    animation:authEmblemFloat 5s ease-in-out infinite;
  }
  .auth-emblem::after{
    content:"";position:absolute;inset:5px;border-radius:50%;
    border:1px dashed rgba(164,182,220,.13);
    animation:authEmblemTurn 24s linear infinite;
  }
  .auth-emblem span{font-family:serif;font-size:22px;color:#e5ebfa}
  .auth-brand{text-align:center;font-size:23px;letter-spacing:3px;margin:0 0 22px}
  .auth-screen h2{font-size:17px;text-align:center;font-weight:700;color:#cbd5e9;margin-bottom:15px}
  .auth-particles{opacity:.9}
  .auth-wind{
    position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;
  }
  .auth-wind i{
    position:absolute;left:-28%;height:1px;border-radius:999px;
    background:linear-gradient(90deg,transparent,rgba(188,207,238,.28),rgba(188,207,238,.05),transparent);
    filter:blur(.15px);
    animation:windDrift linear infinite;
  }
  .auth-wind i:nth-child(1){top:18%;width:250px;animation-duration:13s;animation-delay:-4s}
  .auth-wind i:nth-child(2){top:31%;width:330px;animation-duration:17s;animation-delay:-10s;opacity:.65}
  .auth-wind i:nth-child(3){top:48%;width:190px;animation-duration:11s;animation-delay:-7s;opacity:.5}
  .auth-wind i:nth-child(4){top:13%;width:150px;animation-duration:20s;animation-delay:-2s;opacity:.42}
  .auth-wind i:nth-child(5){top:57%;width:290px;animation-duration:15s;animation-delay:-12s;opacity:.38}
  .auth-water{
    position:absolute;left:-5%;right:-5%;bottom:-12px;height:34%;overflow:hidden;pointer-events:none;z-index:1;
    opacity:.48;
  }
  .auth-water::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,transparent,rgba(43,90,112,.08) 34%,rgba(24,74,94,.16));
  }
  .auth-water span{
    position:absolute;left:-20%;width:140%;height:46px;border-radius:50%;
    border-top:1px solid rgba(114,179,199,.18);
    animation:waterFlow 8s ease-in-out infinite alternate;
  }
  .auth-water span:nth-child(1){top:22%;animation-duration:8s}
  .auth-water span:nth-child(2){top:48%;opacity:.65;animation-duration:11s;animation-delay:-3s}
  .auth-water span:nth-child(3){top:70%;opacity:.42;animation-duration:14s;animation-delay:-7s}
  @keyframes windDrift{
    0%{transform:translateX(0) translateY(0) scaleX(.75);opacity:0}
    12%{opacity:.7}
    60%{transform:translateX(92vw) translateY(-14px) scaleX(1);opacity:.5}
    100%{transform:translateX(145vw) translateY(4px) scaleX(.85);opacity:0}
  }
  @keyframes waterFlow{
    from{transform:translateX(-3%) translateY(0) scaleY(.92)}
    to{transform:translateX(3%) translateY(-8px) scaleY(1.08)}
  }
  @keyframes authEmblemFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
  @keyframes authEmblemTurn{to{transform:rotate(360deg)}}
  @media (max-width:600px){
    .auth-shell-simple{padding:21px 18px}
    .auth-water{height:28%}
  }
  @media (prefers-reduced-motion:reduce){
    .auth-wind i,.auth-water span,.auth-emblem,.auth-emblem::after{animation:none!important}
  }
  .profile-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:14px;background:#151a24;margin-bottom:16px}
  .profile-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#29324a;font-weight:900;font-size:18px}
  @media (max-width:720px){
    .site-user{width:100%;margin-left:0;justify-content:space-between}
    .portal-view{padding:15px}
    .profile-card{grid-template-columns:1fr}
  }

  .account-modal{
    position:fixed;inset:0;z-index:120;
    display:flex;align-items:center;justify-content:center;padding:20px;
    background:rgba(5,8,13,.72);backdrop-filter:blur(8px)
  }
  .account-modal.hidden{display:none}
  .account-modal-card{
    width:min(430px,100%);border:1px solid #364158;background:#151b25;
    border-radius:16px;padding:18px;box-shadow:0 28px 80px rgba(0,0,0,.42)
  }
  .account-modal-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px
  }
  .account-modal-head h2{margin:0 0 4px;font-size:20px}
  .account-modal-head > button{
    border:1px solid #343e52;background:#1a2130;color:#dfe6f7;
    border-radius:8px;width:32px;height:32px;padding:0;font-size:20px
  }
  .account-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
  .account-modal-actions button{
    border:1px solid #364158;background:#1b2230;color:#eef2ff;
    border-radius:9px;padding:8px 12px
  }
  .account-modal-actions .primary{
    background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent
  }

  .toast{
    position:fixed;right:18px;bottom:18px;z-index:20;max-width:380px;
    background:#202638;border:1px solid #465273;color:#fff;border-radius:12px;
    padding:10px 12px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;
    transition:.2s ease
  }
  .toast.show{opacity:1;transform:none}
  .item-editor{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#11141b;margin-bottom:8px}
  .item-editor .row{justify-content:space-between}
  .stat-panel{display:grid;gap:9px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#11141b}
  .stat-switch{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px}
  .media-panel{display:grid;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#11141b}
  .media-subsection{border:1px solid var(--line);background:#0f131b;border-radius:10px;padding:9px}
  .media-subsection h4{margin:0 0 8px;font-size:12px;color:#dbe3ff}
  .media-file-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
  .media-file-name{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .audio-preview{width:100%;margin-top:8px}
  .audio-mode-row{display:grid;grid-template-columns:1fr;gap:7px;margin-top:8px}
  .audio-status{font-size:11px;color:var(--muted);line-height:1.45}
  .media-thumb{border:1px dashed #3b455f;border-radius:10px;padding:8px;background:#0d1118;min-height:86px;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .media-thumb img{display:block;max-width:100%;max-height:180px;border-radius:8px}
  .media-empty{font-size:12px;color:var(--muted);text-align:center;padding:18px}
  .stat-switch input{accent-color:var(--accent)}
  .stats-list{display:grid;gap:9px}
  .stat-editor{border:1px solid var(--line);border-radius:10px;background:#0f131b;padding:9px}
  .stat-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
  .stat-editor-title{font-size:12px;font-weight:800;color:#dbe3ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .stat-grid{display:grid;grid-template-columns:1.3fr .8fr .8fr .8fr;gap:8px}
  .stat-preview{padding:9px;border:1px solid var(--line);border-radius:10px;background:#10141d;margin-top:8px}
  .stat-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:7px}
  .stat-track{height:9px;border-radius:999px;background:#252c3b;overflow:hidden}
  .stat-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--accent2),var(--accent))}
  .game-stats{display:grid;gap:9px;border-bottom:1px solid var(--line);padding:10px 12px;background:#121722}
  .game-stat-row{min-width:0}
  .game-stat-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:6px}
  .game-stat-track{height:8px;background:#293044;border-radius:999px;overflow:hidden}
  .game-stat-fill{
    height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));
    transition:width .72s cubic-bezier(.22,.75,.25,1)
  }
  .game-stat-row.stat-change-up .game-stat-head strong{animation:statValueGain .72s ease}
  .game-stat-row.stat-change-down .game-stat-head strong{animation:statValueLoss .72s ease}
  @keyframes statValueGain{0%{transform:scale(1);text-shadow:none}45%{transform:scale(1.12);text-shadow:0 0 12px rgba(124,156,255,.55)}100%{transform:scale(1);text-shadow:none}}
  @keyframes statValueLoss{0%{transform:scale(1);opacity:1}45%{transform:scale(.94);opacity:.65}100%{transform:scale(1);opacity:1}}
  .choice-stat-effect{font-size:11px;color:#b8c4e8;margin-top:5px;display:block}
  .multi-rule-box{margin-top:10px;padding:10px;border-radius:10px;background:#0d1118;border:1px solid #273044}
  .multi-rule-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;color:#cbd5f7;margin-bottom:8px}
  .multi-rule-title button{border:1px solid var(--line);background:#1d2330;color:var(--text);border-radius:8px;padding:5px 8px}
  .rule-row{display:grid;grid-template-columns:minmax(120px,1fr) 90px minmax(90px,.7fr) auto;gap:7px;align-items:end;margin-top:7px}
  .effect-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(100px,.7fr) auto;gap:7px;align-items:end;margin-top:7px}
  .rule-row button,.effect-row button{border:1px solid var(--line);background:#1d2330;color:#ff9ca7;border-radius:8px;padding:9px 10px}
  .rule-empty{font-size:12px;color:var(--muted);padding:7px 0}
  .entry-rule-card{border:1px solid var(--line);border-radius:12px;background:#10141c;padding:10px;margin-top:9px}
  .entry-rule-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
  .entry-rule-head strong{font-size:12px}
  .entry-rule-actions{display:flex;gap:6px}
  .entry-rule-actions button{border:1px solid var(--line);background:#1d2330;color:var(--text);border-radius:8px;padding:5px 8px}
  .entry-rule-actions .danger{color:#ff9ca7}
  .entry-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .entry-target{margin-top:9px;padding-top:9px;border-top:1px solid #283044}
  .hint{font-size:12px;color:var(--muted);line-height:1.5}
  .pill{display:inline-block;font-size:11px;border:1px solid #3c4662;background:#202638;color:#cdd6f8;padding:3px 7px;border-radius:999px;margin-right:4px}

  .flow-overlay{
    position:fixed;inset:0;z-index:40;background:rgba(8,10,15,.96);
    display:none;grid-template-rows:auto 1fr;min-width:0
  }
  .flow-overlay.open{display:grid}
  .flow-topbar{
    display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 12px;
    border-bottom:1px solid var(--line);background:#121620
  }
  .flow-topbar strong{margin-right:4px}
  .flow-topbar button{
    border:1px solid var(--line);background:#1b2030;color:var(--text);
    border-radius:9px;padding:8px 10px
  }
  .flow-topbar button:hover{border-color:#526080}
  .flow-topbar button.active{border-color:var(--accent);background:#263252;color:#fff}
  .flow-topbar .flow-close{margin-left:auto}
  .flow-tip{font-size:12px;color:var(--muted);min-width:180px}
  .flow-viewport{
    position:relative;overflow:auto;min-width:0;min-height:0;
    background-color:#0b0e14;
    background-image:
      linear-gradient(rgba(110,125,160,.08) 1px,transparent 1px),
      linear-gradient(90deg,rgba(110,125,160,.08) 1px,transparent 1px),
      linear-gradient(rgba(110,125,160,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(110,125,160,.035) 1px,transparent 1px);
    background-size:100px 100px,100px 100px,20px 20px,20px 20px
  }
  .flow-stage{
    position:relative;width:2400px;height:1600px;transform-origin:0 0;
  }
  .flow-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
  .flow-edge{fill:none;stroke:#55617d;stroke-width:2.2}
  .flow-edge.special{stroke:#8e7bd8;stroke-dasharray:7 5}
  .flow-edge.entry-redirect{stroke:#d4a85f;stroke-dasharray:3 5;stroke-width:2.4}
  .flow-edge-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}
  .flow-edge-label{
    position:absolute;transform:translate(-50%,-50%);max-width:180px;
    padding:3px 7px;border-radius:999px;background:#151a24;border:1px solid #343d55;
    color:#bfc7dc;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    pointer-events:none
  }
  .flow-node{
    position:absolute;width:210px;min-height:94px;border:1px solid #3a435c;background:#171c27;
    color:var(--text);border-radius:13px;box-shadow:0 12px 30px rgba(0,0,0,.28);
    user-select:none;touch-action:none
  }
  .flow-node:hover{border-color:#596784}
  .flow-node.selected{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,156,255,.13),0 12px 30px rgba(0,0,0,.28)}
  .flow-node.connect-source{border-color:var(--warn);box-shadow:0 0 0 3px rgba(246,200,95,.12)}
  .flow-node-head{
    display:flex;align-items:center;gap:7px;padding:9px 10px;border-bottom:1px solid #2c3346;
    cursor:grab
  }
  .flow-node-head:active{cursor:grabbing}
  .flow-node-title{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .flow-node-body{padding:9px 10px;color:var(--muted);font-size:12px;line-height:1.45}
  .flow-node-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
  .flow-node .node-open{
    width:100%;border:0;border-top:1px solid #2c3346;background:#1d2330;color:#cfd7ee;
    padding:7px 9px;border-radius:0 0 12px 12px;text-align:left
  }
  .flow-node .node-open:hover{background:#232b3b}
  .flow-start{font-size:11px;color:#ffe69c}
  .flow-badge{font-size:10px;border:1px solid #3b4661;background:#202638;padding:2px 6px;border-radius:999px}
  .flow-empty{
    position:absolute;left:40px;top:40px;color:var(--muted);border:1px dashed var(--line);
    border-radius:12px;padding:18px
  }
  .flow-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}
  .flow-line-key{display:inline-block;width:24px;border-top:2px solid #55617d;vertical-align:middle}
  .flow-line-key.special{border-top-color:#8e7bd8;border-top-style:dashed}
  @media (max-width:1100px){
    .workspace{grid-template-columns:250px minmax(500px,1fr) 260px}
    .node-media-grid{grid-template-columns:1fr}
  }
  @media (max-width:720px){
    .workspace{display:block}
    .sidebar,.editor,.preview,.asset-sidebar{border:0;border-bottom:1px solid var(--line)}
    .grid2,.logic-grid,.stat-grid,.entry-rule-grid{grid-template-columns:1fr}
    .status{width:100%;margin-left:0}
  }
