*{box-sizing:border-box}html,body{margin:0;font-family:"Noto Sans TC","PingFang TC",Arial,sans-serif;color:#23313a;background:#eee8df}button,input,textarea,select{font:inherit}.topbar{height:68px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #e7e0d7;position:sticky;top:0;z-index:20}.brand{font-weight:800;letter-spacing:.08em;font-size:20px}.brand span{font-size:11px;font-weight:500;letter-spacing:.25em;margin-left:6px}.top-actions{display:flex;gap:10px}.primary-btn,.secondary-btn,.ghost-btn{border:0;border-radius:3px;padding:11px 16px;cursor:pointer}.primary-btn{background:#243540;color:#fff}.secondary-btn{background:#d7c5ad;color:#243540}.ghost-btn{background:#f5f2ed}.full{width:100%;margin-top:14px}.builder{display:grid;grid-template-columns:minmax(430px,620px) 1fr;min-height:calc(100vh - 68px)}.editor-panel{background:#fff;padding:32px 36px 90px;overflow:auto;height:calc(100vh - 68px);position:relative}.panel-head h1{margin:7px 0 8px;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:34px}.eyebrow{font-size:10px;letter-spacing:.26em;color:#9d8267}.muted{color:#827a72;line-height:1.7}.tabs{display:flex;gap:4px;margin:28px 0 22px;border-bottom:1px solid #e9e2d9}.tab{border:0;background:none;padding:10px 12px;cursor:pointer;color:#8a8179;border-bottom:2px solid transparent}.tab.active{color:#23313a;border-bottom-color:#23313a}.tab-pane{display:none}.tab-pane.active{display:block}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:13px;margin-bottom:16px;color:#4e4a46}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid #dcd3c8;background:#fbfaf8;padding:11px 12px;border-radius:2px;outline:none}input:focus,textarea:focus,select:focus{border-color:#ae9273;background:#fff}.helper{font-size:12px;color:#958c84;line-height:1.7}.switch-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eee8e1;padding:14px 0;font-size:13px}.switch-row input{width:auto;margin:0}.savebar{position:absolute;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #ece5dc;padding:14px 36px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#8c8379}.preview-panel{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;background:#e8dfd3;overflow:hidden}.preview-toolbar{width:min(420px,100%);display:flex;justify-content:space-between;margin-bottom:12px;font-size:12px;color:#6f665c}.device-dots{display:flex;gap:5px}.device-dots i{display:block;width:7px;height:7px;border-radius:50%;background:#b3a79a}.phone-shell{width:390px;height:calc(100vh - 150px);max-height:820px;background:#111;padding:9px;border-radius:28px;box-shadow:0 22px 70px rgba(65,49,30,.25)}.phone-shell iframe{border:0;width:100%;height:100%;border-radius:20px;background:#fff}dialog{border:0;border-radius:8px;width:min(520px,90vw);padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(27,31,33,.55)}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:26px;cursor:pointer}.url-box{display:grid;grid-template-columns:1fr auto;gap:8px}.url-box input{margin:0}.url-box button{border:0;background:#eee8df;padding:0 15px;cursor:pointer}@media(max-width:900px){.builder{grid-template-columns:1fr}.preview-panel{display:none}.editor-panel{height:auto;min-height:calc(100vh - 68px)}.savebar{position:fixed}.topbar{padding:0 14px}.ghost-btn{display:none}}
.project-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.icon-btn{border:0;background:#f3efe9;width:36px;height:36px;border-radius:50%;cursor:pointer}.template-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.template-card{border:1px solid #e0d8cd;background:#fff;padding:8px;text-align:left;cursor:pointer;border-radius:5px}.template-card.active{border-color:#273741;box-shadow:0 0 0 1px #273741}.template-thumb{display:block;width:100%;aspect-ratio:4/3;border-radius:3px;margin-bottom:8px}.template-thumb.cream{background:linear-gradient(135deg,#f0e8dc 0 50%,#6b7a67 50%)}.template-thumb.rose{background:linear-gradient(135deg,#f5e6e4 0 50%,#a45c63 50%)}.template-thumb.ink{background:linear-gradient(135deg,#f2f2ef 0 50%,#202326 50%)}.template-card strong{display:block;font-size:11px;letter-spacing:.12em}.template-card small{color:#8b8177;font-size:10px}.device-toggle{display:flex;gap:5px}.device-btn{border:0;background:#d9d0c5;padding:5px 8px;font-size:10px;cursor:pointer}.device-btn.active{background:#243540;color:#fff}.upload-box{border:1px dashed #c9b9a7;background:#f9f6f1;padding:18px;border-radius:4px}.upload-box p{font-size:12px;color:#8c8176}.rsvp-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.rsvp-summary div{background:#f5f1eb;padding:14px 10px;text-align:center}.rsvp-summary strong{display:block;font:400 24px Georgia,serif}.rsvp-summary span{font-size:10px;color:#877b70}.rsvp-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.danger{color:#a04949}.rsvp-list{display:grid;gap:8px}.rsvp-item{border:1px solid #e8e0d6;padding:12px;display:flex;justify-content:space-between;gap:14px}.rsvp-item p,.rsvp-item small{margin:5px 0;color:#817970;font-size:11px}.rsvp-item .yes{color:#56715a;font-size:11px;margin-left:8px}.rsvp-item .no{color:#a15d5d;font-size:11px;margin-left:8px}.rsvp-item button{border:0;background:none;color:#a15d5d;cursor:pointer}.empty-state{border:1px dashed #d6cdc2;padding:30px;text-align:center;color:#91877d}.dashboard-dialog{width:min(950px,94vw)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.project-card{border:1px solid #e5ddd4;background:#fff}.project-cover{aspect-ratio:4/3;background:#eee;overflow:hidden}.project-cover img{width:100%;height:100%;object-fit:cover}.project-card-body{padding:14px}.project-card-body h3{margin:5px 0}.project-card-body p,.project-card-body small{font-size:11px;color:#877c72}.project-card-actions{display:flex;gap:8px;margin-top:12px}.project-card-actions button{border:0;background:#eee8df;padding:7px 10px;cursor:pointer}.danger-text{color:#9b4b4b}@media(max-width:700px){.template-strip{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.rsvp-summary{grid-template-columns:1fr 1fr}}

.login-screen{min-height:100vh;display:grid;place-items:center;background:#eee8df;padding:24px}.login-card{width:min(420px,100%);background:#fff;padding:48px 38px;text-align:center;box-shadow:0 28px 90px rgba(67,50,31,.12)}.login-card h1{font:400 38px Georgia,serif;margin:10px 0}.login-card small{display:block;margin-top:18px;color:#8c8176}.sync-pill{font-size:9px;letter-spacing:.15em;padding:7px 10px;border:1px solid #d7cdc1;border-radius:20px}.upload-zone{background:#f7f3ed;border:1px dashed #bcae9e;padding:20px;margin-bottom:18px}.upload-zone p{font-size:12px;color:#81776d;line-height:1.7}.upload-progress{display:grid;gap:6px;font-size:12px;color:#6e665e;margin-top:12px}.guest-create{display:grid;grid-template-columns:1fr auto;gap:8px;margin:18px 0}.guest-create input{margin:0}.guest-list{display:grid;gap:8px}.guest-item{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid #e4ddd4;padding:12px}.guest-item strong,.guest-item small{display:block}.guest-item small{font-size:10px;color:#8d8379;word-break:break-all;margin-top:4px}.guest-item button{border:0;background:#eee8df;padding:9px 11px;cursor:pointer}@media(max-width:850px){.top-actions .sync-pill,.top-actions #guestBtn{display:none}.guest-create{grid-template-columns:1fr}}

/* V6 — 後台主婚人欄位 */
.parents-admin{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:8px 0 24px;
}
.parents-admin-col{
  border:1px solid #e7dfd5;
  background:#fbf9f6;
  padding:16px;
}
.parents-admin-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.parents-admin-head strong{
  font-size:13px;
  color:#3f3a35;
}
.parents-admin-head small{
  font-size:10px;
  color:#9b8e82;
}
.form-grid.two.compact{
  gap:10px;
}
.form-grid.two.compact label{
  margin-bottom:8px;
  font-size:11px;
}
@media(max-width:620px){
  .parents-admin{
    grid-template-columns:1fr;
  }
}

/* V9 — 選填標示 */
.optional-tag{
  display:inline-block;
  margin-left:5px;
  color:#a69582;
  font-size:10px;
  font-weight:400;
}

/* V10 — 音樂欄位說明 */
.field-help{
  display:block;
  margin-top:6px;
  color:#94887c;
  font-size:10px;
  line-height:1.65;
}

.google-form-setting{
  border-top:1px solid #eee8e1;
  border-bottom:1px solid #eee8e1;
  padding-bottom:4px;
  margin-bottom:2px;
}
.google-form-setting .switch-row{border-bottom:0;}

/* V13 — Template thumbnails */
.template-thumb.sage{background:linear-gradient(135deg,#e7e3d9 0 50%,#7c8b78 50%)}
.template-thumb.wine{background:linear-gradient(135deg,#f0dfd8 0 50%,#7b2330 50%)}
.template-thumb.blue{background:linear-gradient(135deg,#f2eee6 0 50%,#537187 50%)}
.template-strip{grid-template-columns:repeat(3,1fr)}
@media(max-width:700px){.template-strip{grid-template-columns:1fr 1fr}}

/* V14 thumbnails — match reference directions */
.template-thumb.sage{
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,#fff 0 48%,#222 48% 52%,#fff 52%) border-box;
  border:1px solid #dedbd5;
}
.template-thumb.wine{
  background:linear-gradient(135deg,#fbf8f3 0 58%,#a65b5d 58%);
}
.template-thumb.blue{
  background:linear-gradient(135deg,#a51f18 0 58%,#fffaf4 58%);
}

/* V15 — real mini layout thumbnails */
.template-thumb{
  position:relative!important;overflow:hidden!important;background:#f7f4ee!important;
  border:1px solid #dedbd5!important;
}
.template-thumb i{position:absolute;display:block;font-style:normal;box-sizing:border-box}
.template-thumb .mini-title{top:9%;left:10%;right:10%;text-align:center;font:700 6px/1 Georgia,serif;letter-spacing:2px;color:#202020}
.template-thumb .mini-photo{left:9%;top:24%;width:82%;height:44%;background:linear-gradient(145deg,#65745f,#c7bda7 52%,#39493d)}
.template-thumb .mini-name{left:0;right:0;bottom:17%;text-align:center;font:600 7px/1 Georgia,serif;color:#222}
.template-thumb .mini-lines{left:22%;right:22%;bottom:8%;height:1px;background:#9c9c91;box-shadow:0 4px 0 #d2cec5}

.template-thumb.rose{background:#f4e7e5!important}
.template-thumb .mini-arch{left:19%;top:10%;width:62%;height:66%;border-radius:60px 60px 2px 2px;background:linear-gradient(145deg,#b4777d,#e4c4bd 55%,#85565e)}
.template-thumb .mini-script{left:0;right:0;bottom:19%;text-align:center;font:italic 8px/1 Georgia,serif;color:#7e4c52}
.template-thumb.rose .mini-name{bottom:8%;color:#5d3e43}

.template-thumb.ink{background:#17191a!important}
.template-thumb .mini-bw-photo{left:8%;top:8%;width:84%;height:52%;background:linear-gradient(145deg,#d8d8d5,#5e6060 52%,#efefeb);filter:grayscale(1)}
.template-thumb .mini-bigtype{left:8%;bottom:14%;font:900 21px/.8 Arial,sans-serif;letter-spacing:-2px;color:#fff}
.template-thumb .mini-smalltype{left:9%;bottom:5%;font:500 5px/1 Arial,sans-serif;letter-spacing:2px;color:#d8d8d5}

.template-thumb.sage{background:#fff!important}
.template-thumb .mini-wide-photo{left:10%;top:24%;width:80%;height:34%;background:linear-gradient(145deg,#24372b,#80906f 45%,#d6d0c0)}
.template-thumb .mini-serif{left:0;right:0;top:64%;text-align:center;font:500 6px/1 Georgia,serif;color:#181818}
.template-thumb .mini-columns{left:17%;right:17%;bottom:10%;height:15%;border-top:1px solid #aaa;border-bottom:1px solid #aaa}
.template-thumb .mini-columns:after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #bbb}

.template-thumb.wine{background:#fffdf9!important}
.template-thumb .mini-xi{top:5%;left:0;right:0;text-align:center;font:700 12px/1 serif;color:#a65b5d}
.template-thumb .mini-rose-photo{left:11%;top:20%;width:78%;height:43%;background:linear-gradient(145deg,#cbb8a8,#a96a68 50%,#e6d4cb)}
.template-thumb.wine .mini-script{bottom:20%;color:#a65b5d}
.template-thumb .mini-dots{left:32%;right:32%;bottom:8%;height:1px;background:#a65b5d;box-shadow:8px 0 0 #a65b5d,-8px 0 0 #a65b5d}

.template-thumb.blue{background:#a51f18!important}
.template-thumb .mini-red-photo{left:12%;top:12%;width:76%;height:52%;background:linear-gradient(145deg,#d7c3b5,#7c665c 48%,#e8ddd4);border:3px solid #fff3e9}
.template-thumb .mini-xi-circle{right:8%;top:52%;width:22px;height:22px;border-radius:50%;background:#a51f18;border:1px solid #fff;color:#fff;text-align:center;font:700 11px/20px serif}
.template-thumb .mini-red-title{left:0;right:0;bottom:18%;text-align:center;font:700 5px/1 serif;letter-spacing:1px;color:#fff}
.template-thumb .mini-red-card{left:34%;right:34%;bottom:6%;height:7%;border:1px solid #fff}

.color-picker-wrap{display:grid;grid-template-columns:58px 1fr auto;gap:8px;align-items:center;margin-top:8px}
.color-picker-wrap input[type=color]{width:58px;height:42px;padding:3px;border:1px solid #d8d1c7;background:#fff;cursor:pointer}
.color-picker-wrap input[type=text]{height:42px}
.color-picker-wrap .secondary-btn{height:42px;padding:0 12px;border:1px solid #d2cbc1;background:#f7f3ed;cursor:pointer;white-space:nowrap}
@media(max-width:700px){.color-picker-wrap{grid-template-columns:58px 1fr}.color-picker-wrap .secondary-btn{grid-column:1/-1}}

.visual-editor-panel{margin:18px 0 24px;padding:18px;border:1px solid #d8d2c8;background:#faf8f4}
.visual-editor-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.visual-editor-head span{font-size:9px;letter-spacing:.2em;color:#8b8378}.visual-editor-head h3{margin:5px 0 0;font:500 18px Georgia,serif}
.visual-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.unit-input{display:grid;grid-template-columns:1fr 34px}.unit-input span{display:grid;place-items:center;border:1px solid #d8d2c8;border-left:0;background:#f2eee8}.mini-color-wrap{display:grid;grid-template-columns:50px 1fr;gap:7px}.mini-color-wrap input[type=color]{width:50px;height:42px;padding:3px;border:1px solid #d8d2c8}
.align-control{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:14px}.align-control button{border:1px solid #d4cec4;background:#fff;padding:7px 10px;cursor:pointer}.align-control button.active{background:#263842;color:#fff}
@media(max-width:700px){.visual-editor-grid{grid-template-columns:1fr}}

/* V20 Direct Edit */
.visual-editor-panel{position:relative}
.visual-editor-panel:before{
 content:"CLICK TEXT IN PREVIEW";display:block;margin:-4px 0 12px;
 font-size:9px;letter-spacing:.18em;color:#938b80
}
.visual-editor-panel select:focus,
.visual-editor-panel input:focus{outline:1px solid #263842;outline-offset:1px}

.v21-home{min-height:calc(100vh - 64px);padding:48px clamp(22px,5vw,70px) 80px;background:#f4f1ec}
.v21-home-head{max-width:1120px;margin:0 auto 28px}.v21-home-head h1{font:400 clamp(34px,4vw,54px)/1.1 Georgia,"Noto Serif TC",serif;margin:8px 0 10px}.v21-home-head p{color:#81786e}
.v21-home-tabs{max-width:1120px;margin:0 auto 26px;display:flex;gap:8px;border-bottom:1px solid #dcd5cc}.v21-home-tab{border:0;background:transparent;padding:14px 18px;cursor:pointer;color:#81786e;border-bottom:2px solid transparent}.v21-home-tab.active{color:#263842;border-bottom-color:#263842}
.v21-home-pane{display:none;max-width:1120px;margin:0 auto}.v21-home-pane.active{display:block}.v21-section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.v21-section-title span{font-size:9px;letter-spacing:.2em;color:#9a8f84}.v21-section-title h2{margin:5px 0 0;font:400 25px Georgia,"Noto Serif TC",serif}
.v21-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.v21-project-card{display:grid;grid-template-columns:180px 1fr;background:#fff;border:1px solid #e2dbd2;min-height:220px}.v21-project-cover{overflow:hidden;background:#ded7cd}.v21-project-cover img{width:100%;height:100%;object-fit:cover}.v21-cover-placeholder{height:100%;display:grid;place-items:center;font:italic 31px Georgia,serif;color:#867b70}
.v21-project-info{padding:24px;display:flex;flex-direction:column}.v21-project-meta{display:flex;justify-content:space-between;color:#968b80;font-size:9px}.v21-project-info h3{font:400 24px Georgia,"Noto Serif TC",serif;margin:18px 0 7px}.v21-project-info p{font-size:12px;color:#766e66}.v21-project-actions{display:flex;gap:8px;margin-top:auto}.v21-empty{background:#fff;border:1px dashed #d7cfc5;padding:70px 24px;text-align:center;color:#81776d}
.v21-new-card{background:#fff;border:1px solid #e0d9d0;padding:30px;max-width:880px}.v21-new-card>h3{font:500 14px "Noto Sans TC",sans-serif;margin:3px 0 18px}.v21-new-card>h3:not(:first-child){margin-top:38px}.v21-template-picker{grid-template-columns:repeat(3,1fr)!important}.v21-new-hint{margin:24px 0 0;padding:14px;background:#f4f0ea;color:#756c63;font-size:12px}
.v21-editor-mode{display:none}.image-editor-panel{margin:18px 0;padding:18px;border:1px solid #d6cec3;background:#f8f5f0}.image-editor-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.image-editor-head span{font-size:9px;letter-spacing:.18em;color:#93887d}.image-editor-head h3{margin:5px 0 0;font:500 18px Georgia,"Noto Serif TC",serif}.range-row{display:grid;grid-template-columns:1fr 52px;gap:10px;align-items:center;margin-top:8px}.range-row input[type=range]{width:100%}.range-row output{text-align:right;font-size:11px;color:#6f675e}
@media(max-width:900px){.v21-project-list{grid-template-columns:1fr}}@media(max-width:650px){.v21-home{padding:28px 16px 60px}.v21-project-card{grid-template-columns:110px 1fr;min-height:180px}.v21-project-info{padding:17px}.v21-template-picker{grid-template-columns:repeat(2,1fr)!important}.v21-section-title{align-items:flex-start;flex-direction:column}}

/* V21.4 */
.style-pane-title{margin:6px 0 6px;font:500 22px Georgia,"Noto Serif TC",serif}
.style-pane-note{margin-bottom:20px}
.style-tab-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin-top:10px}
.style-tab-grid .template-card{min-width:0}
@media(max-width:720px){.style-tab-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

:root{--v22-bg:#f6f4ef;--v22-panel:#fff;--v22-ink:#2c2925;--v22-muted:#817a72;--v22-line:#dfdad3;--v22-soft:#f3f0eb;--v22-accent:#5d6458}
body{background:var(--v22-bg)}
.v21-editor-mode{grid-template-columns:minmax(560px,45%) 1fr!important;height:calc(100vh - 68px);overflow:hidden}
.editor-panel{overflow:auto;padding:18px 22px 80px 28px!important;background:rgba(255,255,255,.97)}
.preview-panel{overflow:auto;padding:16px 28px 70px!important;border-left:1px solid var(--v22-line);background:#eee6d9}
.preview-shell{position:sticky;top:10px}
.tabs{position:sticky;top:0;z-index:6;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);padding-top:4px}
.tab{padding:13px 12px!important;color:#7b746d!important;border-bottom:2px solid transparent!important}
.tab.active{color:#2f3e45!important;border-bottom-color:#2f3e45!important}
.tab-pane{padding-top:18px}
.editor-panel input,.editor-panel textarea,.editor-panel select{border-radius:10px!important;background:#fbfaf7!important;border:1px solid #d8d2cb!important;padding:12px 13px!important}
.editor-panel input:focus,.editor-panel textarea:focus,.editor-panel select:focus{border-color:#aaa197!important;background:#fff!important;outline:none!important}
.parents-admin-col,.visual-editor-panel,.image-editor-panel,.google-form-setting,.style-change-panel{border-radius:16px!important;border:1px solid var(--v22-line)!important;background:rgba(255,255,255,.88)!important;box-shadow:none!important}
.visual-editor-panel,.image-editor-panel{padding:18px!important}
.editor-card{border:1px solid var(--v22-line);border-radius:16px;background:rgba(255,255,255,.82);margin:0 0 14px;overflow:hidden}
.editor-card-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border:0;background:transparent;text-align:left;font:500 16px Georgia,"Noto Serif TC",serif;color:#3b3834}
.editor-card-body{padding:0 18px 18px}.editor-card-sym{font:400 20px Arial;color:#8a837b}
.hero-position-control{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pos-btn{border:1px solid var(--v22-line);background:#faf9f6;border-radius:10px;padding:10px 8px;color:#655f59;cursor:pointer}
.pos-btn.active{background:var(--v22-accent);color:#fff;border-color:var(--v22-accent)}
.preview-mode-switch{display:flex;gap:8px;justify-content:center;margin:0 0 10px}
.preview-mode-btn{border:1px solid transparent;background:#f5f3ee;padding:8px 16px;border-radius:999px;cursor:pointer;color:#675f58}
.preview-mode-btn.active{border-color:#53594e;background:#fff}
.preview-stage.desktop-preview .phone-frame{width:min(880px,100%)!important;height:720px!important;border-radius:18px!important}
.preview-stage.desktop-preview .phone-screen{border-radius:12px!important}
.style-tab-grid{gap:10px!important}.style-tab-grid .template-card{border-radius:12px!important;background:#fff!important}.template-card.active{outline:2px solid #68705f!important}
.editor-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(20,18,16,.92);display:none;align-items:center;justify-content:center;padding:28px 72px}
.editor-lightbox.show{display:flex}.editor-lightbox-img{max-width:min(92vw,1100px);max-height:88vh;object-fit:contain;border-radius:6px;box-shadow:0 20px 70px rgba(0,0,0,.4)}
.editor-lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:28px}
.editor-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:56px;border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;font-size:30px}
.editor-lightbox-prev{left:18px}.editor-lightbox-next{right:18px}.editor-lightbox-count{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:#fff;font-size:12px;letter-spacing:.08em;opacity:.85}
@media(max-width:1050px){.v21-editor-mode{grid-template-columns:1fr!important;height:auto!important;overflow:visible!important}.editor-panel,.preview-panel{overflow:visible!important}.preview-panel{border-left:0}.preview-shell{position:relative;top:auto}}

/* V24 — Share link preview settings */
.share-preview-setting{
  margin:18px 0 22px;
  padding:18px;
  border:1px solid #ddd6cd;
  border-radius:16px;
  background:#faf8f4;
}
.share-preview-setting h3{
  margin:5px 0 15px;
  font:500 19px Georgia,"Noto Serif TC",serif;
}
.share-preview-setting textarea{
  min-height:88px;
  resize:vertical;
}

/* V25 FREE — formal custom sharing URL */
.share-url-preview{
  margin:10px 0 18px;padding:12px 13px;border:1px solid #ddd6cd;border-radius:10px;background:#f7f4ee;
}
.share-url-preview span{display:block;margin-bottom:6px;font-size:10px;color:#8a8178;letter-spacing:.08em}
.share-url-preview code{font-size:11px;color:#38464d;word-break:break-all}
.v21-project-actions{flex-wrap:wrap}

/* v25.2: save status / full preview bar should not float over editor fields */
.savebar{
  position:static;
  left:auto;
  right:auto;
  bottom:auto;
  margin-top:24px;
  padding:14px 0 0;
  border-top:1px solid #ece5dc;
  background:transparent;
}
@media(max-width:900px){
  .savebar{position:static;}
}

/* V25.3 — accordion + sortable content modules */
.v253-note{font-size:12px;color:#9a8d7d;line-height:1.7;margin:4px 0 12px}
.v253-stack{display:flex;flex-direction:column;gap:12px}
.v253-card{border:1px solid #ded8cf;border-radius:18px;background:#fff;overflow:hidden}
.v253-card.dragging{opacity:.45}.v253-card.drag-over{outline:2px solid #b69a75;outline-offset:2px}
.v253-head{width:100%;min-height:62px;display:flex;align-items:center;gap:12px;padding:0 16px;border:0;background:#fff;text-align:left;color:#23313a;font:inherit;cursor:pointer}
.v253-handle{font-size:20px;letter-spacing:-5px;color:#8e8172;cursor:grab;padding-right:7px;user-select:none}.v253-handle:active{cursor:grabbing}
.v253-title{font-size:16px;font-weight:600;flex:1}.v253-plus{font-size:22px;font-weight:300;color:#8e8172}
.v253-body{display:none;padding:4px 20px 20px}.v253-card.open .v253-body{display:block}.v253-card.open .v253-plus{transform:rotate(45deg)}
.v253-fixed .v253-handle{display:none}.v253-section-label{margin:18px 0 8px;font-size:12px;letter-spacing:.14em;color:#9b8064}


/* V25.4 compact inline typography */
.v254-typebar{display:grid;grid-template-columns:auto minmax(130px,1fr) auto auto;gap:8px;align-items:center;margin:10px 0 14px;padding:10px 12px;border:1px solid #e5ded4;border-radius:12px;background:#faf8f4}
.v254-type-label{font-size:12px;color:#806f5d;white-space:nowrap}
.v254-typebar select{min-height:38px;margin:0;padding:0 34px 0 10px;border-radius:9px;background:#fff;font-size:13px}
.v254-size-stepper{display:flex;align-items:center;border:1px solid #ded6cc;border-radius:9px;overflow:hidden;background:#fff;height:38px}
.v254-size-stepper button{border:0;background:#fff;height:100%;min-width:34px;padding:0 8px;color:#263842;cursor:pointer;font-size:16px}
.v254-size-stepper .v254-size-value{min-width:58px;border-left:1px solid #eee8df;border-right:1px solid #eee8df;font-size:12px;font-weight:600}
.v254-size-stepper .v254-size-value.is-default{color:#9b8d7d;font-weight:400}
.v254-reset{height:38px;border:1px solid #d7ccbd;border-radius:9px;background:#efe3d1;color:#5c4a37;padding:0 10px;cursor:pointer;font-size:12px}
.v254-typebar button:hover{filter:brightness(.98)}
@media(max-width:760px){.v254-typebar{grid-template-columns:1fr 1fr}.v254-type-label{grid-column:1/-1}.v254-reset{width:100%}}


/* V26 palette editor */
.palette-editor-card{margin-top:24px;padding:20px;border:1px solid rgba(38,56,66,.14);border-radius:18px;background:#fff}
.palette-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.palette-editor-head strong{display:block}.palette-editor-head small{display:block;margin-top:4px;color:#817b73}
.palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.palette-grid label{font-size:13px}.color-control{display:grid;grid-template-columns:48px 1fr;gap:8px;margin-top:7px}.color-control input[type=color]{width:48px;height:42px;padding:3px;border:1px solid #d8d2ca;border-radius:10px;background:#fff}.color-control input:not([type=color]){min-width:0}
@media(max-width:760px){.palette-grid{grid-template-columns:1fr}.palette-editor-head{align-items:flex-start;flex-direction:column}}

/* V26.1 gallery display selector */
.gallery-display-setting{margin-top:4px;padding:14px 14px 2px;border:1px solid #e4dbd0;background:#faf7f2;border-radius:10px}
.gallery-display-setting label{margin-bottom:10px;font-weight:600}
.gallery-display-setting select{font-weight:400;background:#fff}
.gallery-display-setting .field-help{display:block;margin-top:8px;font-size:11px;line-height:1.6;color:#8c8176;font-weight:400}
