/* 後台（桌機 1440×900）元件 */
body{width:1440px;height:900px;overflow:hidden;background:var(--bo-bg);font-size:15px;line-height:1.5;color:var(--bo-text)}
.app{display:grid;grid-template-columns:232px 1fr;height:900px}
.side{background:var(--bo-surface);border-right:1px solid var(--bo-border);padding:20px 14px;display:flex;flex-direction:column}
.side .brand{display:flex;flex-direction:column;gap:2px;padding:4px 10px 22px;color:var(--bean)}
.side .brand b{font-weight:900;font-size:20px;letter-spacing:.08em;white-space:nowrap}
.side .brand span{font-size:13px;color:var(--bo-muted);font-weight:700;letter-spacing:.06em}
.nav a{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:10px;color:#4A403E;font-size:15px;font-weight:500;text-decoration:none;margin-bottom:2px}
.nav a.on{background:var(--blush);color:var(--bean-press);font-weight:700}
.nav a .n{margin-left:auto;font-size:12px;font-weight:700;background:var(--bean);color:#fff;border-radius:var(--r-pill);padding:0 8px;line-height:20px}
.side .me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 10px;border-top:1px solid var(--bo-border)}
.av{width:34px;height:34px;border-radius:50%;background:var(--mist);color:var(--bean-press);display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}
.me div{font-size:14px;line-height:1.35} .me small{display:block;color:var(--bo-muted);font-size:12px}
.main{display:flex;flex-direction:column;min-width:0;position:relative}
.top{height:64px;display:flex;align-items:center;gap:16px;padding:0 32px;border-bottom:1px solid var(--bo-border);background:var(--bo-surface)}
.crumb{font-size:14px;color:var(--bo-muted)} .crumb b{color:var(--bo-text);font-weight:700}
.top .sp{flex:1}
.content{padding:24px 32px;overflow:hidden;flex:1}
.h{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.h h1{font-family:"Noto Sans CJK TC",sans-serif;font-size:24px;font-weight:700;letter-spacing:.01em}
.h .sub{font-size:14px;color:var(--bo-muted)}
.h .sp{flex:1}
.b{height:40px;padding:0 16px;border-radius:10px;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;white-space:nowrap}
.b-pri{background:var(--bean);color:#fff}
.b-sec{background:#fff;border:1px solid var(--line-strong);color:var(--bo-text)}
.b-sm{height:32px;padding:0 10px;font-size:13px;border-radius:8px;gap:6px}
.b svg.i{width:18px;height:18px}
.search{height:40px;width:300px;border:1px solid var(--line-strong);border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--ink-3);background:#fff;font-size:14px}
.search svg{width:18px;height:18px}
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.seg{display:flex;background:#fff;border:1px solid var(--bo-border);border-radius:10px;padding:3px;gap:2px}
.seg span{height:32px;padding:0 14px;display:flex;align-items:center;border-radius:8px;font-size:14px;color:#4A403E;font-weight:500}
.seg span.on{background:var(--bean);color:#fff;font-weight:700}
.seg span i{font-style:normal;color:inherit;margin-left:6px;font-size:12px}
.select{height:40px;border:1px solid var(--line-strong);border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#fff;font-size:14px;color:var(--bo-text)}
.select svg{width:16px;height:16px;color:var(--bo-muted)}
.card{background:var(--bo-surface);border:1px solid var(--bo-border);border-radius:14px}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{font-size:13px;color:var(--bo-muted);font-weight:700;text-align:left;padding:0 16px;height:44px;border-bottom:1px solid var(--bo-border);background:#FCFBFA;white-space:nowrap}
th:first-child{border-top-left-radius:14px} th:last-child{border-top-right-radius:14px}
td{padding:0 16px;height:56px;border-bottom:1px solid #F0ECEA;white-space:nowrap}
tr:last-child td{border-bottom:none}
tr.sel td{background:#FDF4F1}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.mono{font-variant-numeric:tabular-nums;font-family:var(--font-ui)}
.muted{color:var(--bo-muted)}
.st{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--r-pill);font-size:13px;font-weight:700}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st-ok{background:var(--ok-bg);color:var(--ok)}
.st-off{background:var(--muted-bg);color:#5E5452}
.st-warn{background:var(--warn-bg);color:var(--warn)}
.st-new{background:#FCE9E7;color:var(--bean-press)}
.st-info{background:#E8EEF8;color:#2D4E86}
.st-ref{background:#F1ECF7;color:#5B3C88}
.link{display:inline-flex;align-items:center;gap:6px;color:#2D4E86;font-weight:500}
.link svg{width:16px;height:16px}
.icobtn{width:32px;height:32px;border-radius:8px;border:1px solid var(--bo-border);display:inline-grid;place-items:center;color:#4A403E;background:#fff;vertical-align:middle}
.icobtn svg{width:17px;height:17px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.stat{padding:18px 20px}
.stat .k{font-size:14px;color:var(--bo-muted);font-weight:500;display:flex;align-items:center;gap:8px}
.stat .v{font-size:30px;font-weight:900;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat .v small{font-size:15px;font-weight:500;color:var(--bo-muted);margin-left:4px}
.stat .d{font-size:13px;color:var(--bo-muted);margin-top:2px}
.stat .d b{color:var(--ok)}
.stat.hl{border-color:#EBC9C3;background:#FFFAFB}
.stat.hl .v{color:var(--bean)}
.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--bo-border);font-size:13px;color:var(--bo-muted)}
.pager .pg{display:flex;gap:4px}
.pager .pg span{min-width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--bo-border);background:#fff;color:var(--bo-text)}
.pager .pg span.on{background:var(--bean);border-color:var(--bean);color:#fff;font-weight:700}
.lineok{display:inline-flex;align-items:center;gap:5px;color:#006B2F;font-weight:700;font-size:13px}
.lineok svg{width:18px;height:18px;fill:var(--line-green);stroke:none}
.lineno{color:var(--bo-muted);font-size:13px}
.star svg{width:19px;height:19px;color:#C9BEBB}
.star.on svg{fill:var(--gold);color:#D99A12}
.drawer{position:absolute;top:0;right:0;bottom:0;width:440px;background:#fff;border-left:1px solid var(--bo-border);box-shadow:-16px 0 40px rgba(40,20,18,.12);display:flex;flex-direction:column}
.scrim{position:absolute;inset:0;background:rgba(32,31,31,.18)}
.dw-h{padding:20px 24px;border-bottom:1px solid var(--bo-border);display:flex;align-items:flex-start;gap:12px}
.dw-h h2{font-size:20px;font-weight:700}
.dw-h .meta{font-size:13px;color:var(--bo-muted);margin-top:2px}
.dw-b{padding:20px 24px;flex:1;overflow:hidden}
.kv{display:grid;grid-template-columns:96px 1fr;row-gap:12px;column-gap:12px;font-size:14.5px;margin-bottom:20px}
.kv dt{color:var(--bo-muted)} .kv dd{font-weight:500}
.dw-sec{font-size:13px;font-weight:700;color:var(--bo-muted);margin:4px 0 10px}
.quote{background:var(--bo-bg);border-radius:10px;padding:12px 14px;font-size:14.5px;line-height:1.7;margin-bottom:20px}
.statuspick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.statuspick span{height:34px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-strong);display:flex;align-items:center;font-size:13.5px;font-weight:500}
.statuspick span.on{background:var(--bean);border-color:var(--bean);color:#fff;font-weight:700}
.notebox{border:1px solid var(--line-strong);border-radius:10px;height:76px;padding:10px 12px;font-size:14px;color:var(--ink-3)}
.dw-f{padding:16px 24px;border-top:1px solid var(--bo-border);display:flex;gap:10px}
.dw-f .b{flex:1;justify-content:center}
.qr{width:22px;height:22px}
.pm{display:inline-flex;align-items:center;gap:6px}
.pm .lp{font-weight:900;font-size:12px;background:var(--line-green);color:#fff;border-radius:5px;padding:1px 6px}

.top .bell{position:relative}
.top .bell::after{content:"";position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--bean);border:2px solid #fff}
.fname b{display:block;font-weight:700;font-size:14.5px} .fname small{display:block;color:var(--bo-muted);font-size:12.5px;margin-top:1px}
td .cell{display:flex;align-items:center;gap:8px}
.cb{width:18px;height:18px;border:1.5px solid var(--line-strong);border-radius:5px;background:#fff;display:inline-grid;place-items:center;vertical-align:middle}
.cb.on{background:var(--bean);border-color:var(--bean)} .cb.on svg{stroke:#fff;width:13px;height:13px;stroke-width:3}
.cb.mid{background:var(--bean);border-color:var(--bean)} .cb.mid::after{content:"";width:9px;height:2px;background:#fff;border-radius:2px}
.pop{position:absolute;background:#fff;border:1px solid var(--bo-border);border-radius:14px;box-shadow:0 12px 32px rgba(40,20,18,.16);padding:16px;width:248px;z-index:5}
.pop h4{font-size:14px;font-weight:700;margin-bottom:2px} .pop p{font-size:12.5px;color:var(--bo-muted);margin-bottom:10px}
.pop .qrbox{border:1px solid var(--bo-border);border-radius:10px;padding:12px;display:grid;place-items:center;margin-bottom:12px}
.pop .row{display:flex;gap:8px} .pop .row .b{flex:1;justify-content:center}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 24px 80px}
.empty .ic{width:64px;height:64px;border-radius:18px;background:var(--blush);color:var(--bean);display:grid;place-items:center;margin-bottom:18px}
.empty .ic svg{width:30px;height:30px}
.empty h3{font-size:18px;font-weight:700} .empty p{font-size:14px;color:var(--bo-muted);margin:6px 0 20px;max-width:380px;line-height:1.7}
.toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#4A403E}
.toggle .sw{width:36px;height:20px;border-radius:10px;background:#D9CFCC;position:relative}
.toggle .sw::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.bulk{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#FDF4F1;border-bottom:1px solid #F1DDD7;font-size:13.5px;color:var(--bean-press);font-weight:700}
.bulk .b{height:30px}
.chipf{height:32px;padding:0 10px 0 12px;border-radius:var(--r-pill);background:#fff;border:1px dashed var(--line-strong);display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4A403E}
.chipf.set{border-style:solid;border-color:#E3C2BB;background:#FDF4F1;color:var(--bean-press);font-weight:700}
.chipf svg{width:14px;height:14px}
.sub2{font-size:12.5px;color:var(--bo-muted);display:block;margin-top:1px}
.tabs{display:flex;gap:24px;border-bottom:1px solid var(--bo-border);margin:-4px 0 20px}
.tabs span{padding:10px 0 12px;font-size:14.5px;color:var(--bo-muted);font-weight:500;position:relative}
.tabs span.on{color:var(--bo-text);font-weight:700}
.tabs span.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--bean);border-radius:2px}
.tabs span i{font-style:normal;font-size:12px;background:var(--muted-bg);border-radius:var(--r-pill);padding:1px 7px;margin-left:6px;color:#4A403E}

.ord td{height:50px}

/* ===== 實作覆寫 ===== */
body{width:auto;height:auto;min-width:1200px;overflow:auto}
.app{height:100vh}
.main{overflow:hidden}
.content{overflow:auto}
button.b,button.icobtn{font:inherit;font-weight:700;border:0;cursor:pointer}
button.b-sec{border:1px solid var(--line-strong)}
button.icobtn{border:1px solid var(--bo-border);font-weight:400}
.b[disabled]{opacity:.5;cursor:not-allowed}
.nav a{cursor:pointer}
.nav a:hover{background:var(--bo-hover)}
tr.click{cursor:pointer} tr.click:hover td{background:var(--bo-hover)}
.search input{border:0;outline:0;font:inherit;font-size:14px;flex:1;color:var(--bo-text);background:transparent}
.seg span{cursor:pointer}
.statuspick span{cursor:pointer}
.drawer{position:fixed;z-index:30;overflow:auto}
.scrim{position:fixed;z-index:29}
.dw-b{overflow:auto}
textarea.notebox{width:100%;font:inherit;font-size:14px;color:var(--bo-text);resize:vertical;outline:0}
textarea.notebox:focus,.fi:focus{border-color:var(--bean);box-shadow:var(--focus)}
.fi{height:40px;border:1px solid var(--line-strong);border-radius:10px;padding:0 12px;font:inherit;font-size:14.5px;background:#fff;color:var(--bo-text);outline:0;width:100%}
textarea.fi{height:auto;min-height:72px;padding:10px 12px;resize:vertical}
select.fi{appearance:auto}
.envbar{background:#FFF1C2;color:#6B4600;font-size:13px;font-weight:700;text-align:center;padding:4px;border-bottom:1px solid #F0D58A}
.login{min-height:100vh;display:grid;place-items:center;background:var(--bo-bg)}
.login .card{width:400px;padding:32px}
.login h1{font-size:22px;margin:8px 0 20px}
.login .brand{color:var(--bean);display:flex;gap:8px;align-items:baseline}
.login .brand b{font-weight:900;font-size:24px;letter-spacing:.14em}
.login label{display:block;font-size:13.5px;font-weight:700;margin:14px 0 6px}
.login .b{width:100%;justify-content:center;margin-top:22px;height:44px}
.err{color:var(--error);font-size:13.5px;margin-top:10px;font-weight:500}
.okmsg{color:var(--ok);font-size:13.5px;margin-top:10px;font-weight:500}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#2B2524;color:#fff;border-radius:10px;padding:10px 18px;font-size:14px;z-index:50}
.maskbadge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--warn);background:var(--warn-bg);border-radius:var(--r-pill);padding:2px 10px}
.dn b{font-weight:700} .dn small{display:block;color:var(--bo-muted);font-size:12.5px}
.ad{font-variant-numeric:tabular-nums;font-weight:700}
.ad.low{color:var(--error)} .ad.mid{color:var(--warn)} .ad.hi{color:var(--ok)}
/* 表單編輯器 */
.editor{display:grid;grid-template-columns:1fr 360px;gap:20px;align-items:start}
.fcard{padding:16px 18px;margin-bottom:12px}
.fcard .fh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fcard .fh .t{font-size:12px;font-weight:700;color:var(--bo-muted);background:var(--muted-bg);border-radius:6px;padding:2px 8px}
.fcard .fh .id{font-size:12px;color:var(--bo-muted)}
.fcard .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.fcard label.l{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:8px 0 4px}
.opts{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.opts .o{display:flex;gap:6px;align-items:center}
.opts .o .code{font-size:12px;color:var(--bo-muted);width:44px;flex:none}
.side-panel .card{padding:18px;margin-bottom:16px}
.side-panel h3{font-size:15px;font-weight:700;margin-bottom:12px}
.swrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;font-size:14px}
.swrow small{display:block;color:var(--bo-muted);font-size:12.5px}
.sw2{width:40px;height:22px;border-radius:11px;background:#D9CFCC;position:relative;flex:none;cursor:pointer;border:0}
.sw2::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.sw2.on{background:var(--line-green)} .sw2.on::after{left:21px}
.sw2[disabled]{opacity:.5;cursor:not-allowed}
.rule{border:1px solid var(--bo-border);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13.5px;background:#FCFBFA}
.rule .rr{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.rule select,.rule input{height:32px;font-size:13px;width:auto}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13.5px}
.pre{white-space:pre-wrap;word-break:break-all;font-size:12.5px;color:var(--bo-muted)}
.ckpill{display:inline-block;font-size:12px;border-radius:999px;padding:1px 8px;background:var(--ok-bg);color:var(--ok);font-weight:700}
/* 實作覆寫 2 */
.seg button,.seg a{height:32px;padding:0 14px;display:flex;align-items:center;border-radius:8px;font:inherit;font-size:14px;color:#4A403E;font-weight:500;border:0;background:none;cursor:pointer;text-decoration:none}
.seg button.on,.seg a.on{background:var(--bean);color:#fff;font-weight:700}
.statuspick button.st{border:1px solid transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:700;height:32px}
.statuspick button.st.on{outline:2px solid var(--bean);outline-offset:1px}
.stats{grid-template-columns:repeat(5,1fr)}
.top .envbar{margin-left:auto;border:1px solid #F0D58A;border-radius:999px;padding:2px 12px}
.login .envbar{border-radius:8px;margin-bottom:6px}
.side .me .b{margin-left:auto}
.me div{min-width:0}
td.acts{text-align:right} td.acts .b{margin-left:6px}
.newdot{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:var(--bean-press);background:#FCE9E7;border-radius:999px;padding:0 8px}
.emptyrow{text-align:center;color:var(--bo-muted);height:120px}
.star{background:none;border:0;cursor:pointer;padding:4px}
.dn{font-weight:700}
.dw-h>div{flex:1} .dw-h small{color:var(--bo-muted);font-size:12.5px}
.kv>span{color:var(--bo-muted)} .kv>b{font-weight:500;white-space:normal;word-break:break-all} .kv .quote{margin:0}
.dw-sec h3{font-size:13px;font-weight:700;color:var(--bo-muted);margin:0 0 10px} .dw-sec{color:var(--bo-text);font-weight:400;font-size:14px;margin:0 0 20px}
.dw-sec small{color:var(--bo-muted)}
.fcard{padding:0;overflow:hidden}
.fc-h{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer}
.fc-h small{margin-left:auto;color:var(--bo-muted);font-size:12px}
.fcard.on{border-color:#EBC9C3;box-shadow:0 0 0 3px #FCE9E7}
.fc-b{padding:4px 18px 16px;border-top:1px solid var(--bo-border)}
.fc-b label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:10px 0 0}
.fc-b label .fi{margin-top:4px;color:var(--bo-text);font-weight:400}
.fc-b .row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}
.fc-b .row label{margin:0;min-width:120px}
.fc-b label.chk{display:inline-flex;color:var(--bo-text);font-weight:500;font-size:13.5px;min-width:0;height:40px}
.tag{font-size:12px;font-weight:700;color:var(--bo-muted);background:var(--muted-bg);border-radius:6px;padding:2px 8px}
.tag.logic{background:#E8EEF8;color:#2D4E86}
.fc-h .req{font-size:12px;color:var(--bean-press);font-weight:700}
.opts .lbl{font-size:12.5px;color:var(--bo-muted);font-weight:700;margin-top:12px}
.opt-row{display:flex;gap:6px;align-items:center}
.opt-row small{width:36px;flex:none;color:var(--bo-muted);font-size:12px}
.opts>.b{align-self:flex-start}
.danger{color:var(--error)!important}
.addbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border:1px dashed var(--line-strong);border-radius:14px;background:#fff}
.side-panel{position:sticky;top:0;max-height:calc(100vh - 24px);overflow:auto}
.sp-card{padding:18px;margin-bottom:16px}
.sp-card h3{font-size:15px;font-weight:700;margin-bottom:12px}
.sp-card>label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:10px 0 0}
.sp-card>label .fi{margin-top:4px;color:var(--bo-text);font-weight:400}
.swrow{border-top:1px solid #F0ECEA;margin-top:8px;padding-top:10px}
.swrow b{font-weight:700}
.rule>div{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.hint{font-size:12.5px;color:var(--bo-muted);margin:0 0 10px}
.note-card{background:#FFFBEB;border:1px solid #F0D58A;color:#6B4600;border-radius:12px;padding:12px 16px;font-size:14px;margin-bottom:16px}
.card.pad{padding:18px;margin-top:16px} .card.pad h3{font-size:15px;margin-bottom:10px}
.card.pad .row{display:flex;gap:8px} .card.pad .row .fi{flex:1}
.fi.sm{height:32px;width:auto;font-size:13px}
td.detail{white-space:normal;font-size:12.5px;color:var(--bo-muted);max-width:420px;word-break:break-all}
.toast.bad{background:var(--error)}
.content>.b{margin-bottom:14px}
.content>.seg{margin-bottom:16px;width:max-content}

/* ---- 驗證規則區、領取碼 ---- */
.rules{margin-top:12px;padding:12px;border:1px dashed var(--line,#e5ddd9);border-radius:10px;background:#fcfaf9}
.rules .lbl{font-size:13px;font-weight:700;color:#6b5b55;margin-bottom:8px}
.rules .row{flex-wrap:wrap;align-items:flex-end}
.rules label.grow{flex:1;min-width:220px}
.rules .try{align-items:center}
.try-msg{font-size:13px;min-width:260px}
.try-msg.ok{color:#1f7a3f}.try-msg.bad{color:#b42318}
td .tag+.tag{margin-left:4px}

/* ===== 夜間擴充：編輯器分頁、區塊、拖曳、規則、結果頁、分享、團隊 ===== */
.modal-root{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center}
.modal-root .scrim{position:absolute}
.modal{position:relative;z-index:1;width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 60px rgba(40,20,18,.2)}
.modal .mh{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--bo-border)}
.modal .mh h2{font-size:18px;font-weight:700;flex:1}
.modal .mb{padding:18px 22px}
.modal .mf{padding:14px 22px;border-top:1px solid var(--bo-border);display:flex;gap:10px;justify-content:flex-end}
.formcol{display:flex;flex-direction:column;gap:10px}
.formcol>label{font-size:12.5px;color:var(--bo-muted);font-weight:700;display:flex;flex-direction:column;gap:4px}
.formcol .err{color:var(--error);font-size:13.5px;min-height:18px}
.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tpl{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px;border:1px solid var(--bo-border);border-radius:12px;background:#fff;font:inherit;cursor:pointer}
.tpl:hover{border-color:#EBC9C3;box-shadow:0 0 0 3px #FCE9E7}
.tpl b{font-size:15px} .tpl small{font-size:12.5px;color:var(--bo-muted)}
.share{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:start}
.share img.qr{width:200px;height:200px;border:1px solid var(--bo-border);border-radius:12px;background:#fff;padding:6px}
.share-r{display:flex;flex-direction:column;gap:10px}
.share-r label{font-size:12.5px;color:var(--bo-muted);font-weight:700;display:flex;flex-direction:column;gap:4px}
.share-r .row{display:flex;gap:8px;flex-wrap:wrap}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.edtop{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.note-card.bad{background:#FDECEC;border-color:#F2B8B5;color:#8C1D18}
.secs{max-width:860px}
.sec{margin-bottom:18px}
.pagebreak{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--bean-press);margin:6px 0 8px}
.pagebreak::before,.pagebreak::after{content:"";flex:1;height:1px;background:#EBC9C3}
.sec-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.sec-h .sec-title{flex:1;font-weight:700;font-size:15.5px}
.sec-h label.chk{white-space:nowrap}
.sec-desc{margin-bottom:10px;height:34px;font-size:13.5px}
.sec-b{padding:10px;border:1px solid var(--bo-border);border-radius:14px;background:#FAF8F7}
.dropzone{border:1px dashed var(--line-strong);border-radius:10px;padding:10px;text-align:center;font-size:12.5px;color:var(--bo-muted)}
.grip{cursor:grab;color:#B8ABA7;font-size:13px;letter-spacing:-2px;user-select:none}
.fcard.dragging{opacity:.4}
.fcard.dropbefore{box-shadow:0 -3px 0 0 var(--bean)}
.fcard .danger,.b.danger{color:var(--error)}
.ta{height:auto;padding:8px 12px;line-height:1.55;resize:vertical}
.opts{margin-top:12px;padding:12px;border:1px solid var(--bo-border);border-radius:10px;background:#fff}
.opts .lbl{font-size:13px;font-weight:700;color:#6b5b55;margin-bottom:8px}
.opt-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.opt-row .fi{flex:1;height:34px}
.opt-row .grow{flex:1}
.optimg{width:48px;height:48px;border:1px dashed var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;flex:none;font-size:12px;color:var(--bo-muted);margin:0!important}
.optimg img{width:100%;height:100%;object-fit:cover}
.sr{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.opts .row{display:flex;gap:8px;margin:8px 0}
.opts .row .fi{flex:1}
.pp-results{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.pp{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--bo-border);border-radius:10px}
.pp.on{border-color:#B9DDBF;background:#F2FAF3}
.pp img,.pp .ph{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--muted-bg);flex:none}
.pp-t{flex:1;min-width:0} .pp-t b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .pp-t small{font-size:12px;color:var(--bo-muted)}
.logic{max-width:900px}
.h2row{display:flex;align-items:center;gap:10px;margin:18px 0 10px}
.h2row h2{font-size:17px;font-weight:700}
.sp{flex:1}
.rule.card{padding:12px 14px;margin-bottom:10px;background:#fff}
.rule .rr{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.rule .rn{font-size:13px;color:var(--bo-muted);margin-right:4px}
.rule .kw{display:inline-block;min-width:22px;font-weight:700;color:#2D4E86;font-size:13px}
.rsum{margin:8px 0 0;color:#4A403E}
.outgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.outc{padding:14px 16px;border-left:4px solid var(--line-green)}
.outc.reject{border-left-color:#9A8F8C}
.outc label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:8px 0 0}
.outc label .fi{margin-top:4px;color:var(--bo-text);font-weight:400}
.outc .rr{display:flex;gap:8px;align-items:center}
.outc .row2{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.fi.bad{border-color:var(--error);box-shadow:0 0 0 3px #FDECEC}
.setgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;max-width:1000px}
.setgrid .sp-card{margin:0}
.acc .lbl{font-size:13px;font-weight:700;color:#6b5b55;margin:8px 0}
.acc label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--bo-muted);font-weight:700}
.acc label.chk{flex-direction:row;color:var(--bo-text);font-weight:500;font-size:14px;margin:6px 0}
.acc-forms{border:1px solid var(--bo-border);border-radius:10px;padding:8px 12px;max-height:280px;overflow:auto}
.acc-row{display:flex;align-items:center;gap:10px;justify-content:space-between;border-bottom:1px solid #F0ECEA}
.acc-row:last-child{border-bottom:0}
td.scope{max-width:300px;font-size:13px;color:#4A403E}
tr.off td{color:var(--bo-muted)}
td .st{margin-left:6px}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}
.pager{display:flex;justify-content:center;margin:14px 0}
.me{cursor:pointer}
.files{display:flex;flex-wrap:wrap;gap:8px}
.filechip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;border:1px solid var(--bo-border);border-radius:8px;font-size:12.5px;color:var(--bo-text);text-decoration:none}
.filechip img{width:40px;height:40px;object-fit:cover;border-radius:6px}
.orow{display:flex;justify-content:space-between;padding:4px 0;font-size:14px}
.orow.tot{border-top:1px solid var(--bo-border);margin-top:4px;padding-top:8px}
.inv-h{font-size:20px;font-weight:700;margin:8px 0 4px}
.emptyrow{padding:24px;text-align:center;color:var(--bo-muted)}

.tscroll{overflow-x:auto}#users td.acts{white-space:nowrap;text-align:right}#users td.acts .b+.b{margin-left:6px}#users td:first-child{white-space:nowrap}#users td:first-child .st{margin-left:6px}
.modal-root .scrim{z-index:0}
#users td:nth-child(2){max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#users td.scope{max-width:300px}#users th,#users td{padding-left:12px;padding-right:12px}

/* ===== MikeCRM 式三欄編輯器 ===== */
.app.ed-wide{grid-template-columns:68px 1fr}
.app.ed-wide .side{padding:16px 8px}
.app.ed-wide .side .brand{display:none}
.app.ed-wide .nav a{font-size:0;justify-content:center;padding:0;gap:0}
.app.ed-wide .nav a .i{width:22px;height:22px}
.app.ed-wide .side .me{padding:10px 4px;justify-content:center}
.app.ed-wide .side .me>div:not(.av),.app.ed-wide .side .me .b{display:none}
.app.ed-wide .top{height:48px;padding:0 20px}
.app.ed-mk .content{padding:12px 18px 14px;display:flex;flex-direction:column;overflow:hidden}
.app.ed-logic .content{padding:16px 24px}
.edh{margin-bottom:10px;gap:10px}
.edh h1{font-size:20px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edh .sub{font-size:12.5px;max-width:560px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edh .edtabs{margin-right:6px}
.app.ed-mk #schema-errs{margin-bottom:8px;padding:8px 12px;font-size:13px}
.mk{flex:1;min-height:0;display:grid;grid-template-columns:288px minmax(0,1fr) 360px;gap:14px}
.mk>*{min-height:0;overflow:auto;border-radius:12px}
/* 左欄 */
.mk-pal{background:var(--bo-surface);border:1px solid var(--bo-border);padding:12px 12px 8px}
.pal-login{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px 12px;border-bottom:1px solid var(--bo-border);margin-bottom:6px}
.pal-login b{font-size:13.5px}
.seg.seg-sm{padding:2px}
.seg.seg-sm button{height:26px;padding:0 10px;font-size:12.5px}
.seg button:disabled{opacity:.5;cursor:not-allowed}
.pal-note{display:block;margin:4px 4px 6px}
.pal-g h4{font-size:13px;font-weight:700;color:#4A403E;margin:12px 4px 8px;display:flex;align-items:center;gap:6px}
.pal-g h4::before{content:"";width:3px;height:13px;border-radius:2px;background:var(--bean)}
.pal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-height:64px;padding:8px 2px 6px;border:1px solid var(--bo-border);border-radius:9px;background:#fff;cursor:pointer;font:inherit;color:#4A403E}
.tile .ti{display:flex;width:26px;height:26px;align-items:center;justify-content:center}
.tile .pi{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tile .tl{font-size:11.5px;line-height:1.25;text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.tile:hover{border-color:var(--bean);color:var(--bean);background:#FFF8F6}
.tile[draggable]{cursor:grab}
.tile.set .ti{color:var(--bean)}
.tile.soon{color:#B9AFAC;background:#F7F5F4;border-style:dashed;cursor:not-allowed}
.tile.soon:hover{color:#B9AFAC;border-color:var(--bo-border);background:#F7F5F4}
.pal-g.round .ti{border-radius:50%;background:var(--blush);width:30px;height:30px;color:var(--bean)}
.pal-g.round .tile.soon .ti{background:#EEEAE8;color:#B9AFAC}
.pal-g.round .pi{width:18px;height:18px}
.pal-foot{margin:12px 4px 4px;font-size:12px}
/* 中欄：預覽 */
.mk-pv{background:#EFEAE8;border:1px solid var(--bo-border);padding:18px 16px 10px}
.pv-phone{max-width:460px;margin:0 auto;background:#FFF9F7;border-radius:16px;padding:12px 12px 18px;box-shadow:0 2px 12px rgba(80,40,30,.08)}
.pv-banner{display:flex;align-items:center;gap:10px;background:var(--bean);color:#fff;border-radius:14px;padding:16px 14px 16px 18px;cursor:pointer;min-height:96px}
.pv-banner .bt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pv-banner b{font-size:19px;font-weight:900;line-height:1.3}
.pv-banner span{font-size:13.5px;opacity:.95}
.pv-banner small{font-size:12px;opacity:.85}
.pv-banner img{width:78px;height:78px;object-fit:contain;flex:none}
.pv-line{display:flex;align-items:center;gap:6px;margin:10px 2px 0;padding:8px 10px;border-radius:10px;background:#E9F8EE;color:#0A7A35;font-size:13px;font-weight:700}
.pv-line .i{width:18px;height:18px;fill:#06C755;stroke:none}
.pv-pb{margin:16px 0 4px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--bean);font-size:12.5px;font-weight:700}
.pv-pb::before,.pv-pb::after{content:"";flex:1;border-top:2px dashed #E3B7B3}
.pv-pb span{padding:2px 10px;border-radius:99px;background:#fff;border:1px solid #E3B7B3}
.pv-pb.on span{background:var(--bean);color:#fff;border-color:var(--bean)}
.pv-sec{border-radius:12px;padding:2px 0 4px;margin-top:6px;min-height:20px}
.pv-sec.drop-end{box-shadow:inset 0 -3px 0 var(--bean)}
.pv-sec.on .pv-sh{outline:2px solid var(--bean);outline-offset:-2px}
.pv-sh{margin:8px 0 2px;padding:6px 10px;border-radius:10px;cursor:pointer}
.pv-sh b{font-size:15.5px;font-weight:800;color:var(--wine,#5B1E22)}
.pv-sh p{font-size:13px;color:var(--bo-muted);margin-top:2px}
.pv-sh small{font-size:12px;color:#B9AFAC}
.pv-sh:hover{background:#fff}
.pv-q{position:relative;background:#fff;border:1px solid transparent;border-radius:12px;padding:12px 14px 14px;margin-top:8px;cursor:pointer}
.pv-q:hover{border-color:#E8C9C5;border-style:dashed}
.pv-q.on{border:2px solid var(--bean);padding:11px 13px 13px;box-shadow:0 2px 10px rgba(168,40,67,.12)}
.pv-q.dragging{opacity:.4}
.pv-q.drop-b{box-shadow:0 -3px 0 var(--bean)}
.pv-q.drop-a{box-shadow:0 3px 0 var(--bean)}
.pv-l{font-size:15px;font-weight:700;color:var(--bo-text);margin-bottom:8px;padding-right:10px}
.pv-l .qno{color:var(--bean);font-weight:900;margin-right:3px}
.pv-l .req{color:var(--bean);margin-left:3px}
.pv-help{font-size:12.5px;color:var(--bo-muted);margin:-4px 0 8px}
.pv-note{font-size:12.5px;color:#8A5A00;background:#FFF6DA;border-radius:8px;padding:4px 8px;margin:-2px 0 8px}
.pv-flag{position:absolute;top:8px;right:10px;font-size:11px;font-weight:700;color:#2D4E86;background:#E8EEF8;border-radius:6px;padding:1px 6px}
.pv-in{height:40px;border:1px solid #E5DCD9;border-radius:10px;background:#FFFDFC;padding:0 12px;display:flex;align-items:center;font-size:14px;color:#B9AFAC}
.pv-in.ta{height:76px;align-items:flex-start;padding-top:8px}
.pv-in.sel::after,.pv-in.dt::after{content:"▾";margin-left:auto;color:#9C8F8B}
.pv-in.dt::after{content:"📅";font-size:13px}
.pv-in.muted{font-size:13px}
.pv-opts{display:flex;flex-direction:column;gap:6px}
/* 2026-10-30 選項記號：與公開表單同款（左邊 22px 圓／圓角方框，勾選＝櫻桃底＋白點／白勾，整列淡櫻桃底＋框）。記號 class 用 pv-mk，別用 .mk（編輯器三欄版面） */
.pv-opt{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:48px;font-size:14.5px;line-height:1.4;padding:8px 12px;border:1.5px solid #E5DCD9;border-radius:12px;background:#fff;text-align:left;cursor:pointer;color:var(--bo-text)}
.pv-opt .pv-mk{box-sizing:border-box;width:22px;height:22px;min-width:22px;max-width:22px;flex:0 0 22px;border:2px solid #C9BBB7;border-radius:50%;background:#fff;display:grid;place-items:center;margin:0}
.pv-opt.sq .pv-mk{border-radius:6px}
.pv-opt .pv-ol{flex:1 1 auto;min-width:0;text-align:left}
.pv-opt.on{border-color:var(--bean);background:var(--blush);font-weight:700;color:var(--bean-press)}
.pv-opt.on .pv-mk{border-color:var(--bean);background:var(--bean)}
.pv-opt.on .pv-mk::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.pv-opt.sq.on .pv-mk::after{width:5px;height:10px;border-radius:0;background:none;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:translateY(-1px) rotate(45deg)}
.pv-chips{display:flex;flex-wrap:wrap;gap:6px}
.pv-chips span{padding:5px 14px;border:1px solid #E5DCD9;border-radius:99px;font-size:13.5px;background:#FFFDFC;cursor:pointer}
.pv-chips span.on{border-color:var(--bean);background:var(--bean);color:#fff;font-weight:700}
.pv-imgs{display:grid;gap:8px}
.pv-imgs div{border:1px solid #EFE6E3;border-radius:10px;padding:6px;text-align:center;background:#FFFDFC;cursor:pointer}
.pv-imgs div.on{border:2px solid var(--bean);background:var(--blush);padding:5px}
.pv-imgs img,.pv-imgs .ph{width:100%;aspect-ratio:1;object-fit:contain;display:block;background:#F7F2F0;border-radius:6px}
.pv-imgs small{font-size:12px}
.pv-stars{display:flex;gap:6px}
.pv-stars .i{width:26px;height:26px;stroke:#E0B84C;fill:none}
.pv-scale{display:flex;gap:4px;flex-wrap:wrap}
.pv-scale span{min-width:30px;height:30px;border:1px solid #E5DCD9;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;background:#FFFDFC}
.pv-addr{display:grid;grid-template-columns:1fr 1fr 96px;gap:6px}
.pv-addr .full{grid-column:1/-1}
.pv-file{display:flex;align-items:center;gap:6px;height:44px;border:1.5px dashed #D9C6C1;border-radius:10px;justify-content:center;color:var(--bean);font-weight:700;font-size:14px}
.pv-file small{color:var(--bo-muted);font-weight:400;font-size:12px}
.pv-file .i{width:18px;height:18px}
.pv-ctext{max-height:84px;overflow:hidden;font-size:12.5px;color:#6b5b55;background:#FAF6F4;border-radius:8px;padding:8px 10px;margin-bottom:6px;white-space:pre-wrap}
.pv-prod{display:flex;justify-content:space-between;padding:8px 10px;border:1px solid #EFE6E3;border-radius:10px;font-size:14px}
.pv-empty{margin-top:8px;padding:16px;text-align:center;border:1.5px dashed #D9C6C1;border-radius:12px;color:#9C8F8B;font-size:13px}
.pv-submit{margin-top:18px;height:48px;border-radius:99px;background:var(--bean);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:16px;letter-spacing:.1em}
.pv-tools{position:absolute;right:-1px;bottom:-15px;display:flex;gap:4px;z-index:2}
.pv-q.on{margin-bottom:18px}
.pv-tb{width:30px;height:30px;border-radius:50%;border:1px solid var(--bo-border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4A403E;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.pv-tb .i{width:16px;height:16px}
.pv-tb:hover{border-color:var(--bean);color:var(--bean)}
.pv-tb.danger:hover{background:var(--bean);color:#fff}
.pv-foot{text-align:center;margin:10px 0 0;font-size:12px}
/* 右欄 */
.mk-set{background:var(--bo-surface);border:1px solid var(--bo-border);display:flex;flex-direction:column}
.rp-h{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--bo-border);position:sticky;top:0;background:var(--bo-surface);z-index:1}
.rp-h h3{font-size:16px;font-weight:800}
.rp-h .sp{flex:1}
.rp-h small{font-size:11.5px;color:var(--bo-muted)}
.rp-body{padding:4px 16px 18px}
.mk-set .fc-b{border-top:0}
.rp-body>label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:10px 0 0}
.rp-body>label .fi{margin-top:4px;color:var(--bo-text);font-weight:400}
.rp-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:14px;font-weight:700}
.fi.fi-sm{height:34px;width:auto;font-size:13.5px}
.rp-box{margin-top:14px;padding:10px 12px 12px;border:1px solid var(--bo-border);border-radius:10px;background:#FCFBFA}
.rp-box h4{font-size:13.5px;font-weight:800;margin-bottom:4px}
.ck{display:flex;align-items:flex-start;gap:8px;font-size:14px;margin-top:8px;cursor:pointer;line-height:1.4}
.ck input{width:16px;height:16px;margin-top:2px;accent-color:var(--bean);flex:none}
.ck-h{font-size:14px;margin-top:10px}
.nest{margin:4px 0 2px 24px}
.nest>label:not(.ck){display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin-top:8px}
.nest>label .fi{margin-top:4px;height:36px;font-weight:400;color:var(--bo-text)}
.nest .hint{display:block;margin:4px 0 0;font-size:12px}
.chips-row{display:flex;gap:8px;align-items:flex-start;margin-top:8px}
.chips-row .cl{font-size:13px;color:var(--bo-muted);font-weight:700;padding-top:5px;flex:none}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border-radius:99px;background:var(--blush);color:var(--bean-press,#8E1F23);font-size:12.5px;font-weight:700}
.chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 4px}
.chip-in.fi{height:28px;width:92px;font-size:12.5px;padding:0 8px;border-radius:99px}
.chip-add{width:26px;height:26px;border-radius:50%;border:1px dashed var(--bean);background:#fff;color:var(--bean);cursor:pointer;font-size:16px;line-height:1}
.rp-g{margin-top:12px;border:1px solid var(--bo-border);border-radius:10px;background:#fff}
.rp-g summary{padding:10px 12px;font-size:14px;font-weight:700;cursor:pointer;list-style:none;display:flex;align-items:center}
.rp-g summary::-webkit-details-marker{display:none}
.rp-g summary::after{content:"›";margin-left:auto;color:var(--bo-muted);transform:rotate(90deg);transition:transform .15s}
.rp-g[open] summary::after{transform:rotate(-90deg)}
.rp-gb{padding:0 12px 12px}
.rp-gb>label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:10px 0 0}
.rp-gb>label .fi{margin-top:4px;color:var(--bo-text);font-weight:400}
.rp-gb .swrow:first-child{border-top:0;margin-top:0}
.rp-gb>.b{margin-top:8px}
.swrow.flash,.flash{animation:flash 1.6s ease}
@keyframes flash{0%,60%{background:#FFF1C7}100%{background:transparent}}
.mk-set .rules label.grow{min-width:0;flex-basis:100%}
.mk-set .rules .row label{min-width:0;flex:1 1 130px}
.mk-set .rule .rr{gap:4px}
.mk-set .rule select,.mk-set .rule input{max-width:100%}
.rp-sec{margin-top:14px;padding:12px;border:1px solid #DDE5F2;border-radius:10px;background:#F7F9FD}
.rp-sec .lbl{font-size:13px;font-weight:700;color:#2D4E86;margin-bottom:8px}
.rp-sec .hint{display:block;margin:8px 0 0}
.rp-acts{padding-top:12px;border-top:1px solid var(--bo-border)}
.logic-wrap .logic{max-width:980px}
@media (max-width:1360px){.mk{grid-template-columns:262px minmax(0,1fr) 336px}.pal-grid{grid-template-columns:repeat(4,1fr)}.tile .tl{font-size:11px}.edh .sub{max-width:380px}}
.pv-para{white-space:pre-wrap;font-size:14px;line-height:1.7;color:#4A403E}
.pv-dimg{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:10px;background:#FAF6F4}
.pv-hr{border:0;border-top:1.5px solid #EADFDB;margin:4px 0}
/* ---- 第三輪：圖片輪播預覽、元件小選單、問答、抽獎、領取碼回覆 ---- */
.pv-car{position:relative}
.pv-car-t{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:10px;scrollbar-width:none}
.pv-car-t::-webkit-scrollbar{display:none}
.pv-car-t figure{flex:0 0 100%;scroll-snap-align:center;margin:0;position:relative;background:#FBF6F4}
.pv-car-t img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain}
.pv-car-t figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 10px 6px;font-size:12px;color:#fff;background:linear-gradient(transparent,rgba(40,24,22,.6))}
.pv-car-n{position:absolute;top:6px;right:8px;font-size:11px;background:rgba(0,0,0,.45);color:#fff;border-radius:9px;padding:1px 7px}
.pv-car-d{display:flex;justify-content:center;gap:5px;margin-top:6px}
.pv-car-d i{width:6px;height:6px;border-radius:50%;background:#E3D5D1}
.pv-car-d i.on{width:16px;border-radius:3px;background:var(--bean,#C8102E)}
.car-row .fi{flex:1;min-width:0}
#car-add{align-self:flex-start;margin-top:4px}
.tmenu{display:flex;flex-direction:column;gap:10px;min-width:320px}
.tmenu-i{display:flex;gap:12px;align-items:center;text-align:left;padding:12px 14px;border:1px solid var(--bo-border);border-radius:12px;background:#fff;cursor:pointer;font:inherit}
.tmenu-i:hover{border-color:var(--bean,#C8102E);background:#FFF7F5}
.tmenu-i .ti{width:36px;height:36px;border-radius:10px;background:#FCE9E7;display:flex;align-items:center;justify-content:center;flex:none}
.tmenu-i .pi{width:20px;height:20px}
.tmenu-i b{display:block;font-size:15px}
.tmenu-i small{display:block;color:var(--bo-muted);font-size:12.5px;margin-top:2px}
.quiz.on{border-color:#E9C46A;background:#FFFCF2}
.quiz-opts{display:flex;flex-direction:column;gap:4px}
.quiz-opts .chk.ok{font-weight:700;color:var(--ok)}
.hint.bad{color:var(--bad,#B3261E)}
.hint.ok{color:var(--ok,#1E7B4B)}
.pp-url-row{margin-top:8px}
#pp-url-msg{display:block;margin:6px 0 0}
.claim-texts{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:10px;border:1px dashed var(--bo-border);border-radius:10px}
.claim-texts textarea{min-height:52px}
.draw-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.draw-item{border:1px solid var(--bo-border);border-radius:10px;padding:8px 10px;background:#fff}
.draw-item ol{margin:4px 0 0;padding-left:20px;font-size:13px}
#otp-row{margin-top:12px;padding:10px 12px;border:1px solid var(--bo-border);border-radius:10px;background:#fff}
.tmenu-i .pi{fill:none;stroke:var(--bean,#C8102E);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* 表頭／表單寬度 */
.hdr-pick{display:flex;gap:10px;align-items:center;margin-top:10px}
.hdr-pick img{width:120px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--bo-border);background:#fff}
.hdr-empty{flex:1;font-size:12.5px;color:var(--bo-muted);border:1.5px dashed var(--bo-border);border-radius:8px;padding:14px 10px;text-align:center}
.hdr-act{display:flex;flex-direction:column;gap:6px}
.hdr-act label.b{cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.rp-gb .lbl{font-size:12.5px;color:var(--bo-muted);font-weight:700;margin:12px 0 4px}
.seg-btn{margin-top:4px}
.seg-btn button{flex:1;min-height:34px;padding:2px 8px;border:0;border-radius:8px;background:none;font-size:13px;color:#4A403E;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}
.seg-btn button small{font-size:11px;opacity:.75}
.seg-btn button.on{background:var(--bean);color:#fff;font-weight:700}
.wseg{margin-top:10px}
.pv-w{font-size:12px;color:var(--bo-muted);text-align:center;margin:-6px 0 8px;cursor:pointer}
.pv-w.scaled::after{content:"（預覽已等比例縮小）"}
.pv-phone{transition:none}
.pv-hero{margin:0 0 10px;border-radius:14px;overflow:hidden;cursor:pointer;background:#F3E8E4}
.pv-hero img{width:100%;height:auto;object-fit:contain;display:block}
.pv-banner .pv-logo{width:56px;height:56px;border-radius:12px;object-fit:contain;background:#fff;flex:none}
.pv-banner.has-hdr{min-height:72px}
/* 宣傳同意 */
.media-box{margin-top:12px;padding:10px 12px;border:1px solid var(--bo-border);border-radius:10px;background:#FFFAFB}
.media-box .row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.media-box .row b{font-size:13.5px}
.media-box label{display:block;font-size:12.5px;color:var(--bo-muted);font-weight:700;margin-top:8px}
/* 商品版型預覽 */
.pv-lay{display:inline-block;font-size:11.5px;font-weight:700;color:var(--bean);background:#FBE9E6;border-radius:999px;padding:1px 8px;margin-bottom:6px}
.pv-prod{align-items:center;gap:8px}
.pv-prod .ph,.pv-rcard .ph{width:34px;height:34px;border-radius:8px;background:#F3E8E4;flex:none}
.pv-prod span:nth-child(3){flex:1}
.pv-p1{border:1px solid #EFE6E3;border-radius:12px;padding:10px;background:#fff}
.pv-p1-img{height:110px;border-radius:10px;background:#F3E8E4;display:grid;place-items:center;color:#B9A8A3;font-size:12px;margin-bottom:8px}
.pv-p1 b{display:block;font-size:15px}
.pv-p1-q{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid #EFE6E3;font-size:13px}
.pv-rail{display:flex;gap:8px;overflow:hidden}
.pv-rcard{flex:none;width:44%;border:1px solid #EFE6E3;border-radius:10px;padding:8px;background:#fff;display:flex;flex-direction:column;gap:4px;font-size:13px}
.pv-rcard .ph{width:100%;height:60px}
/* 完成後轉址 */
.after-set{margin:12px 0;padding:12px;border:1px solid #eadfd9;border-radius:10px;background:#fffaf7;display:flex;flex-direction:column;gap:8px}
.after-set .fl{font-size:13px;color:#4A403E;margin-top:2px}
.after-set .seg-btn button b{font-weight:inherit}
.after-prev{display:flex;flex-direction:column;gap:4px}
.after-url{display:block;font-size:12px;word-break:break-all;background:#fff;border:1px dashed #d9c8c0;border-radius:6px;padding:6px 8px;color:#3a2a26}
.after-prev .err{margin-top:0}
.hint.warn{color:#a15c00}

/* ======================================================================
   2026-10-29 改版：Gemini 版型（暖灰＋紅豆紅、上方橫條、點狀畫布、手機框）
   左欄元件照 Claude 版（標題列、搜尋、可收合群組、兩欄磚塊、小技巧）
   ====================================================================== */
:root{--g-canvas:#F3F1EE;--g-panel:#fff;--g-subtle:#F9F8F6;--g-hover:#F2EFE9;--g-b1:#EAE6DF;--g-b2:#DCD6CD;--g-t1:#1C1917;--g-t2:#57534E;--g-t3:#8C857B;
  --g-sh-sm:0 2px 5px -1px rgba(28,25,23,.06),0 1px 3px -1px rgba(28,25,23,.04);--g-sh-md:0 6px 16px -3px rgba(28,25,23,.07),0 2px 6px -2px rgba(28,25,23,.04);
  --g-sh-phone:0 24px 48px -12px rgba(45,25,30,.14),0 4px 16px -2px rgba(28,25,23,.06),0 0 0 1px rgba(28,25,23,.06)}
body{background:var(--g-canvas);color:var(--g-t1)}
.app.app2{display:flex;flex-direction:column;height:100vh;grid-template-columns:none}
.app2 .main{flex:1;min-height:0;display:flex;flex-direction:column}
.app2 .content{flex:1;min-height:0;overflow:auto;padding:28px 40px 40px;max-width:1360px;width:100%;margin:0 auto}
.app2.ed-wide .content{max-width:none;margin:0}
/* 上方橫條 */
.tb{height:64px;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:0 20px;background:#fff;border-bottom:1px solid var(--g-b1);position:relative;z-index:30}
.tb-l,.tb-r{display:flex;align-items:center;gap:10px;min-width:0}
.tb-r{justify-content:flex-end}
.tb-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--g-t1);padding:4px 8px 4px 4px;border-radius:10px;flex:none}
.tb-brand:hover{background:var(--g-subtle)}
.tb-brand b{font-size:16px;font-weight:800;letter-spacing:.02em}
.tb-logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#C83E5B,var(--bean) 55%,#8D1E36);display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 6px rgba(168,40,67,.3),inset 0 1px 0 rgba(255,255,255,.25);flex:none}
.tb-logo .i{width:20px;height:20px;stroke-width:2}
.tb-logo.big{width:64px;height:64px;border-radius:18px}.tb-logo.big .i{width:38px;height:38px}
.ejia-pill{font-size:11px;font-weight:800;letter-spacing:.06em;padding:1px 6px;border-radius:5px;background:#FDF2F4;color:var(--bean);border:1px solid #F8D0D8}
.tb-slash{color:var(--g-b2);font-size:22px;font-weight:300}
.tb-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:16px;font-weight:800;color:var(--g-t1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
button.tb-title{border:0;background:none;font:inherit;font-size:16px;font-weight:800;cursor:pointer;padding:6px 8px;border-radius:8px}
button.tb-title b{overflow:hidden;text-overflow:ellipsis;max-width:260px}
button.tb-title .i{width:16px;height:16px;color:var(--g-t3)}
button.tb-title:hover{background:var(--g-subtle)}
.tb-l .st{flex:none}
.save-pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;background:#ECF7F0;color:#1E7A46;border:1px solid #CBE8D6;white-space:nowrap;flex:none}
.save-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.save-pill.busy{background:var(--g-subtle);color:var(--g-t2);border-color:var(--g-b1)}
.save-pill.busy .dot{animation:pulse 1s infinite}
.save-pill.warn{background:#FDF3DC;color:#8A5A00;border-color:#F0D58A}
@keyframes pulse{50%{opacity:.25}}
.tb-tabs{display:flex;gap:2px;background:var(--g-subtle);border:1px solid var(--g-b1);border-radius:12px;padding:3px}
.tb-tabs a{display:flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:9px;font-size:15px;font-weight:700;color:var(--g-t2);text-decoration:none;white-space:nowrap}
.tb-tabs a .i{width:18px;height:18px}
.tb-tabs a:hover{color:var(--g-t1);background:#fff}
.tb-tabs a.on{background:#fff;color:var(--bean);box-shadow:var(--g-sh-sm)}
.tb-n{font-size:12px;font-weight:800;padding:1px 7px;border-radius:999px;background:#FDF2F4;color:var(--bean)}
.tb .envbar{border:1px solid #F0D58A;border-radius:999px;padding:3px 12px;font-size:12.5px;white-space:nowrap}
.me{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 6px;border-radius:10px}
.me:hover{background:var(--g-subtle)}
.me .av{width:34px;height:34px;border-radius:50%;background:#FDF2F4;color:var(--bean);font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.me-t{display:flex;flex-direction:column;line-height:1.25}
.me-t b{font-size:14px}.me-t small{font-size:12px;color:var(--g-t3)}
/* 按鈕 */
.b{border-radius:10px;font-weight:700;gap:6px}
.b .i{width:18px;height:18px}
.b-pri{background:var(--bean);border-color:var(--bean);box-shadow:0 2px 6px rgba(168,40,67,.25)}
.b-pri:hover{background:var(--bean-press)}
.b-pri.idle{background:#fff;color:var(--ok);border-color:#CBE8D6;box-shadow:none}
.b-sec{background:#fff;border-color:var(--g-b2);color:var(--g-t1)}
.b-sec:hover{background:var(--g-subtle)}
.b-ghost{background:transparent;border:1px solid transparent;color:var(--g-t2);text-decoration:none;display:inline-flex;align-items:center;height:40px;padding:0 14px;cursor:pointer;font:inherit;font-weight:700}
.b-ghost:hover{background:var(--g-subtle);color:var(--g-t1);border-color:var(--g-b1)}
.b-ghost.b-sm{height:32px;padding:0 10px;font-size:13px}
.b-lg{height:48px;padding:0 22px;font-size:16px}
.tb-r .b{height:40px}
/* 一般頁 */
.app2 .h h1{font-size:28px;font-weight:800}
.app2 .h .sub{font-size:15px;color:var(--g-t2);margin-top:2px}
.app2 .card{border-color:var(--g-b1);border-radius:14px;box-shadow:var(--g-sh-sm)}
.list-tools{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.search.big{height:46px;min-width:360px;border-radius:12px;border-color:var(--g-b2);background:#fff}
.search.big input{font-size:16px}
.seg-pill{background:var(--g-subtle);border-color:var(--g-b1);border-radius:12px}
.seg-pill button{height:38px;font-size:15px;gap:6px}
.seg-pill button .n{font-size:12px;font-weight:800;padding:0 7px;border-radius:999px;background:rgba(0,0,0,.06)}
.seg-pill button.on{background:#fff;color:var(--bean);box-shadow:var(--g-sh-sm)}
.seg-pill button.on .n{background:#FDF2F4}
.list-tools .cnt{font-size:14px;color:var(--g-t3)}
#form-table th{font-size:14px;background:var(--g-subtle);color:var(--g-t2)}
#form-table td{font-size:15px;padding-top:14px;padding-bottom:14px}
#form-table .fname b{font-size:16px}
#form-table small.conv{display:block;font-size:12.5px;color:var(--g-t3)}
#form-table tr.is-arch td{opacity:.65}
#form-table td.acts{white-space:nowrap}
#form-table td.acts .b+.b{margin-left:6px}
.stats.s4{grid-template-columns:repeat(4,1fr)}
.stats.s5{grid-template-columns:repeat(5,1fr)}
.app2 .stat .k{font-size:15px}
.app2 .stat .v{font-size:32px}
.app2 .stat .d{font-size:13.5px}
/* 統計頁 */
.card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.card.pad h3{font-size:17px;font-weight:800;margin-bottom:10px}
.legend{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--g-t2)}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block;margin-left:8px}
.legend i.v,.chart .bars i.v{background:#F1A7B6}
.legend i.s,.chart .bars i.s{background:var(--bean)}
.chart{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;height:200px;align-items:end;padding-top:6px}
.chart .col{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.chart .bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--g-b1)}
.chart .bars i{width:42%;max-width:18px;min-height:2px;border-radius:4px 4px 0 0}
.chart small{font-size:11.5px;color:var(--g-t3)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;align-items:start}
.ch-list{display:flex;flex-direction:column;gap:16px}
.hbars{display:flex;flex-direction:column;gap:10px}
.hb{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:10px;font-size:14.5px}
.hb .hl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb .ht{height:12px;border-radius:6px;background:var(--g-subtle);overflow:hidden}
.hb .ht i{display:block;height:100%;background:var(--bean);border-radius:6px}
.hb b{font-variant-numeric:tabular-nums;font-size:14px}
/* 登入 */
.login2{display:grid;grid-template-columns:1.1fr 1fr;place-items:stretch;min-height:100vh;background:var(--g-canvas)}
.login-art{background:radial-gradient(circle at 20% 15%,#C83E5B 0,var(--bean) 45%,#7E1619 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding:48px}
.la-in{max-width:440px}
.la-in h2{font-size:40px;font-weight:900;margin:20px 0 8px;letter-spacing:.04em}
.la-in p{font-size:18px;opacity:.9}
.la-in ul{margin-top:28px;list-style:none;display:flex;flex-direction:column;gap:14px}
.la-in li{font-size:17px;padding-left:30px;position:relative}
.la-in li::before{content:"✓";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:13px}
.la-in .tb-logo.big{background:rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.login2 .login-card{align-self:center;justify-self:center;width:440px;padding:40px;border-radius:20px;box-shadow:var(--g-sh-md);border:1px solid var(--g-b1)}
.login2 .brand{display:flex;align-items:center;gap:10px;color:var(--g-t1)}
.login2 .brand b{font-size:20px;letter-spacing:.02em;font-weight:800}
.login2 h1{font-size:28px;margin:18px 0 14px}
.login2 label{font-size:15px;color:var(--g-t2)}
.login2 .fi{height:50px;font-size:17px;margin-top:6px}
.login2 .b{width:100%;margin-top:24px}
.login2 .hint{display:block;margin-top:14px;font-size:13.5px;color:var(--g-t3)}
/* 分享 */
.share2{display:flex;flex-direction:column;gap:16px}
.sh-best{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:18px;border:2px solid #CBE8D6;background:#F4FBF6;border-radius:16px}
.sh-qr{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.sh-qr img.qr{width:200px;height:200px;border-radius:12px;border:1px solid var(--g-b1);background:#fff;padding:6px}
.sh-qr .b{justify-content:center;font-size:13.5px}
.sh-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.sh-badge{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:12.5px;font-weight:800;color:#fff;background:var(--line-green);padding:2px 10px 2px 6px;border-radius:999px}
.sh-badge .i{width:16px;height:16px;fill:#fff;stroke:none}
.sh-main h3{font-size:20px;font-weight:800}
.sh-main p{font-size:14.5px;color:var(--g-t2)}
.sh-main .fi,.sh-other .fi{font-size:14px}
.sh-main .b{align-self:flex-start;height:44px}
.sh-other,.sh-src{padding:4px 2px}
.sh-other h3{font-size:16px;font-weight:800;margin-bottom:4px}
.sh-other .row{display:flex;gap:8px;margin-top:8px}
.sh-other .row .fi{flex:1}
.sh-src label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--g-t2)}
.modal{border-radius:18px}
/* ---------- 編輯器 ---------- */
.app2.ed-mk .content{padding:0;display:flex;flex-direction:column;overflow:hidden}
.app2.ed-mk #schema-errs{margin:8px 16px 0}
.app2.ed-mk .mk{flex:1;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr) 380px;gap:0}
.app2.ed-mk .mk>*{border-radius:0;border:0}
/* 左：元件（Claude 版型） */
.app2 .mk-pal{background:#fff;border-right:1px solid var(--g-b1);padding:0;display:flex;flex-direction:column;overflow:hidden}
.pal-head{display:flex;align-items:baseline;justify-content:space-between;padding:16px 16px 10px}
.pal-head b{font-size:16px;font-weight:800}
.pal-head small{font-size:12.5px;color:var(--g-t3)}
.pal-search{display:flex;align-items:center;gap:8px;margin:0 16px 8px;height:40px;padding:0 10px;border:1px solid var(--g-b2);border-radius:10px;background:var(--g-subtle)}
.pal-search:focus-within{border-color:var(--bean);box-shadow:var(--focus);background:#fff}
.pal-search .i{width:17px;height:17px;color:var(--g-t3)}
.pal-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:14.5px;outline:none}
.pal-search kbd{font:600 12px/1 var(--font-ui);padding:3px 7px;border:1px solid var(--g-b2);border-radius:5px;color:var(--g-t3);background:#fff}
.pal-body{flex:1;min-height:0;overflow:auto;padding:0 12px 12px}
.pal-g{margin-top:4px}
.pal-gh{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;font:inherit;cursor:pointer;padding:10px 4px 8px;color:var(--g-t2)}
.pal-gh .i{width:14px;height:14px;transform:rotate(90deg);transition:transform .15s}
.pal-g.closed .pal-gh .i{transform:none}
.pal-gt{font-size:13.5px;font-weight:800;color:var(--g-t2)}
.pal-tag{font-size:10.5px;font-weight:800;letter-spacing:.05em;padding:0 5px;border-radius:4px;background:#FDF2F4;color:var(--bean);border:1px solid #F8D0D8}
.pal-n{margin-left:auto;font-size:12.5px;color:var(--g-t3);font-variant-numeric:tabular-nums}
.app2 .pal-grid{grid-template-columns:1fr 1fr;gap:8px}
.app2 .tile{flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;min-height:46px;padding:6px 10px 6px 7px;border:1px solid var(--g-b1);border-radius:10px;background:#fff;color:var(--g-t1);text-align:left;transition:border-color .12s,box-shadow .12s,transform .12s}
.app2 .tile.wide{grid-column:1/-1}
.app2 .tile .ti,.app2 .pal-g.round .ti{width:32px;height:32px;border-radius:8px;background:var(--g-subtle);color:var(--g-t2);display:flex;align-items:center;justify-content:center;flex:none}
.app2 .tile .pi,.app2 .pal-g.round .pi{width:18px;height:18px}
.app2 .tile .tl{font-size:14px;text-align:left;font-weight:600}
.app2 .tile:hover{border-color:#F1A7B6;background:#FFFAFB;box-shadow:var(--g-sh-sm);transform:translateY(-1px)}
.app2 .tile:hover .ti{background:#FDF2F4;color:var(--bean)}
.app2 .pal-g[data-g="櫻桃專屬"] .ti{background:#FDF2F4;color:var(--bean)}
.pal-none{padding:20px 6px;color:var(--g-t3);font-size:14px}
.pal-tip{display:flex;gap:8px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--g-b1);font-size:12.5px;color:var(--g-t2);background:var(--g-subtle);line-height:1.5}
.pal-tip .i{width:16px;height:16px;color:var(--bean);margin-top:1px}
/* 中：點狀畫布＋裝置框 */
.app2 .mk-pv{background:var(--g-canvas) radial-gradient(rgba(140,133,123,.28) 1px,transparent 1px) 0 0/18px 18px;padding:0 0 12px;position:relative;overflow:auto}
.pv-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 16px 10px}
.pv-modes{display:flex;gap:3px;padding:4px;background:#fff;border:1px solid var(--g-b1);border-radius:999px;box-shadow:var(--g-sh-md)}
.pv-modes button{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;border:0;border-radius:999px;background:none;font:inherit;font-size:13.5px;font-weight:700;color:var(--g-t2);cursor:pointer}
.pv-modes button .i{width:16px;height:16px}
.pv-modes button small{font-size:11.5px;opacity:.75;font-weight:600}
.pv-modes button.on{background:var(--g-t1);color:#fff}
.pv-modes button[data-pv="line"] .i{fill:currentColor;stroke:none}
.pv-modes button[data-pv="line"].on{background:var(--line-green)}
.pv-meta{position:absolute;right:18px;font-size:12.5px;color:var(--g-t3);background:rgba(255,255,255,.8);padding:3px 10px;border-radius:999px}
.pv-stage{display:flex;justify-content:center;padding:6px 16px 8px}
.pv-device{width:406px;flex:none;background:#fff;border-radius:44px;border:8px solid #1C1917;box-shadow:var(--g-sh-phone);overflow:hidden;position:relative}
.pv-device::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:110px;height:26px;border-radius:14px;background:#1C1917;z-index:3}
.pv-sbar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:6px 26px 0;font-size:13px;color:var(--g-t1)}
.pv-sbar span{font-size:11.5px;font-weight:700}
.pv-urlbar{display:flex;align-items:center;justify-content:center;gap:5px;height:34px;margin:0 12px 6px;border-radius:10px;background:var(--g-subtle);font-size:12.5px;color:var(--g-t2)}
.pv-urlbar .i{width:13px;height:13px}
.pv-linebar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;height:44px;padding:0 14px;border-bottom:1px solid var(--g-b1);font-size:13.5px}
.pv-linebar b{text-align:center;font-size:14px}
.pv-linebar .x{color:var(--g-t2);font-size:13px}
.pv-linebar .m{color:var(--g-t2);font-weight:900}
.pv-device .pv-phone{max-width:none;width:100%;border-radius:0;box-shadow:none;margin:0;background:#FBF8F6;min-height:640px}
.pv-browser{flex:none;background:#fff;border-radius:12px;border:1px solid var(--g-b2);box-shadow:var(--g-sh-phone);overflow:hidden}
.pv-bbar{display:flex;align-items:center;gap:6px;height:38px;padding:0 12px;background:var(--g-subtle);border-bottom:1px solid var(--g-b1)}
.pv-bbar i{width:11px;height:11px;border-radius:50%;background:#E4DED6}
.pv-bbar i:first-child{background:#F2A49C}
.pv-bbar span{margin-left:10px;flex:1;height:26px;display:flex;align-items:center;padding:0 12px;border-radius:8px;background:#fff;font-size:12.5px;color:var(--g-t2)}
.pv-browser .pv-w{margin:8px 0 0;font-size:12.5px}
.pv-browser .pv-phone{margin:8px auto 24px;box-shadow:none;background:#FBF8F6}
.pv-foot{text-align:center;font-size:12.5px;color:var(--g-t3)}
/* 選取題目：深色浮動工具列（有文字） */
.pv-q.on{border-color:var(--bean);box-shadow:0 12px 28px -6px rgba(168,40,67,.16),0 0 0 2px rgba(168,40,67,.18)}
.app2 .pv-tools{right:8px;top:-17px;bottom:auto;gap:2px;background:var(--g-t1);border-radius:10px;padding:3px;box-shadow:var(--g-sh-md)}
.pv-tt{display:flex;align-items:center;padding:0 8px 0 6px;font-size:12px;font-weight:800;color:#fff;background:var(--bean);border-radius:7px;margin-right:2px}
.app2 .pv-tb{width:auto;height:28px;border-radius:7px;border:0;background:none;color:#E7E5E4;gap:4px;padding:0 7px;font:inherit;font-size:12px;font-weight:600;box-shadow:none}
.app2 .pv-tb .i{width:14px;height:14px}
.app2 .pv-tb:hover{background:rgba(255,255,255,.12);color:#fff}
.app2 .pv-tb.danger:hover{background:var(--bean);color:#fff}
/* 右：題目設定／整體設定 */
.app2 .mk-set{background:#fff;border-left:1px solid var(--g-b1)}
.rp-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--g-b1)}
.rp-tabs button{height:40px;border:0;border-radius:10px;background:var(--g-subtle);font:inherit;font-size:15px;font-weight:800;color:var(--g-t2);cursor:pointer}
.rp-tabs button.on{background:#FDF2F4;color:var(--bean);box-shadow:inset 0 0 0 1px #F8D0D8}
.rp-sel{display:flex;align-items:center;gap:12px;margin:14px 16px 4px;padding:12px 14px;border:1px solid #F8D0D8;background:#FDF2F4;border-radius:12px}
.rp-sel .ti{width:40px;height:40px;border-radius:10px;background:var(--bean);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.rp-sel .pi{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rp-sel-t{display:flex;flex-direction:column;min-width:0;flex:1}
.rp-sel-t small{font-size:12px;color:var(--g-t3);font-weight:700}
.rp-sel-t b{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-sel .mono{font-size:11px;color:var(--g-t3);background:#fff;border:1px solid var(--g-b1);padding:2px 6px;border-radius:6px}
.rp-empty{margin:40px 24px;text-align:center;color:var(--g-t2);display:flex;flex-direction:column;align-items:center;gap:8px}
.rp-empty .i{width:36px;height:36px;color:var(--g-b2)}
.rp-empty b{font-size:17px;color:var(--g-t1)}
.rp-empty p{font-size:14.5px}
.app2 .rp-body>label,.app2 .rp-gb>label{font-size:14px;color:var(--g-t2)}
.app2 .mk-set .fi{font-size:15px;border-color:var(--g-b2);border-radius:9px}
.app2 .rp-g{border-color:var(--g-b1);border-radius:12px}
.app2 .rp-g summary{font-size:15px;padding:12px 14px}
.app2 .rp-box{border-color:var(--g-b1);background:var(--g-subtle);border-radius:12px}
.app2 .mk-set .rules .lbl{font-size:13.5px}
details.adv{margin-top:10px;border:1px dashed var(--g-b2);border-radius:10px;padding:6px 10px}
details.adv summary{font-size:13.5px;font-weight:700;color:var(--g-t2);cursor:pointer}
details.adv[open] summary{margin-bottom:6px}
.demo-card{margin-top:12px;padding:10px 12px;border:1px solid #CBE8D6;background:#F4FBF6;border-radius:12px;display:flex;flex-direction:column;gap:6px}
.demo-card b{font-size:14px}
.demo{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.demo code{font-size:13.5px;padding:3px 8px;border-radius:6px;background:#fff;border:1px solid var(--g-b1)}
.demo code.ok{color:var(--ok);font-weight:800;border-color:#CBE8D6}
.demo .arr{color:var(--g-t3);font-weight:800}
.demo-card.dedupe{border-color:#F8D0D8;background:#FDF2F4}
.demo-card.dedupe small{font-size:13px;color:var(--g-t2)}
.demo-card .say{font-size:14.5px;font-weight:700;color:var(--bean)}
.after-say{font-size:15px;line-height:1.6;font-weight:600;color:var(--g-t1);margin-top:4px}
.after-prev{margin-top:12px;padding:10px 12px;border-radius:12px;background:#F4FBF6;border:1px solid #CBE8D6}
.after-prev>small{font-size:12.5px;font-weight:800;color:var(--ok)}
img.after-qr{display:block;width:120px;height:120px;margin:8px 0;border:1px solid var(--g-b1);border-radius:8px;background:#fff;padding:4px}
img.after-qr[hidden]{display:none}
.app2 .after-url{display:block;word-break:break-all;font-size:12px}
/* 改版修正（截圖檢查）*/
.pv-top{flex-wrap:wrap;row-gap:6px}
.pv-modes{flex:none}
.pv-modes button{white-space:nowrap;flex:none;width:auto;min-width:0}
.pv-meta{position:static;flex-basis:100%;text-align:center;background:none;padding:0}
button.tb-title{flex:0 1 auto;min-width:120px}
button.tb-title b{min-width:0}
/* ---------- 2026-10-29 晚：設定分頁、編輯器截止收件、窄螢幕（1440／1280／1024） ---------- */
body{min-width:1000px}
.app2 .card:has(>table){overflow-x:auto}
.tb{grid-template-columns:minmax(0,1fr) auto auto}
@media (min-width:1600px){.tb{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}
.save-pill.off{background:var(--g-subtle);color:var(--g-t2);border-color:var(--g-b2)}
.save-pill span{overflow:hidden;text-overflow:ellipsis}
.st-btn .i{color:var(--g-t2)}
.st.big{height:30px;font-size:14.5px;padding:0 12px}
/* 設定分頁 */
.app2.ed-set .content{padding:0}
.set-wrap{display:grid;grid-template-columns:232px minmax(0,1fr);gap:28px;max-width:1240px;margin:0 auto;padding:28px 32px 120px;align-items:start}
.set-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--g-b1);border-radius:14px;padding:10px;box-shadow:var(--g-sh-sm)}
.set-nav-t{font-size:13px;font-weight:800;color:var(--g-t3);padding:4px 10px 8px;letter-spacing:.04em}
.set-nav a{display:block;padding:9px 12px;border-radius:9px;font-size:15px;font-weight:700;color:var(--g-t2);text-decoration:none;line-height:1.35}
.set-nav a:hover{background:var(--g-subtle);color:var(--g-t1)}
.set-nav a.on{background:#FDF2F4;color:var(--bean);box-shadow:inset 3px 0 0 var(--bean)}
.set-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.set-top h1{font-size:28px;font-weight:800}
.set-top p{font-size:15.5px;color:var(--g-t2);margin-top:4px}
.app2 .set-card{padding:22px 26px 24px;scroll-margin-top:18px;font-size:15.5px}
.set-h{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.set-h h3{font-size:19px;font-weight:800;display:flex;align-items:center;gap:8px}
.set-n{font-size:13px;font-weight:800;padding:1px 9px;border-radius:999px;background:#FDF2F4;color:var(--bean)}
.set-desc{font-size:15px;color:var(--g-t2);line-height:1.65;margin:2px 0 14px;max-width:820px}
.set-card .rp-gb{padding:0;max-width:820px}
.set-card .rp-gb>label,.set-card .nest>label:not(.ck),.set-card .outc label{font-size:15px;color:var(--g-t2);margin-top:14px}
.set-card .fi{height:44px;font-size:16px;border-color:var(--g-b2);border-radius:10px}
.set-card textarea.fi{height:auto;min-height:72px;padding:10px 12px}
.set-card .ck{font-size:15.5px;margin-top:10px}
.set-card .ck input{width:19px;height:19px;margin-top:2px}
.set-card .swrow{font-size:15.5px;padding:12px 0}
.set-card .swrow small{font-size:14px}
.set-card .sw2{width:46px;height:26px;border-radius:13px}.set-card .sw2::after{width:20px;height:20px}.set-card .sw2.on::after{left:23px}
.set-card .hint,.set-card small.hint{font-size:14px}
.set-card .rp-line{font-size:15.5px}
.set-card .rp-box{background:var(--g-subtle);border-color:var(--g-b1);border-radius:12px;padding:14px 16px 16px}
.set-card .rp-box h4{font-size:16px}
.set-card .logic{max-width:none}
.set-card .rule{background:var(--g-subtle);border-color:var(--g-b1);border-radius:12px;padding:14px 16px;font-size:15px}
.set-card .rule .fi{height:40px;font-size:15px;width:auto;max-width:100%}
.set-card .rule .rn{font-size:15px;color:var(--bean);font-weight:800}
.set-card .rule .kw{font-size:15px}
.set-card .rsum{font-size:14.5px;color:var(--g-t2)}
.set-card .outgrid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.set-card .outc{border-radius:12px;border:1px solid var(--g-b1);border-left:5px solid var(--line-green);box-shadow:none}
.set-card .outc.reject{border-left-color:#9A8F8C}
.set-card .emptyrow{padding:22px;border:1.5px dashed var(--g-b2);border-radius:12px;color:var(--g-t3);font-size:15px;height:auto}
.set-card.flash{animation:flash 1.6s ease}
/* 窄螢幕：狀態永遠看得到，改用縮短文字與只留圖示 */
@media (max-width:1499px){
  .tb{gap:12px;padding:0 14px}
  .tb-brand>.ejia-pill{display:none}
  .tb-tabs a{padding:0 12px}
  .app-form #preview-btn .bl{display:none}
  .app-form #preview-btn{padding:0 11px}
  .tb .envbar{padding:3px 9px}
}
@media (max-width:1440px){
  .app2.ed-mk .mk{grid-template-columns:272px minmax(0,1fr) 352px}
  .tb .envbar{font-size:0;padding:3px 9px}
  .tb .envbar::after{content:'測試';font-size:12.5px}
}
@media (max-width:1300px){
  .app-form #save-btn .bl{display:none}
  .app-form #save-btn{padding:0 11px}
  .app-form #discard-btn .bl{display:none}
  .app-form #discard-btn{padding:0 11px}
  .app-form .tb-brand>b{display:none}
  .app-form #share-btn .bl{display:none}
  .app-form #share-btn{padding:0 11px}
  button.tb-title b{max-width:200px}
  .tb-tabs a{padding:0 11px;gap:6px}
  .app2.ed-mk .mk{grid-template-columns:240px minmax(0,1fr) 336px}
  .app2 .pal-grid{grid-template-columns:1fr}
  .pal-head small{display:none}
  .app2 .content{padding:24px 24px 32px}
  .set-wrap{grid-template-columns:200px minmax(0,1fr);gap:20px;padding:22px 22px 100px}
  .search.big{min-width:280px}
}
@media (max-width:1180px){
  .tb{gap:8px;padding:0 10px}
  .tb-slash{display:none}
  button.tb-title{padding:6px 4px;min-width:90px}
  button.tb-title .i{display:none}
  .save-pill{max-width:150px;padding:0 10px}
  .tb-tabs a{padding:0 9px;font-size:14.5px}
  .app-form .tb-tabs a .i{display:none}
  .app2.ed-mk .mk{grid-template-columns:216px minmax(0,1fr) 316px}
  .pv-device{width:392px}
  .app2 .content{padding:20px 18px 28px}
  .stats.s5{gap:12px}
  .stats.s5 .stat{padding:14px 16px}
  .app2 .stats.s5 .stat .v{font-size:26px}
  .stats.s4{grid-template-columns:repeat(2,1fr)}
  .grid2{grid-template-columns:1fr}
  .list-tools{flex-wrap:wrap}
  .search.big{min-width:0;flex:1 1 100%}
  .set-wrap{grid-template-columns:1fr}
  .set-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:4px;padding:8px}
  .set-nav-t{display:none}
  .set-nav a{padding:6px 10px;font-size:14px}
  .set-card .outgrid{grid-template-columns:1fr}
}
/* 編輯器預覽＝公開表單同款 Gemini 漸層主視覺 */
.pv-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,#8F1D35 0%,#B8334E 52%,#DF6C7E 100%);border-radius:16px;box-shadow:0 8px 20px -10px rgba(141,30,54,.45)}
.pv-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 18%,rgba(255,255,255,.22),transparent 55%);pointer-events:none}
.pv-banner b{text-shadow:0 2px 6px rgba(60,8,20,.25)}
/* 窄螢幕：表格可左右捲，最後一欄（編輯／處理）固定在右邊，不會被切掉 */
@media (max-width:1300px){
  .app2 .card:has(>table) table tr>*:last-child{position:sticky;right:0;z-index:1;background:#fff;box-shadow:-10px 0 12px -10px rgba(28,25,23,.18)}
  .app2 .card:has(>table) table thead tr>*:last-child{background:var(--g-subtle,#FAF8F5)}
}

/* 儲存（暫存）按鈕：沒有新變更時淡一點，但永遠看得到 */
#save-btn.idle{opacity:.72}
#discard-btn[hidden]{display:none}
#discard-btn{color:var(--g-t2)}
/* 編輯器工具列：多了「儲存／捨棄變更」後，右側按鈕保留完整寬度，左側（名稱、狀態）讓位，不會壓到中間分頁 */
.app-form .tb{grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr)}
@media (max-width:1520px){
  .app-form .tb-brand>b,.app-form .tb-brand .ejia-pill{display:none}
  .app-form #share-btn .bl,.app-form #toggle-open .bl{display:none}
  .app-form #share-btn,.app-form #toggle-open{padding:0 11px}
  .app-form button.tb-title{min-width:72px}
}
@media (max-width:1400px){
  .app-form .tb-tabs a .i{display:none}
}
@media (max-width:1180px){
  .app-form .save-pill{max-width:none;padding:0 9px;font-size:12.5px}
  .app-form .tb-r{gap:6px}
  .app-form button.tb-title{min-width:64px}
  .app-form #save{padding:0 12px}
}
/* 小櫻桃分頁 */
.app2.ed-xyt .content{padding:0}
.xyt-wrap{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:32px;max-width:1280px;margin:0 auto;padding:28px 32px 120px;align-items:start}
.xyt-main .lbl{font-size:15px;color:var(--g-t2);font-weight:700;margin:16px 0 6px}
.xyt-main .set-h small{font-size:14px;color:var(--g-t3)}
.xyt-vars{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px}
.xyt-vars small{font-size:13px;color:var(--g-t3)}
.xyt-var.chip-add{width:auto;height:28px;border-radius:999px;padding:0 10px;font-size:13px;border-style:solid;border-color:#F0D4DA;background:#FDF2F4;font-weight:700}
.xyt-demo-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #F0ECEA}
.xyt-demo-row small{display:block;color:var(--g-t3);font-size:14px}
.xyt-rule{display:flex;gap:18px;flex-wrap:wrap}
.xyt-rule label{display:flex;align-items:center;gap:8px;font-size:15px}
.xyt-rule .fi{width:72px;text-align:center}
.xyt-faq{border:1px solid var(--g-b1);border-radius:12px;padding:12px 14px;margin-top:12px;background:#FFFCFB}
.xyt-faq-h{display:flex;align-items:center;gap:10px}
.xyt-faq-h b{color:var(--bean);font-weight:800;min-width:30px}
.xyt-faq-h .fi{flex:1}
.xyt-faq label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--g-t2);margin-top:10px}
.xyt-main .row{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}
.xyt-pv{position:sticky;top:18px;display:flex;flex-direction:column;gap:12px;align-items:center}
.xyt-pv-bar{display:flex;flex-direction:column;gap:8px;width:100%}
.xyt-pv-bar .seg-btn{margin:0}
.xyt-phone{position:relative;width:390px;height:760px;border-radius:44px;border:10px solid #2A2220;background:#fff;box-shadow:0 18px 48px rgba(60,20,28,.22);overflow:hidden}
.xyt-phone iframe{width:100%;height:100%;border:0;display:block}
.xyt-phone.off iframe{filter:grayscale(.6) opacity(.45)}
.xyt-off{position:absolute;inset:auto 20px 40px;background:#fff;border-radius:14px;padding:14px 16px;box-shadow:var(--g-sh-sm);text-align:center}
.xyt-off small{display:block;color:var(--g-t3);margin-top:4px}
.xyt-demo p{font-size:15px;line-height:1.7;margin-bottom:12px}
.xyt-demo .row{display:flex;gap:8px}
.xyt-demo .fi{flex:1}
#xyq-table .xyq-q{max-width:440px;font-weight:600}
@media (max-width:1280px){.xyt-wrap{grid-template-columns:minmax(0,1fr) 390px}.xyt-phone{width:370px}}
/* 多了「小櫻桃」分頁：窄螢幕分頁再緊一點，確保「捨棄變更」出現時也放得下 */
@media (max-width:1180px){
  .app-form .tb-tabs a{padding:0 7px;font-size:14px}
  .app-form .tb-tabs{padding:2px}
  .app-form .tb{gap:6px}
}
@media (max-width:1080px){
  .app-form .tb-tabs a{padding:0 6px;font-size:13.5px}
  .app-form .save-pill{font-size:12px;padding:0 7px}
}
#xyq-table a{color:var(--bean);font-weight:700;text-decoration:none}#xyq-table a:hover{text-decoration:underline}
/* AI 客服（GPT-6 Luna） */
.xyt-ai-nums{display:flex;gap:16px;flex-wrap:wrap}
.xyt-ai-num{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink2,#555)}
.xyt-ai-num span{display:flex;align-items:center;gap:6px;font-size:14px}
.xyt-ai-num .fi{width:96px;text-align:center}
.xyt-ai-stats{display:flex;flex-direction:column;gap:12px}
.xyt-ai-chips{display:flex;flex-wrap:wrap;gap:8px}
.xyt-ai-chip{font-size:13px;padding:4px 10px;border-radius:999px;background:#f3f1ee;color:#7a6a5a;border:1px solid #e6dfd6}
.xyt-ai-chip.on{background:#eef7ef;color:#2f6b3a;border-color:#cfe6d3}
.xyt-ai-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.xyt-ai-stat{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #eee4dc;border-radius:12px;background:#fffaf7}
.xyt-ai-stat small{color:#8a7b70}
.xyt-ai-stat b{font-size:18px}
.xyt-ai-stat span{font-size:13px;color:#6b5f57}
.xyt-ai-stat em{font-style:normal;font-weight:700;color:#b4233c}
.xyt-ai-log{width:100%;border-collapse:collapse;font-size:13px}
.xyt-ai-log th,.xyt-ai-log td{text-align:left;padding:6px 8px;border-bottom:1px solid #f0e8e2}
.xyt-ai-log th{color:#8a7b70;font-weight:600}
@media (max-width:720px){.xyt-ai-grid{grid-template-columns:1fr}}
/* 舊客人服務歷史 */
.hist-basis{max-width:280px;margin-top:2px}
.hist-conf-low{color:var(--warn)}
.tag.hist-note{background:#FCEBEA;color:#9B2C2C}
.hist-detail .lbl{margin-top:12px}
.hist-meta{line-height:1.7}
.hist-items{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}
.hist-item{border:1px solid var(--line,#eee);border-radius:10px;padding:8px 10px}
.hist-q{font-weight:600}
.hist-a{color:#5E5452}
.hist-access{margin-top:12px}

/* 2026-11-01：新增表單的小櫻桃勾選、表單層級權限 */
.new-xyt { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid var(--line, #eadfe2); border-radius: 12px; background: #fff8f9; margin-bottom: 14px; }
.acc-table { width: 100%; border-collapse: collapse; }
.acc-table th, .acc-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line, #eee); vertical-align: middle; font-size: 14px; }
.acc-table td b { display: block; }
.acc-table .acc-em { color: #8a7a7f; }
.acc-table tr.off td { color: #a89ca0; }
.acc-table select.fi { min-width: 150px; }
.acc-ck { white-space: nowrap; }
.acc-log { margin: 4px 0 0; padding-left: 18px; font-size: 13px; color: #5d5055; display: grid; gap: 2px; }
.acc-q { max-width: 320px; margin-bottom: 8px; }
.acc-scroll { max-height: 460px; overflow: auto; border: 1px solid var(--line, #eee); border-radius: 10px; }
.acc-scroll thead th { position: sticky; top: 0; background: #fff; z-index: 1; }
.acc-table .acc-em { display: block; font-size: 12px; word-break: break-all; }
.acc-table select.fi { min-width: 0; width: 100%; max-width: 170px; }
/* 表單網址代稱（<網域>/<slug>） */
.slug-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.slug-row>.mono{color:var(--ink-2,#6b5b5f);white-space:nowrap}
.slug-row>.fi{flex:1;min-width:0}
.new-slug{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.new-slug .err,#share-slug-msg{color:#A82843}
.sh-slug{margin-bottom:14px}

/* 舊資料查詢（MikeCRM） */
.lg-search{display:flex;gap:8px;margin-bottom:14px}.lg-search .fi{flex:1;max-width:560px}
.lg-row{cursor:pointer}.lg-row td.mono{white-space:pre;font-size:13px}.lg-count{margin:0 0 8px}
.lg-card .lg-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.lg-card h2{margin:0 0 2px;font-size:20px}.lg-card .sp{flex:1}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 18px}.lg-kv .lbl{font-size:12.5px;color:var(--muted,#777);margin-bottom:3px}
.tag.lg-alt{opacity:.75}
.lg-tlh{margin:18px 0 8px;font-size:16px}.lg-tl{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.lg-entry{background:#fff;border:1px solid var(--line,#e6e6e6);border-left:4px solid var(--pri,#C8102E);border-radius:10px;padding:10px 14px}.lg-entry.lg-contact{border-left-color:#8A6D00}
.lg-eh{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.lg-qa{display:grid;grid-template-columns:minmax(120px,260px) 1fr;gap:4px 14px;margin:0;font-size:14px}.lg-qa dt{color:var(--muted,#666)}.lg-qa dd{margin:0;white-space:pre-wrap;word-break:break-word}
.lg-order{margin-top:8px;font-size:13px}

/* ===== 2026-11-04 表單頁：加寬、不左右捲動（1280–1920px）、置頂、編輯者、批次操作 ===== */
.app2 .content{max-width:1840px;padding-left:32px;padding-right:32px}
#form-table,#subs{table-layout:fixed;width:100%}
#form-table td,#subs td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;height:auto;padding-top:12px;padding-bottom:12px;vertical-align:middle}
#form-table th,#subs th{white-space:normal;line-height:1.3;padding-top:8px;padding-bottom:8px;height:auto}
#form-table th,#form-table td{padding-left:10px;padding-right:10px}
#form-table col.c-pin{width:44px} #form-table col.c-st{width:118px} #form-table col.c-ed{width:180px} #form-table col.c-n{width:104px}
#form-table col.c-v{width:96px} #form-table col.c-t{width:112px} #form-table col.c-url{width:96px} #form-table col.c-act{width:224px}
#form-table td.acts{white-space:normal}
#form-table td.acts .b{margin:3px 4px 3px 0}
#form-table td.acts .b+.b{margin-left:0}
#form-table td.pincell{padding-left:8px;padding-right:0;text-align:center}
.pinbtn{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:#C9C2B8;display:inline-grid;place-items:center;cursor:pointer}
.pinbtn svg{width:18px;height:18px}
.pinbtn:hover:not(:disabled){background:var(--g-hover);color:var(--g-t2)}
.pinbtn.on{color:var(--bean);background:#FDF2F4;border-color:#F6D5DC}
.pinbtn:disabled{cursor:default;opacity:.5}
#form-table tr.is-pin td{background:#FFFBFC}
#form-table td.stcell .sched{display:block;margin-top:4px;font-size:12px;color:var(--g-t3)}
#form-table td.stcell .sched.off{color:#B4472F}
#form-table td.editors .ed-last{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px}
#form-table td.editors small{display:block;font-size:12px;color:var(--g-t3);margin-top:3px;line-height:1.4}
.av.sm{width:22px;height:22px;font-size:11px}
.rcv-start{background:#2F8F5B;border-color:#2F8F5B}
@media (min-width:1600px){#form-table col.c-act{width:340px} #form-table col.c-ed{width:220px} #form-table col.c-t{width:150px}}
@media (max-width:1360px){#form-table col.c-ed{width:150px} #form-table col.c-act{width:196px} #form-table td{font-size:14px} #form-table .fname b{font-size:15px}}

/* 填答資料 */
#subs th,#subs td{padding-left:8px;padding-right:8px;font-size:14px}
#subs th.ckcell,#subs td.ckcell{width:40px;text-align:center;padding-left:6px;padding-right:0;cursor:pointer}
#subs th:nth-child(2){width:66px} #subs th:nth-child(3){width:104px} #subs th:nth-child(5){width:120px} #subs th:nth-child(6){width:118px}
#subs th:nth-child(8){width:62px} #subs th:nth-child(9){width:96px} #subs th:last-child{width:150px}
#subs input[type=checkbox],#sel-all{width:18px;height:18px;accent-color:var(--bean);cursor:pointer}
#subs tr.sel td{background:#FDF4F1}
#subs tr.is-del td{opacity:.7}
#subs small.edited{display:inline-block;margin-left:4px;font-size:11.5px;color:#8A5A00;background:#FFF5DB;border-radius:6px;padding:0 6px}
#subs td.tm small.edited{display:block;width:max-content;margin:3px 0 0}
#subs td.stnote .note1{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--g-t3);margin-top:3px}
#sub-filter button .n{font-size:11.5px;margin-left:5px;opacity:.7}
#sub-filter button.trash{margin-left:6px;border-left:1px solid var(--bo-border);border-radius:0 8px 8px 0;gap:4px;display:inline-flex;align-items:center}
#sub-filter button.trash svg{width:15px;height:15px}
.toolbar .cnt{font-size:13.5px;color:var(--g-t3)}
.bulkbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-height:46px;padding:6px 14px;margin-bottom:10px;border-radius:12px;border:1px dashed var(--bo-border);background:transparent;font-size:13.5px}
.bulkbar.on{border:1px solid #F1C9D2;border-style:solid;background:#FFF6F8;box-shadow:var(--g-sh-sm)}
.bulkbar .sp{flex:1}
.bulkbar .bb-g{display:inline-flex;align-items:center;gap:6px}
.bulkbar .bb-g .st{cursor:pointer;border:1px solid transparent}
.bulkbar .bb-g .st:hover{border-color:currentColor}
.b.danger{color:#B4472F}
.b.danger:hover{background:#FCEDEA}
.dw-f{display:flex;align-items:center;gap:10px;justify-content:space-between}
.editans .edf{display:flex;flex-direction:column;gap:6px}
.editans .edf>span{font-weight:600;font-size:14px}
.editans .req{color:var(--bean)}
.editans .ckgrid{display:flex;flex-wrap:wrap;gap:6px 14px}
.editans .err{color:#B4472F;min-height:0}
.editans .addr{display:flex;gap:6px;flex-wrap:wrap}
/* 分享預覽 */
.sh-og .og-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.og-card{border:1px solid var(--g-b1);border-radius:12px;overflow:hidden;background:#fff}
.og-card img{display:block;width:100%;aspect-ratio:1.91/1;object-fit:cover;background:var(--g-subtle)}
.og-card .og-ext{aspect-ratio:1.91/1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:var(--g-subtle);color:var(--g-t3);font-size:13px;padding:10px;text-align:center;word-break:break-all}
.og-card .og-t{padding:10px 12px}
.og-card .og-t small{color:var(--g-t3);font-size:11.5px}
.og-card .og-t b{display:block;font-size:14.5px;line-height:1.35;margin:2px 0}
.og-card .og-t p{margin:0;font-size:12.5px;color:var(--g-t2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-og label.b input{display:none}
@media (max-width:760px){.sh-og .og-grid{grid-template-columns:1fr}}
/* 官網會員狀態 */
.lg-member{padding:16px 20px;margin-top:14px}
.lg-member .lg-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.lg-member h3{margin:0;font-size:16px}
.mb-res .mb-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mb-res .mb-tier{font-size:15px}
.mb-res .mb-kv{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:4px 12px;margin:8px 0;font-size:13.5px}
.mb-res .mb-kv span{color:var(--g-t3)}
#sim-table td{white-space:normal}
#sim-table td.mb-cell{min-width:280px}
.sim-badge{font-weight:800}
/* 動作欄：1600px 以下「複製／封存」只留圖示（滑過有說明），讓一列放得下不換行 */
#form-table td.acts{white-space:nowrap}
#form-table col.c-act{width:268px}
@media (max-width:1599px){#form-table td.acts .ib .bl{display:none} #form-table td.acts .ib{padding-left:9px;padding-right:9px}}
@media (min-width:1600px){#form-table col.c-act{width:360px}}
@media (max-width:1360px){#form-table col.c-act{width:262px} #form-table col.c-ed{width:136px} #form-table col.c-t{width:96px} #form-table col.c-st{width:100px} #form-table col.c-n{width:88px} #form-table col.c-v{width:76px} #form-table col.c-url{width:92px} #form-table td.acts .b{margin-right:3px} #form-table td.acts .b-sm{padding-left:8px;padding-right:8px}}
.ct-row.lg-row{cursor:pointer}.ct-sub{font-size:12px;color:var(--bo-muted)}.tag-test{background:#fde8e8;color:#b42318;margin-left:6px}.ct-pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin:12px 0}
.new-tpl{display:flex;flex-direction:column;gap:4px}
.tpl{cursor:default}
.tpl-actions{display:flex;gap:8px;margin-top:auto;padding-top:8px}
.tpl-badge{margin-left:8px;padding:2px 6px;border-radius:8px;background:#fce9e7;color:#9b4c42;font-size:11px;font-weight:normal}


.rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.rich-toolbar button,.rich-toolbar select{padding:5px;border:1px solid #ddd;border-radius:5px;background:white}.rich-toolbar label{display:flex;align-items:center;gap:4px}.rich-toolbar input{width:32px;height:28px}.rich-input{min-height:120px;max-height:400px;overflow:auto;white-space:pre-wrap}
