:root{--deep:#102f31;--teal:#184a4c;--peach:#e9a36f;--paper:#f8f5ef;--white:#fffdfa;--ink:#172d2e;--muted:#73807e;--line:#d9dfda;--shadow:0 24px 70px rgba(12,45,47,.13)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC","PingFang TC",sans-serif}button,input,textarea{font:inherit}.topbar{height:72px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,253,250,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink)}.brand img{width:148px;height:auto}.brand span{display:grid;padding-left:13px;border-left:1px solid var(--line)}.brand b{font:700 16px/1.3 "Noto Serif TC","Songti TC",serif}.brand small{color:var(--muted);font-size:10px;letter-spacing:.1em}.top-actions{display:flex;align-items:center;gap:8px}.save-state{font-size:12px;color:var(--muted);margin-right:8px}.button,.stage-tools button,.rail-head button,.refine-box button{border:0;border-radius:999px;padding:10px 15px;cursor:pointer;font-weight:800}.button{display:inline-flex;text-decoration:none}.button.primary{background:var(--deep);color:white}.button.ghost{background:#eee9df;color:var(--deep)}
.editor-shell{height:calc(100vh - 72px);display:grid;grid-template-columns:250px minmax(480px,1fr) 350px;overflow:hidden}.slide-rail,.text-panel{background:var(--white);overflow:auto}.slide-rail{border-right:1px solid var(--line);padding:20px 14px}.rail-head,.panel-head,.stage-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.rail-head small,.panel-head small,.stage-head small,.refine-box small{display:block;color:var(--peach);font-size:10px;font-weight:900;letter-spacing:.16em}.rail-head strong{font:800 24px Georgia,serif}.rail-head button{padding:7px 10px;background:transparent;color:#9a4d3a;font-size:11px}.search{display:grid;gap:6px;margin:16px 0}.search span{font-size:10px;color:var(--muted);font-weight:800}.search input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff}.slide-list{display:grid;gap:7px;padding-bottom:30px}.slide-item{width:100%;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start;padding:10px;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left;cursor:pointer;color:var(--ink)}.slide-item:hover{background:#f3eee5}.slide-item.active{background:var(--deep);color:white}.slide-item.changed:not(.active){border-color:rgba(233,163,111,.6);background:#fff7ef}.slide-item .no{font:700 12px ui-monospace,monospace;color:var(--peach)}.slide-item strong{display:block;font-size:13px;line-height:1.4}.slide-item small{display:block;margin-top:4px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slide-item.active small{color:#b9c7c5}
.stage{min-width:0;padding:22px 28px 28px;display:flex;flex-direction:column;background:radial-gradient(circle at 12% 7%,rgba(233,163,111,.12),transparent 28%),#e9ece8}.stage-head{margin-bottom:15px}.stage-head strong{display:block;font:700 20px/1.35 "Noto Serif TC","Songti TC",serif}.stage-tools{display:flex;align-items:center;gap:6px}.stage-tools button{width:38px;height:38px;padding:0;background:var(--deep);color:#fff}.stage-tools span{font:700 12px ui-monospace,monospace;min-width:64px;text-align:center}.screen-wrap{flex:1;min-height:0;display:grid;place-items:center}.screen-wrap iframe{width:100%;aspect-ratio:16/9;max-height:100%;border:0;background:#fff;box-shadow:var(--shadow)}.stage-tip{font-size:12px;color:var(--muted);text-align:center;margin:12px 0 0}
.text-panel{border-left:1px solid var(--line);padding:22px 20px}.panel-head{margin-bottom:17px}.panel-head h1{margin:4px 0 0;font:800 28px/1.1 "Noto Serif TC","Songti TC",serif}.panel-head>span{font-size:11px;color:var(--muted)}.field-list{display:grid;gap:12px}.edit-field{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff;transition:.18s}.edit-field:focus-within,.edit-field.active{border-color:var(--peach);box-shadow:0 0 0 3px rgba(233,163,111,.12)}.edit-field label{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em}.edit-field label button{border:0;background:transparent;color:#a05b46;padding:0;cursor:pointer;font-size:10px}.edit-field textarea{width:100%;min-height:42px;padding:0;border:0;outline:0;resize:none;color:var(--ink);font-size:14px;line-height:1.55;background:transparent}.refine-box{margin-top:24px;padding:16px;background:var(--deep);color:white;border-radius:12px}.refine-box strong{display:block;margin-top:3px;font:700 20px "Noto Serif TC","Songti TC",serif}.refine-box textarea{width:100%;min-height:92px;margin:13px 0 9px;border:1px solid #ffffff2d;border-radius:8px;padding:10px;background:#ffffff0d;color:white;resize:vertical}.refine-box textarea::placeholder{color:#aebcba}.refine-box button{width:100%;background:var(--peach);color:var(--deep)}.refine-box p{margin:9px 0 0;color:#aebcba;font-size:10px;line-height:1.5}.empty{padding:34px 12px;text-align:center;color:var(--muted)}.toast{position:fixed;left:50%;bottom:26px;z-index:50;transform:translate(-50%,18px);padding:10px 16px;border-radius:999px;background:#102f31;color:white;opacity:0;pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1100px){.editor-shell{grid-template-columns:210px minmax(420px,1fr) 310px}.brand img{width:120px}.save-state{display:none}}
@media(max-width:820px){.topbar{height:62px;padding:0 12px}.brand img{width:118px}.brand span,.hide-mobile{display:none}.editor-shell{height:calc(100vh - 62px);display:block;overflow:auto}.slide-rail{position:sticky;top:0;z-index:10;border:0;border-bottom:1px solid var(--line);padding:10px 12px}.rail-head,.search{display:none}.slide-list{display:flex;gap:6px;overflow:auto;padding:0 0 4px}.slide-item{flex:0 0 58px;display:block;padding:8px;text-align:center}.slide-item strong,.slide-item small{display:none}.stage{height:auto;min-height:430px;padding:16px 12px}.stage-head strong{font-size:16px}.screen-wrap{min-height:240px}.text-panel{border:0;padding:20px 14px}.field-list{gap:9px}.top-actions .button.primary{padding:9px 12px;font-size:12px}}
