:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#192330;background:#f7f7f6;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}svg.ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}button{border:0}input,select,textarea{outline:0}#app{min-height:100vh}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#fff;border-right:1px solid #e8e9e8;position:sticky;top:0;height:100vh;flex-shrink:0;display:flex;flex-direction:column;padding:29px 17px 18px}.brand{display:flex;align-items:center;gap:12px;padding:0 13px;margin-bottom:50px}.brand-mark{height:39px;width:39px;border-radius:12px;background:#151f2c;color:#f8d8ac;display:grid;place-items:center;box-shadow:0 4px 10px #131e2920}.brand-mark .ico{width:24px;height:24px;stroke-width:1.9}.brand-name{font-family:system-ui,sans-serif;font-weight:800;font-size:19px;letter-spacing:-.85px}.brand-name span{color:#ba816a}.nav-caption,.side-label{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:#9ca4ac;font-weight:800;padding:0 15px;margin-bottom:13px}.nav-item{height:46px;display:flex;align-items:center;gap:13px;background:transparent;border-radius:11px;width:100%;padding:0 14px;text-align:left;color:#667180;font-size:13px;font-weight:700;margin:2px 0;transition:background .15s}.nav-item:hover{background:#f5f5f5;color:#212d3c}.nav-item.active{background:#172431;color:#fff}.nav-item .ico{width:19px;height:19px}.sidebar-spacer{flex:1}.side-help{background:#f6f2ed;border-radius:14px;padding:17px 14px;margin:0 3px 17px}.side-help .side-emoji{font-size:22px;margin-bottom:8px}.side-help strong{font-size:12px;display:block}.side-help p{font-size:11px;line-height:1.55;color:#697584;margin:5px 0 12px}.text-button{padding:0;background:none;color:#a06e58;font-size:12px;font-weight:800}.side-foot{display:flex;gap:9px;align-items:center;padding:13px 12px;border-top:1px solid #eee}.avatar{width:33px;height:33px;background:#e4ded4;color:#69513a;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800}.side-foot strong{font-size:12px;display:block}.side-foot small{font-size:10px;color:#a1a5a8}.workspace{flex:1;min-width:0}.topbar{height:82px;border-bottom:1px solid #e9eaeb;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,53px)}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;color:#9aa1a9}.breadcrumb b{color:#222d3b;font-size:13px}.crumb-divider{height:15px;border-left:1px solid #d3d6d9;margin:0 2px}.top-actions{display:flex;gap:18px;align-items:center}.status-indicator{display:flex;gap:8px;align-items:center;color:#71808b;font-size:11px;font-weight:700}.dot{width:7px;height:7px;background:#5aa88a;border-radius:50%;box-shadow:0 0 0 3px #e5f4ed}.top-icon{height:34px;width:34px;border-radius:50%;background:#f3f3f3;display:grid;place-items:center;color:#73808b}.top-icon .ico{width:17px;height:17px}.content{max-width:1450px;margin:auto;padding:40px clamp(22px,4vw,53px) 75px}.heading-row{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;margin-bottom:31px}.eyebrow{font-size:11px;color:#b27f6b;text-transform:uppercase;letter-spacing:2.1px;font-weight:800;margin-bottom:10px}.page-title{font:800 clamp(27px,2.5vw,34px)/1.25 system-ui,sans-serif;letter-spacing:-1.35px;color:#1a2736}.subheading{color:#8d98a4;font-size:13px;margin-top:9px;line-height:1.6}.btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:43px;padding:0 18px;border-radius:11px;font-size:12px;font-weight:800;border:1px solid transparent;transition:transform .16s,filter .16s}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn .ico{width:17px;height:17px}.btn-primary{background:#182432;color:#fff;box-shadow:0 6px 14px #18243216}.btn-outline{background:#fff;border-color:#e5e7e8;color:#354353}.btn-soft{background:#efe5dc;color:#89634f}.btn-danger{background:#fff1ef;color:#bd4f49}.btn-xs{padding:0 11px;min-height:35px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:28px}.stat-card{min-height:149px;background:#fff;border:1px solid #ededeb;border-radius:17px;padding:23px;position:relative;overflow:hidden}.stat-icon{position:absolute;right:23px;top:23px;height:37px;width:37px;display:grid;place-items:center;border-radius:11px;background:#f4f4f3;color:#74808b}.stat-icon .ico{width:18px;height:18px}.stat-card p{font-size:12px;color:#929aa3;font-weight:600}.stat-card h2{font:800 36px/1.2 system-ui,sans-serif;margin-top:20px;letter-spacing:-1.6px}.stat-card small{font-size:11px;color:#9aa5ad}.dash-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.9fr);gap:20px}.panel{background:#fff;border:1px solid #eaebeb;border-radius:18px;overflow:hidden}.panel-pad{padding:23px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.panel-heading{font:800 15px system-ui,sans-serif;letter-spacing:-.4px}.light-link{font-size:11px;font-weight:800;color:#b08069;background:none;display:flex;align-items:center;gap:5px}.light-link .ico{width:14px;height:14px}.event-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid #f0f0ef}.event-row:last-child{border-bottom:0}.event-cover{width:65px;height:65px;border-radius:12px;position:relative;flex-shrink:0;overflow:hidden;background:#dec5b7}.event-cover:before,.event-art:before,.hero-art:before{content:"";position:absolute;inset:-40%;border:3px solid #ffffff45;border-radius:46%;transform:rotate(24deg)}.event-cover:after,.event-art:after,.hero-art:after{content:"✦";position:absolute;font-size:42px;color:#ffffff98;right:7%;bottom:-20%;transform:rotate(19deg)}.theme-ivory{background:linear-gradient(135deg,#d9bbaa,#9e7967)}.theme-noir{background:linear-gradient(135deg,#364558,#171c26)}.theme-pop{background:linear-gradient(135deg,#faaa9b,#dc5e71)}.theme-garden{background:linear-gradient(135deg,#cbd7bd,#6f978b)}.event-details{min-width:0;flex:1}.event-details h4{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-details p{font-size:11px;color:#98a1aa;margin-top:5px}.event-tag{font-size:10px;font-weight:800;border-radius:6px;padding:6px 8px;background:#ebf6ed;color:#4f9773}.event-action{width:35px;height:35px;border:1px solid #e6e7e8;border-radius:9px;background:white;color:#556579;display:grid;place-items:center}.event-action .ico{width:15px;height:15px}.hero-panel{padding:0;background:#192633;position:relative;min-height:299px;color:#fff;display:flex;flex-direction:column}.hero-art{position:absolute;inset:0;background:radial-gradient(ellipse at 82% 27%,#58746770 0,transparent 48%),radial-gradient(circle at 0% 110%,#b17a5d50,transparent 50%);overflow:hidden}.hero-art:after{font-size:180px;right:4%;bottom:-25%;color:#ffffff12}.hero-panel-content{position:relative;z-index:1;padding:29px;flex:1;display:flex;flex-direction:column;align-items:flex-start}.hero-label{padding:7px 10px;color:#f6d8bd;background:#ffffff20;display:inline-block;border:1px solid #ffffff18;border-radius:7px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.1px}.hero-panel h2{font:800 26px/1.2 system-ui,sans-serif;max-width:275px;margin:22px 0 12px;letter-spacing:-1.1px}.hero-panel p{font-size:12px;line-height:1.8;color:#b5c2cd;max-width:270px;margin-bottom:25px}.btn-warm{background:#f0d6b8;color:#27313b;margin-top:auto}.btn-warm:hover{background:#fce6ce}.mini-feature-grid{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.mini-feature{border-radius:12px;background:#f8f8f7;padding:15px;display:flex;align-items:center;gap:10px}.mini-feature .ico{width:19px;height:19px;color:#b98570}.mini-feature span{font-size:11px;font-weight:700;color:#607080}.section-title{font:800 17px system-ui,sans-serif;letter-spacing:-.5px;margin:32px 0 18px}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.step-card{border:1px solid #e9e9e9;background:white;padding:19px;border-radius:14px}.step-number{color:#c18c72;font-size:11px;font-weight:900}.step-card h4{font-size:12px;margin:13px 0 6px}.step-card p{font-size:11px;color:#87949f;line-height:1.65}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.event-card{border-radius:17px;overflow:hidden;background:#fff;border:1px solid #e9e9e8}.event-art{height:167px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center}.event-art:after{font-size:120px;bottom:-52%;right:-4%;opacity:.55}.event-art h3{font:700 23px Georgia,serif;max-width:80%;position:relative;z-index:1;text-shadow:0 2px 5px #0002}.event-card-body{padding:17px 18px 18px}.event-card-body h3{font-size:14px}.event-meta{display:flex;gap:7px;align-items:center;color:#9ca4aa;font-size:11px;margin:9px 0 17px}.event-meta .ico{width:13px;height:13px}.event-card-actions{display:flex;gap:8px}.event-card-actions .btn{flex:1}.empty{padding:55px 22px;text-align:center;background:#fff;border:1px dashed #e0e2e3;border-radius:16px}.empty .ico{width:33px;height:33px;color:#acb6be}.empty h3{font-size:15px;margin:14px 0 7px}.empty p{font-size:12px;color:#96a0a9;margin:0 auto 17px;max-width:335px;line-height:1.6}.toolbar{display:flex;align-items:center;gap:11px;margin-bottom:22px;flex-wrap:wrap}.control-select,.field input,.field select,.field textarea{min-height:43px;border:1px solid #e5e7e9;background:#fff;color:#2c3640;border-radius:10px;padding:0 13px;font-size:12px}.control-select{min-width:180px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-card{background:#fff;border:1px solid #e9eaeb;border-radius:15px;overflow:hidden}.gallery-preview{height:214px;background:#e9ebe9;display:grid;place-items:center;overflow:hidden;position:relative}.gallery-preview img,.gallery-preview video{width:100%;height:100%;object-fit:contain}.gallery-type{position:absolute;top:12px;left:12px;background:#1a2636cc;color:#fff;font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase;padding:7px 9px;border-radius:7px}.gallery-details{padding:14px}.gallery-details h4{font-size:12px}.gallery-details p{font-size:10px;color:#9aa4af;margin:7px 0 13px}.gallery-actions{display:flex;gap:7px;flex-wrap:wrap}.gallery-actions .btn{padding:0 10px;min-height:34px}.settings-columns{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:20px}.settings-panel{padding:26px}.settings-panel h3{font:800 15px system-ui,sans-serif;letter-spacing:-.3px}.settings-panel .subheading{margin-bottom:25px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:17px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:#687684;font-weight:800}.field input,.field select,.field textarea{width:100%}.field textarea{padding:12px;min-height:90px;resize:vertical}.field-note{font-size:10px;color:#a0a8af;line-height:1.55}.form-divider{border:0;border-top:1px solid #edefef;margin:13px 0 24px}.theme-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.theme-choice{padding:0;background:#fff;border-radius:10px;overflow:hidden;border:2px solid #e9e9e9;text-align:center}.theme-choice.selected{border-color:#182b39}.theme-swatch{height:82px;display:block}.theme-choice b{display:block;padding:9px 0;font-size:10px}.preview-card{padding:24px;background:#f5f2ee;border-radius:14px;margin-top:20px}.mock-print{width:min(245px,85%);aspect-ratio:3/4.4;background:#fff;border:11px solid white;box-shadow:0 14px 25px #0000001a;margin:auto;display:flex;flex-direction:column;padding:10px;gap:7px}.mock-photo{flex:1;background:linear-gradient(140deg,#b8bcc1,#ebdddd);position:relative;overflow:hidden}.mock-photo:after{content:'✦';font-size:56px;color:#ffffffaf;position:absolute;left:40%;top:20%}.mock-rows{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;flex:1}.mock-print small{font:800 10px Georgia,serif;text-align:center;letter-spacing:.5px;color:#344;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.note{color:#9aa4ac;font-size:11px;line-height:1.6}.modal-backdrop{position:fixed;inset:0;background:#121a24a8;z-index:99;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(7px)}.modal{width:min(475px,100%);max-height:calc(100vh - 30px);overflow:auto;background:white;border-radius:20px;box-shadow:0 32px 100px #0004;padding:28px}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal h2{font:800 22px system-ui,sans-serif;letter-spacing:-.6px}.modal p{font-size:12px;color:#87939e;line-height:1.65;margin-bottom:24px}.icon-button{display:grid;place-items:center;background:#f5f5f4;border-radius:10px;color:#485461;width:35px;height:35px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.tip-banner{background:#f3eee7;border:1px solid #ecdfd2;color:#6f604f;padding:14px 17px;font-size:12px;line-height:1.6;border-radius:11px;margin-bottom:22px}.settings-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:15px;flex-wrap:wrap}.booth{min-height:100vh;background:#10151d;color:#fff;display:flex;flex-direction:column;position:relative;overflow:hidden}.booth:before{content:"";position:fixed;width:500px;height:500px;background:#35475f50;filter:blur(140px);top:10%;right:-250px;pointer-events:none}.booth-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(19px,3vw,44px);gap:20px;position:relative;z-index:2}.booth-header-left,.booth-header-right{display:flex;align-items:center;gap:15px}.booth-back{color:#fff;background:#ffffff14;border:1px solid #ffffff20;width:41px;height:41px;border-radius:12px;display:grid;place-items:center}.booth-title{font:800 16px system-ui,sans-serif;letter-spacing:-.5px}.booth-subtitle{font-size:10px;color:#a9b3c1;margin-top:4px}.live-pill{display:flex;gap:8px;align-items:center;border:1px solid #ffffff27;border-radius:25px;padding:9px 13px;font-size:11px;color:#c2ced7;font-weight:800}.live-pill .dot{box-shadow:none}.booth-main{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:30px;max-width:1300px;width:100%;margin:auto;flex:1;padding:5px clamp(19px,3vw,44px) 34px;min-height:0;position:relative;z-index:1}.booth-left{min-width:0;display:flex;flex-direction:column;gap:18px}.camera-stage{background:radial-gradient(ellipse at 50% 35%,#303d49,#121b25 80%);border:1px solid #ffffff18;border-radius:24px;position:relative;overflow:hidden;min-height:445px;flex:1;display:grid;place-items:center;isolation:isolate}.camera-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.camera-stage video.mirrored{transform:scaleX(-1)}.stage-vignette{position:absolute;inset:0;box-shadow:inset 0 0 100px #0008;pointer-events:none}.camera-tag{position:absolute;left:23px;top:22px;z-index:1;display:flex;align-items:center;gap:8px;color:#e8edf0;background:#101a24b0;border-radius:8px;padding:9px 11px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.camera-tag .ico{width:14px;height:14px}.camera-controls{position:absolute;top:19px;right:20px;display:flex;gap:9px;z-index:3}.cam-tool{height:39px;width:39px;background:#151f29b8;color:#fff;border:1px solid #ffffff25;border-radius:11px;display:grid;place-items:center}.cam-tool .ico{width:18px;height:18px}.camera-welcome{z-index:1;position:relative;text-align:center;max-width:320px;padding:20px}.camera-welcome-icon{width:76px;height:76px;background:#ffffff17;border:1px solid #ffffff1e;display:grid;place-items:center;border-radius:23px;margin:0 auto 21px}.camera-welcome-icon .ico{width:34px;height:34px;color:#e6ccaa}.camera-welcome h2{font:800 25px system-ui,sans-serif;letter-spacing:-1px;margin-bottom:10px}.camera-welcome p{font-size:12px;color:#a4afba;line-height:1.8;margin:0 0 22px}.camera-welcome .btn{background:#f0d7b7;color:#23313c}.camera-error{font-size:11px;color:#ffbcae;margin-top:14px;line-height:1.6}.camera-instruction{position:absolute;bottom:24px;left:0;right:0;z-index:1;text-align:center;color:#ffffffce;text-shadow:0 1px 6px #0009;font-size:11px;letter-spacing:.5px}.capture-countdown{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:5;background:#080d13a3;backdrop-filter:blur(3px)}.capture-countdown.visible{display:flex}.countdown-number{font:800 clamp(94px,20vw,184px)/1 system-ui,sans-serif;color:white;text-shadow:0 7px 30px #0008;animation:pulse .7s ease-in-out}.countdown-label{font-weight:900;letter-spacing:3px;text-align:center;color:#f3dcc3;font-size:12px;text-transform:uppercase;margin-top:7px}.capture-flash{position:absolute;inset:0;background:white;z-index:6;opacity:0;pointer-events:none;transition:opacity .18s}.capture-flash.flash{opacity:.9;transition:none}.capture-panel{background:#1c2531;border:1px solid #ffffff13;border-radius:17px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.mode-tabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.mode-tab{background:transparent;color:#a1adba;font-size:11px;font-weight:800;padding:11px 12px;border-radius:10px;display:flex;align-items:center;gap:8px}.mode-tab .ico{width:16px;height:16px}.mode-tab.active{background:#354252;color:#fff}.mode-tab:disabled{opacity:.3}.shutter{background:#f1dfc9;color:#182431;border:6px solid #e9d9c41f;width:74px;height:74px;min-width:74px;border-radius:50%;display:grid;place-items:center;outline:3px solid #edddcb;outline-offset:-10px;box-shadow:0 0 0 5px #ffffff11}.shutter .ico{width:30px;height:30px;stroke-width:2}.shutter.recording{background:#e97c7e;outline-color:#e97c7e}.booth-right{display:flex;flex-direction:column;gap:16px}.booth-info{background:#1b2430;border:1px solid #ffffff12;border-radius:20px;padding:25px}.booth-info h3{font:800 16px system-ui,sans-serif}.booth-info p{font-size:11px;color:#a6b3bf;line-height:1.8;margin:10px 0 23px}.booth-preview-print{background:#e4d6c5;border-radius:15px;padding:22px;display:grid;place-items:center;min-height:260px}.booth-preview-print .mock-print{width:150px;height:205px;box-shadow:0 9px 25px #0004}.booth-tip{display:flex;gap:10px;align-items:flex-start;border-top:1px solid #ffffff16;padding-top:19px;margin-top:19px;color:#adbac5;font-size:11px;line-height:1.6}.booth-tip .ico{width:17px;height:17px;color:#ebceac;margin-top:1px}.booth-mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.booth-mini-actions button{background:#1b2530;border:1px solid #ffffff15;border-radius:12px;color:#c5d0d9;padding:14px 9px;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:6px}.booth-mini-actions .ico{width:15px;height:15px}.review{min-height:100vh;background:#10151d;color:white;display:flex;flex-direction:column}.review-main{flex:1;display:grid;grid-template-columns:minmax(250px,440px) minmax(280px,400px);gap:70px;align-items:center;justify-content:center;padding:30px}.review-preview{display:grid;place-items:center;min-height:520px;max-height:67vh;background:#202b36;border-radius:24px;padding:26px}.review-preview img,.review-preview video{max-width:100%;max-height:60vh;object-fit:contain;box-shadow:0 15px 35px #0004}.review-content .eyebrow{color:#e5c4a3}.review-content h1{font:800 clamp(30px,4vw,48px)/1.15 system-ui,sans-serif;letter-spacing:-1.8px;margin-bottom:18px}.review-content p{font-size:13px;color:#afbdc8;line-height:1.9;margin-bottom:28px}.review-actions{display:flex;gap:11px;flex-wrap:wrap}.review-actions .btn-outline{background:#ffffff17;color:white;border-color:#ffffff24}.review-note{margin-top:29px;display:flex;gap:10px;color:#88bfa0;font-size:11px;align-items:center}.review-note .ico{width:17px;height:17px}.booth-footer{color:#6b7887;text-align:center;font-size:10px;padding:4px 20px 20px}.recording-banner{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);background:#a72f31ed;z-index:6;border-radius:11px;padding:13px 19px;font-size:12px;font-weight:800;display:flex;align-items:center;gap:10px;white-space:nowrap}.record-dot{height:9px;width:9px;background:#fff;box-shadow:0 0 0 5px #ffffff26;border-radius:50%;animation:pulse .9s infinite alternate}#toast-region{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;flex-direction:column;gap:9px}.toast{display:flex;gap:10px;align-items:center;background:#192636;color:white;box-shadow:0 12px 28px #121b2740;border-radius:11px;padding:14px 18px;font-size:12px;max-width:360px;animation:slide-in .2s ease}.toast.error{background:#8b3b3c}.toast .ico{width:18px;height:18px}@keyframes slide-in{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{from{transform:scale(.93);opacity:.8}to{transform:scale(1.05);opacity:1}}@media(max-width:1150px){.sidebar{width:213px}.content{padding:34px 25px 60px}.dash-layout{grid-template-columns:minmax(0,1fr)}.hero-panel{min-height:240px}.hero-panel h2{margin:15px 0 8px}.mini-feature-grid{display:none}.event-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-columns{grid-template-columns:1fr}.booth-main{grid-template-columns:minmax(0,1fr) 225px;gap:17px}.booth-info{padding:17px}}@media(max-width:760px){.app-shell{display:block;padding-bottom:72px}.sidebar{position:fixed;bottom:0;top:auto;width:100%;height:67px;flex-direction:row;z-index:40;padding:6px 7px;padding-bottom:env(safe-area-inset-bottom,6px);align-items:stretch;border-right:0;border-top:1px solid #e7e8e8;box-shadow:0 -5px 20px #00000008}.sidebar .brand,.sidebar .nav-caption,.sidebar .sidebar-spacer,.sidebar .side-help,.sidebar .side-foot{display:none}.sidebar nav{display:flex;width:100%;justify-content:space-around;align-items:center}.nav-item{height:55px;flex-direction:column;justify-content:center;gap:4px;padding:3px 8px;min-width:61px;font-size:9px;border-radius:10px;margin:0}.nav-item .ico{height:21px;width:21px}.topbar{height:65px;padding:0 19px}.top-actions .status-indicator{display:none}.content{padding:27px 18px 50px}.heading-row{align-items:flex-start;gap:13px}.heading-row .btn{padding:0 13px;min-height:40px}.page-title{font-size:26px}.subheading{font-size:12px}.stat-grid{gap:8px;margin-bottom:17px}.stat-card{padding:14px;min-height:113px;border-radius:12px}.stat-icon{display:none}.stat-card p{font-size:10px}.stat-card h2{font-size:28px;margin-top:18px}.stat-card small{font-size:9px}.panel-pad{padding:18px}.steps-grid{grid-template-columns:1fr}.step-card{padding:14px}.section-title{margin:26px 0 13px}.booth-header{height:76px;padding:0 15px}.booth-header-right .live-pill{font-size:9px;padding:9px}.booth-main{display:flex;flex-direction:column;gap:10px;padding:0 12px 15px}.camera-stage{min-height:0;height:min(57vh,550px);flex:none;border-radius:17px}.booth-right{display:none}.capture-panel{border-radius:15px;padding:12px;gap:6px}.mode-tabs{gap:1px}.mode-tab{flex-direction:column;gap:5px;padding:8px 9px;font-size:9px}.mode-tab .ico{width:17px;height:17px}.shutter{width:62px;height:62px;min-width:62px}.shutter .ico{width:24px;height:24px}.booth-footer{padding:5px 14px 15px}.review-main{display:flex;flex-direction:column;gap:23px;padding:14px 24px 55px}.review-preview{min-height:0;width:100%;max-height:45vh;padding:15px}.review-preview img,.review-preview video{max-height:40vh}.review-content{text-align:center}.review-content h1{font-size:30px}.review-actions{justify-content:center}.review-note{justify-content:center}.event-card-actions .btn{font-size:10px;padding:0 8px}}@media(max-width:490px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.event-grid,.gallery-grid{grid-template-columns:1fr}.event-art{height:140px}.gallery-preview{height:280px}.field-grid{grid-template-columns:1fr;gap:0}.theme-options{gap:6px}.theme-swatch{height:56px}.settings-panel{padding:18px}.heading-row .btn{font-size:11px}.booth-header-left{gap:10px}.booth-header-right{display:none}.camera-stage{height:min(59vh,520px)}.capture-panel{padding:9px}.mode-tab{padding:8px 7px}.mode-tabs{flex:1;justify-content:space-between}.shutter{width:59px;height:59px;min-width:59px}.topbar{padding:0 17px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.design-stage{background:#e7ebef;padding:24px;border-radius:16px;display:grid;place-items:center}
.design-canvas{width:min(100%,320px);aspect-ratio:2/3;position:relative;border:9px solid #fff;box-shadow:0 15px 45px #17243133;border-radius:3px;display:flex;flex-direction:column;padding:22px 18px 58px;gap:15px}
.design-heading{font:700 21px Georgia,serif;text-align:center;color:white;overflow-wrap:anywhere}
.design-photo-grid{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}.design-photo-grid.design-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr}
.design-photo-placeholder{min-height:0;flex:1;background:linear-gradient(135deg,#d9c6b9,#9babb4);border:4px solid white;display:grid;place-items:center;color:#ffffffdd;font-size:10px;font-weight:800;letter-spacing:2px}
.design-draggable{position:absolute;transform:translate(-50%,-50%);max-width:95%;min-width:40px;text-align:center;overflow-wrap:anywhere;cursor:grab;touch-action:none;user-select:none;font-weight:900;text-shadow:0 2px 8px #0008;line-height:1.05;border:1px dashed #ffffff88;padding:4px}
.design-draggable:active{cursor:grabbing}
#designer-form input[type=color]{width:100%;height:43px;cursor:pointer}

.backup-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.kiosk-toggle{position:relative;z-index:3;margin:8px}
@media(max-width:650px){.backup-actions .btn{flex:1;font-size:12px}}

.device-settings-panel{padding:20px;margin:10px 0;max-width:720px}
.device-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:12px 0}
.device-settings-grid label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:700}
.device-settings-grid select{width:100%;padding:12px;border:1px solid #c7ced7;border-radius:8px;background:white;color:#152332}
.device-settings-panel[hidden]{display:none}

.qr-overlay{position:fixed;inset:0;background:#101a29b8;display:grid;place-items:center;z-index:9999;padding:18px}
.qr-panel{background:white;color:#1a2635;padding:25px;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:15px;max-width:370px;width:100%;text-align:center}
.qr-panel img{max-width:100%;image-rendering:pixelated}
.qr-panel p{font-size:13px}

.cloud-gallery-panel{max-width:680px;max-height:85vh;overflow-y:auto;align-items:stretch}
.cloud-gallery-row{display:flex;align-items:center;gap:16px;border:1px solid #e1e5ea;border-radius:12px;padding:10px;text-align:left}
.cloud-gallery-thumb{width:100px;height:110px;object-fit:cover;border-radius:8px;background:#ddd}
.cloud-gallery-details{display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere}
.cloud-gallery-details small{color:#64748b}

/* v11 usability and device controls */
.booth-device-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.booth-device-toolbar .btn{font-size:12px;padding:8px 11px;border-color:#c4cbd5}
.booth-header{flex-wrap:wrap;gap:12px}
.booth-header-right{gap:10px;flex-wrap:wrap;justify-content:flex-end}
.device-settings-panel{margin:12px auto;max-width:min(1050px,94vw);background:#fff;color:#192330;padding:22px;border-radius:16px}
.device-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.gallery-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.design-canvas.print-strip{width:min(100%,185px);aspect-ratio:1 / 3}
.design-canvas.print-sheet{width:min(100%,340px);aspect-ratio:2 / 3}
.design-canvas{min-height:0!important}
@media(max-width:700px){.booth-header-right{width:100%;justify-content:flex-start}.booth-device-toolbar{order:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.booth-device-toolbar .btn{font-size:10px;padding:7px 5px}.gallery-tools .note{font-size:11px}}

.design-draggable{width:calc(100% - 20px);max-width:95%;font-size:clamp(14px,4vw,30px)}
.design-canvas{overflow:hidden}
@media(max-width:700px){
 .booth-header{height:auto;min-height:88px;padding:16px 14px;align-items:flex-start}
 .booth-header-right{display:flex!important;width:100%;justify-content:flex-start}
 .booth-header-right>.live-pill,.booth-header-right>.cam-tool{display:none}
 .booth-device-toolbar{width:100%}
 .booth-device-toolbar .btn{line-height:1.3;min-height:36px}
 .device-settings-panel{margin:8px 13px;padding:16px}
}
/* StudioBooth v12 — Design Studio refresh */
:root{--studio-ink:#142334;--studio-ink-soft:#34465a;--studio-line:#e6e2dc;--studio-cream:#f7f6f3;--studio-accent:#be7758;--studio-accent-light:#f7e7d9;--studio-shadow:0 14px 35px #1322350a}
body{background:var(--studio-cream);color:var(--studio-ink)}
.sidebar{background:#141f2d;border-color:#243342;padding:29px 17px 20px;color:#fff}
.brand{padding:0 10px 23px;margin-bottom:24px;border-bottom:1px solid #ffffff20}
.brand-mark{background:#f1d0aa;box-shadow:0 8px 22px #0003;color:#172433}
.brand-name{color:#fff;letter-spacing:-1px}.brand-name span{color:#edb18b}
.nav-caption,.side-label{color:#7c91a5}.nav-item{color:#a6b5c7}.nav-item:hover{background:#233347;color:#fff}.nav-item.active{background:#f0d2ad;color:#182536;box-shadow:0 5px 15px #0002}
.side-help{background:#ffffff0c;border:1px solid #ffffff12}.side-help strong{color:#fff}.side-help p{color:#9aafc1}.text-button{color:#f4bd90}.side-foot{border-color:#ffffff20}.side-foot strong{color:#ecf2f7}.side-foot small{color:#93a5b5}.side-foot .avatar{background:#35445a;color:#f5d3ba}
.topbar{box-shadow:0 1px 0 #e6e2dc;background:#fff}.content{max-width:1540px}.page-title,.section-title{letter-spacing:-1px}
.btn{border-radius:12px;min-height:44px;font-size:12px}.btn-primary{background:#142336;box-shadow:0 6px 18px #17243420}.btn-primary:hover{background:#263c51}.btn-outline{border-color:#e2e3e4}.btn:focus-visible,.nav-item:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e6b48e;outline-offset:3px}
.panel,.stat-card,.event-card,.step-card{box-shadow:var(--studio-shadow);border-color:#e9e7e2}
.hero-panel{background:linear-gradient(138deg,#23394c,#121f2d)}.hero-panel-content{padding:33px}.hero-label{color:#f8d5ad}.btn-warm{background:#f1d0aa}
.stat-card{min-height:151px}.stat-card h2{color:#223448}.stat-icon{background:#f2ebe6;color:#a9755d}
/* Layout studio shell */
.designer-page{--tool-radius:18px;max-width:1330px;margin:0 auto}
.studio-intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}
.studio-intro h1{font-size:clamp(27px,2.8vw,41px);font-weight:820;line-height:1.13;letter-spacing:-1.75px;margin:9px 0 10px;color:#18283a}
.studio-intro p{font-size:13px;color:#7f8b97;line-height:1.65;max-width:670px}
.studio-crumb{font-size:10px;letter-spacing:2px;font-weight:850;color:#b07860}
.studio-dot{color:#c7825e}.studio-launch{height:46px;white-space:nowrap}
.studio-context{display:flex;align-items:center;gap:12px;border:1px solid #e8e3de;border-radius:14px;background:#fff;padding:12px 18px;margin-bottom:18px;box-shadow:0 3px 10px #13203005}
.studio-context-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#fbefe6;color:#bc7959;flex-shrink:0}
.studio-context strong{display:block;font-size:13px}.studio-context div span{display:block;font-size:11px;color:#8997a3;margin-top:3px}
.designer-save-status{margin-left:auto;border-radius:100px;padding:7px 12px;color:#4e816a;font-size:10px;font-weight:800;letter-spacing:.1px;background:#edf7f0;white-space:nowrap}
.designer-save-status:before{content:'●';font-size:8px;margin-right:7px}.designer-save-status.is-dirty{background:#fff0e5;color:#ac7856}
.studio-builder{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(350px,.94fr);gap:20px;align-items:start}
.studio-tools{border:1px solid var(--studio-line);border-radius:20px;background:#fff;box-shadow:var(--studio-shadow);overflow:hidden}
.studio-section{padding:25px 28px 27px;border-bottom:1px solid #eeece9}
.studio-section-heading{display:flex;align-items:start;gap:13px;margin-bottom:21px}.section-n{font-size:11px;font-weight:800;color:#c48c70;background:#fcf2eb;display:grid;place-items:center;border-radius:9px;width:30px;height:30px;flex:0 0 30px}
.studio-section-heading h2{font-size:15px;letter-spacing:-.35px;color:#243344}.studio-section-heading p{font-size:11px;color:#8893a0;margin-top:6px}
.layout-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.layout-choice{border:1.5px solid #e5e7e8;border-radius:14px;background:#fafaf9;cursor:pointer;padding:14px 11px;display:flex;min-width:0;flex-direction:column;align-items:center;gap:11px;position:relative;transition:box-shadow .2s,border-color .2s,background .2s;min-height:155px}
.layout-choice:hover{border-color:#b9a290;background:#fff}.layout-choice.is-selected{background:#fdf4ed;border-color:#b77b5c;box-shadow:0 0 0 2px #f5e4d7}
.layout-choice input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.layout-choice:has(input:focus-visible){outline:3px solid #e6b48e;outline-offset:3px}
.layout-choice-body{text-align:center;display:flex;flex-direction:column;gap:4px;align-items:center;min-width:0}.layout-choice-body strong{font-size:11px;letter-spacing:-.1px;color:#2c3d4f}.layout-choice-body small{font-size:10px;color:#99a2ad}
.layout-choice-check{position:absolute;top:8px;right:8px;border-radius:50%;background:#b57756;color:white;width:17px;height:17px;display:none;place-items:center}.layout-choice.is-selected .layout-choice-check{display:grid}.layout-choice-check .ico{width:12px;height:12px}
.layout-choice-art{display:grid;gap:3px;padding:5px;border:2px solid #d6d7d8;background:#fff;box-shadow:0 4px 10px #27374816;border-radius:2px;height:74px;aspect-ratio:2/3}.layout-choice-art i{display:block;min-height:0;border-radius:1px;background:linear-gradient(135deg,#d7ad98,#6c8995)}
.layout-choice-art.strip{height:76px;aspect-ratio:1/3;grid-template-rows:repeat(3,1fr)}.layout-choice-art.strip i:last-child{display:none}
.layout-choice-art.grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.layout-choice-art.classic{grid-template-columns:1fr 1fr;grid-template-rows:1.3fr .7fr}.layout-choice-art.classic i:first-child{grid-column:span 2}.layout-choice-art.classic i:last-child{display:none}
.designer-field{display:flex;flex-direction:column;gap:10px;font-weight:750;color:#526276;font-size:11px;min-width:0}.designer-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:17px}.designer-field-pair:first-child{margin-top:0}.field-hint{font-size:10px;font-weight:500;color:#a1aab5}
.designer-field input:not([type=color]):not([type=range]),.designer-field select{width:100%;height:46px;background:#fbfbfa;border:1px solid #e2e5e6;border-radius:10px;padding:0 12px;color:#304052;font-size:12px;min-width:0}
.designer-field input:focus,.designer-field select:focus{border-color:#ce9a7e;background:#fff}
.designer-field input[type=range]{accent-color:#ba8264;cursor:pointer;height:24px;width:100%}
.designer-field output{font-weight:800;color:#ad7053;margin-left:5px}
.designer-theme-presets{display:flex;gap:8px;margin-top:13px}
.designer-theme-preset{border:2px solid transparent;border-radius:10px;padding:4px;background:transparent;transition:border .15s;display:block}.designer-theme-preset.is-selected{border-color:#bd8061}.designer-theme-preset span{display:block;height:29px;width:52px;border-radius:6px;background:linear-gradient(130deg,var(--theme-a) 45%,var(--theme-b) 45%)}
.color-picker-control{display:flex;align-items:center;gap:10px;border:1px solid #e5e6e6;padding:6px 10px;border-radius:10px;height:46px;background:#fbfbfa}
.color-picker-control input[type=color]{width:34px;height:30px;border:0;background:transparent;padding:0;cursor:pointer;flex:0 0 34px}
.color-picker-control code{font:750 11px system-ui,sans-serif;color:#647486;white-space:nowrap}
.designer-palette{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}.palette-dot{width:25px;height:25px;border:2px solid #ffffff;outline:1px solid #d9dfe2;border-radius:50%;transition:transform .15s}.palette-dot:hover{transform:scale(1.1)}
.studio-form-actions{display:flex;gap:10px;flex-wrap:wrap;padding:23px 28px;background:#fcfbfa}.studio-save{min-height:46px}
/* Print preview stage */
.studio-preview-panel{position:sticky;top:20px;background:#fff;border:1px solid var(--studio-line);border-radius:20px;box-shadow:var(--studio-shadow);overflow:hidden}
.studio-preview-heading{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:15px}
.studio-preview-heading .eyebrow{margin:0 0 8px;letter-spacing:1.7px;font-size:10px}.studio-preview-heading h2{font-size:16px;letter-spacing:-.35px}.studio-preview-heading p{font-size:11px;color:#98a3ae;margin-top:7px}
.preview-indicator{background:#edf7f0;color:#518b72;padding:8px 11px;border-radius:100px;font-size:10px;font-weight:800;display:flex;align-items:center;gap:6px;letter-spacing:.5px}
.studio-preview-stage{min-height:604px;background:radial-gradient(circle at 20% 12%,#35465d 0%,transparent 40%),radial-gradient(circle at 84% 92%,#425d66 0%,transparent 42%),#142334;position:relative;overflow:hidden;padding:35px 15px;display:grid;place-items:center;border-radius:0}
.studio-preview-stage:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.preview-backdrop-shape{position:absolute;width:330px;height:330px;border:1px solid #ffffff0b;border-radius:50%;pointer-events:none}.preview-backdrop-one{top:-210px;left:-140px}.preview-backdrop-two{bottom:-220px;right:-110px}
/* Live design canvas uses the physical ratios of 2x6 strips and 4x6 prints */
.design-canvas.print-design{--print-bg:#172431;--frame-color:#fff;--frame-width:5px;position:relative;display:block;flex:none;background:var(--print-bg);border:7px solid #fff;border-radius:2px;padding:0;gap:0;box-shadow:0 25px 55px #0009;overflow:hidden;isolation:isolate;min-height:0;width:340px;max-width:calc(100% - 20px);aspect-ratio:2 / 3}
.design-canvas.print-design.print-strip{width:200px;aspect-ratio:1 / 3}
.design-accent-top,.design-accent-bottom{position:absolute;z-index:1;left:0;right:0;height:1%;background:linear-gradient(90deg,#ab7b67,#e9c5a3,#ab7b67)}.design-accent-top{top:0}.design-accent-bottom{bottom:0}
.design-canvas.print-design .design-heading{position:absolute;top:2.6%;left:7%;right:7%;height:8%;padding:0;margin:0;display:grid;place-items:center;line-height:1.03;font:700 21px Georgia,serif;color:#fff9f3;text-align:center;overflow-wrap:anywhere;overflow:hidden;text-shadow:0 1px 2px #0005}
.design-canvas.print-strip .design-heading{font-size:17px;height:8%;top:1.7%}
.design-canvas.print-design .design-photo-grid{position:absolute;top:11.9%;left:7.3%;right:7.3%;height:74.9%;display:flex;flex-direction:column;gap:7px;min-height:0;flex:none}
.design-canvas.print-strip .design-photo-grid{top:10%;height:76.5%;left:6.4%;right:6.4%;gap:5px}
.design-canvas.print-design .design-photo-grid.design-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px}
.design-canvas.print-design.canvas-classic .design-photo-grid:has(> :nth-child(3):last-child){display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.3fr .7fr}.design-canvas.print-design.canvas-classic .design-photo-grid:has(> :nth-child(3):last-child) .design-photo-placeholder:first-child{grid-column:span 2}
.design-canvas.print-design .design-photo-placeholder{position:relative;background:#8595a1;min-height:0;flex:1;overflow:hidden;border:var(--frame-width) solid var(--frame-color);border-radius:1px;display:grid;place-items:center}
.photo-placeholder-art{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,#f6e9d940 0 16%,transparent 17%),radial-gradient(ellipse at 50% 117%,#1a314270 0 52%,transparent 53%),linear-gradient(140deg,#d2b8a8,#7a8e9d 68%,#506678)}
.design-photo-placeholder:nth-child(2) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 39%,#f6dfc240 0 16%,transparent 17%),radial-gradient(ellipse at 50% 117%,#20394978 0 52%,transparent 53%),linear-gradient(140deg,#a9bec0,#8a8493 68%,#5a7583)}
.design-photo-placeholder:nth-child(3) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 39%,#f6e9d940 0 16%,transparent 17%),radial-gradient(ellipse at 50% 117%,#29374570 0 52%,transparent 53%),linear-gradient(140deg,#e9c5a5,#a5a3a3 68%,#69747f)}
.design-photo-placeholder:nth-child(4) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 39%,#f6e9d940 0 16%,transparent 17%),radial-gradient(ellipse at 50% 117%,#29374570 0 52%,transparent 53%),linear-gradient(140deg,#92acac,#8a8d86 68%,#536873)}
.design-canvas.print-design .design-photo-placeholder span{z-index:1;align-self:end;justify-self:start;margin:9px;background:#1222348a;color:#fff;font-size:10px;font-weight:800;letter-spacing:1px;border-radius:4px;padding:5px}
.design-canvas.print-design .design-draggable{position:absolute;z-index:4;transform:translate(-50%,-50%);font-size:30px;font-family:system-ui,sans-serif;font-weight:800;line-height:1.05;text-transform:none;cursor:grab;border:1px dashed #ffffff90;border-radius:4px;background:#12223327;text-shadow:0 2px 8px #0009;color:#fff;max-width:90%;width:max-content;min-width:65px;padding:4px 7px;touch-action:none;white-space:normal;overflow-wrap:anywhere;text-align:center;user-select:none}
.design-canvas.print-design .design-draggable:focus{outline:2px solid #f6cf9c;outline-offset:3px}.design-canvas.print-design .design-draggable:active{cursor:grabbing}
.design-date{position:absolute;bottom:2.6%;left:5%;right:5%;text-align:center;color:#f5dfc4;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;font-weight:700}
.design-canvas.print-strip .design-date{font-size:7px;bottom:2.2%}
.print-preview-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 22px;border-bottom:1px solid #eae7e2}
.print-preview-bottom div{display:flex;flex-direction:column;gap:5px}.print-preview-bottom strong{font-size:13px}.print-preview-bottom span{font-size:10px;color:#919ca7}.print-preview-bottom .btn{white-space:nowrap;min-height:38px;font-size:11px;padding:0 11px}
.designer-hint{display:flex;align-items:center;gap:10px;padding:15px 22px 20px;color:#7e8c99;font-size:11px;line-height:1.55}.designer-hint svg{color:#b57c5d}
@media(max-width:1250px){.studio-builder{grid-template-columns:minmax(0,1fr) minmax(325px,.85fr)}.studio-section{padding:23px 20px}.studio-form-actions{padding:20px}.design-canvas.print-design{width:300px}.design-canvas.print-design.print-strip{width:184px}.studio-preview-stage{min-height:580px}}
@media(max-width:1050px){.studio-builder{grid-template-columns:minmax(0,1fr)}.studio-preview-panel{position:static;grid-row:1}.studio-preview-stage{min-height:530px}.design-canvas.print-design{width:330px}.design-canvas.print-design.print-strip{width:175px}.studio-intro{align-items:start}}
@media(max-width:760px){.sidebar{background:#fff;border-top:1px solid #e5e7e9}.nav-item{color:#667180}.nav-item.active{background:#152539;color:#fff;box-shadow:none}.nav-item:hover{color:#283b50;background:#f3f5f6}.content{padding:23px 14px 45px}.studio-intro{gap:12px;margin-bottom:16px}.studio-intro h1{font-size:28px;letter-spacing:-1.1px}.studio-intro p{font-size:12px;line-height:1.5}.studio-crumb{font-size:9px}.studio-launch{font-size:10px;padding:0 10px;white-space:normal}.studio-context{padding:11px 12px}.studio-context strong{font-size:12px}.studio-context div span{font-size:10px}.designer-save-status{font-size:9px;padding:5px 8px}.studio-preview-stage{min-height:505px;padding:20px 10px}.design-canvas.print-design{width:min(290px,90%)}.design-canvas.print-design.print-strip{width:150px}.studio-preview-heading{padding:17px 18px}.designer-hint{padding:13px 18px}.studio-section{padding:19px 16px}.layout-choice{padding:12px 6px;min-height:143px;gap:8px}.layout-choice-body strong{font-size:10px}.layout-choice-body small{font-size:9px}.layout-choice-art{height:60px}.layout-choice-art.strip{height:66px}.designer-field-pair{gap:10px}.studio-form-actions{padding:16px}.studio-form-actions .btn{flex:1}}
@media(max-width:400px){.studio-intro{flex-direction:column}.studio-launch{align-self:stretch}.designer-field-pair{grid-template-columns:1fr}.layout-choices{gap:6px}.design-canvas.print-design{width:250px}.design-canvas.print-design.print-strip{width:143px}.studio-preview-stage{min-height:485px}.studio-context-icon{display:none}.studio-context div span{font-size:9px}}

.design-canvas.print-design .design-heading,.design-canvas.print-design .design-date{color:var(--print-ink,#fffaf3)}
.design-canvas.print-design .design-photo-grid{height:72.5%}.design-canvas.print-strip .design-photo-grid{height:74.9%}

/* v13: Custom layout upload panel and image layering (desktop + touch) */
.visually-hidden-file{position:absolute!important;width:1px;height:1px;overflow:hidden;opacity:0;clip-path:inset(50%)}
.custom-layout-section{background:#fff}
.custom-layout-dropzone{margin-top:2px;border:2px dashed #d3bba8;border-radius:15px;min-height:104px;padding:19px 17px;display:flex;gap:14px;align-items:center;cursor:pointer;background:#fffbf7;transition:background .2s,border-color .2s}
.custom-layout-dropzone:hover,.custom-layout-dropzone.is-dragover,.custom-layout-dropzone:focus-within{background:#fff1e5;border-color:#b37d5b}
.custom-layout-upload-icon{width:48px;height:48px;flex:0 0 48px;border-radius:12px;background:#faebdd;color:#98664b;display:grid;place-items:center}
.custom-layout-dropzone>span:nth-child(2){min-width:0;flex:1}.custom-layout-dropzone strong{font-size:12px;line-height:1.5;display:block;color:#243245}.custom-layout-dropzone small{font-size:11px;color:#788493;line-height:1.5;display:block;margin-top:3px}.custom-upload-action{padding:9px 11px;white-space:nowrap;border-radius:9px;background:#243245;color:#fff;font-size:10px;font-weight:800}
.custom-template-current{display:flex;align-items:center;gap:10px;padding:13px;margin-top:11px;border:1px solid #e9e3dc;border-radius:11px;background:#fff}.custom-template-current[hidden]{display:none}.custom-template-thumb{width:38px;height:38px;display:grid;place-items:center;background:#f5e7dc;color:#98664b;border-radius:9px;flex-shrink:0}.custom-template-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.custom-template-info strong{font-size:12px;overflow-wrap:anywhere}.custom-template-info small{font-size:10px;color:#8491a0}.custom-template-options{display:flex;flex-direction:column;gap:12px;margin-top:18px}.custom-option{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.4;font-weight:600;color:#34465a}.custom-option input{accent-color:#b88061;width:16px;height:16px;margin:1px 0 0;flex-shrink:0}.custom-template-tip{margin-top:15px;font-size:11px;line-height:1.65;color:#607084;background:#f3f6f7;padding:11px 13px;border-radius:10px}.custom-template-size{margin-top:10px;color:#9b7a61;font-size:11px;font-weight:750}
.design-canvas.print-design .design-custom-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;border:0;padding:0;margin:0}
.design-canvas.print-design .design-custom-layer[hidden]{display:none}
.design-canvas.print-design .design-custom-layer[data-mode=background]{z-index:0}
.design-canvas.print-design .design-custom-layer[data-mode=overlay]{z-index:3}
.design-canvas.print-design .design-photo-grid{z-index:2}
.design-canvas.print-design .design-heading,.design-canvas.print-design .design-date{z-index:5}
.design-canvas.print-design .design-draggable{z-index:6}
.design-canvas.print-design.custom-hide-native-text .design-heading,.design-canvas.print-design.custom-hide-native-text .design-date,.design-canvas.print-design.custom-hide-native-text .design-draggable,.design-canvas.print-design.custom-hide-native-text .design-accent-top,.design-canvas.print-design.custom-hide-native-text .design-accent-bottom{display:none}
.mock-print{position:relative}.mock-template-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.mock-template-layer.above{z-index:4}.mock-template-layer.behind{z-index:0}.mock-print>small,.mock-print>.mock-photo,.mock-print>.mock-rows{position:relative;z-index:1}
@media(max-width:600px){.custom-layout-dropzone{padding:13px;flex-wrap:wrap;min-height:120px}.custom-upload-action{margin-left:auto}.custom-template-current{flex-wrap:wrap}.custom-template-current .btn{margin-left:auto}}

/* Uploaded artwork uses the same paper coordinate system as PNG export. */
.design-canvas.print-design{border:0;outline:7px solid #fff}
.design-canvas.print-design .design-photo-grid{left:5.833%;right:5.833%;top:11.944%;height:71.944%;gap:6px}
.design-canvas.print-design.print-strip .design-photo-grid{left:6.333%;right:6.333%;top:9.889%;height:74.833%;gap:4.3px}
.design-canvas.print-design .design-photo-placeholder{border:0;outline:calc(var(--frame-width) * .56) solid var(--frame-color)}
.design-canvas.print-design.print-strip .design-photo-placeholder{outline-width:calc(var(--frame-width) * .53)}

/* v14 — Drag / resize individual print photo frames and adjust camera composition. */
.frame-editor-section{background:linear-gradient(180deg,#fff,#fcfbf8)}
.frame-editor-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.editor-mini-label{font-size:10px;letter-spacing:1.2px;font-weight:900;color:#697789}
.frame-select-row{display:flex;gap:7px;flex-wrap:wrap}
.frame-select-row button{display:flex;align-items:center;gap:6px;padding:9px 11px;border-radius:9px;background:#f3f5f6;border:1px solid #e6e9ec;color:#354454;font-size:11px;font-weight:750}
.frame-select-row button.is-active{background:#172431;color:#fff;border-color:#172431;box-shadow:0 3px 12px #10263b2a}
.frame-select-row svg{width:14px;height:14px}
.photo-edit-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.photo-edit-tabs button{border-radius:10px;background:#f5f6f7;padding:12px 8px;border:1px solid #e6e9ea;color:#536273;font-size:12px;font-weight:800}
.photo-edit-tabs button.is-active{background:#f2e8dc;border-color:#cfaf90;color:#775438}
.frame-mode-note,.frame-editor-tip{color:#708092;font-size:11px;line-height:1.7;margin-bottom:17px}
.frame-editor-tip{margin:15px 0 0}
.selected-frame-header{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:17px 0 13px;padding-top:14px;border-top:1px solid #e9ebed}
.selected-frame-header strong{font-size:12px;color:#253448}.frame-reset-button{border:0;background:none;color:#ad7355;font-size:11px;font-weight:800}
.frame-controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.frame-control-field{min-width:0;position:relative;padding-top:0!important;font-size:11px!important}
.frame-control-field output{position:absolute;right:0;top:0;font-size:11px;font-variant-numeric:tabular-nums;color:#a57657}
.frame-control-field input[type=range]{width:100%;margin-top:12px;accent-color:#bd8a65}
.frame-editor-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.frame-editor-actions .btn{font-size:11px;padding:0 13px}
.design-canvas.print-design .design-photo-grid.frame-editor-layer{position:absolute;inset:0;top:0;left:0;right:0;height:100%;width:100%;display:block;overflow:visible;pointer-events:none;z-index:2}
.design-canvas.print-design .editable-photo-frame{position:absolute;min-width:0;min-height:0;display:block;border:0;outline:0;border-radius:0;overflow:visible;touch-action:none;user-select:none;cursor:grab;background:transparent;pointer-events:auto}
.design-canvas.print-design .editable-photo-frame:active{cursor:grabbing}
.design-canvas.print-design .editable-photo-frame.is-selected{box-shadow:0 0 0 2px #f9bb73,0 0 0 5px #122234c9;z-index:2}
.design-canvas.print-design .editable-photo-frame:focus-visible{box-shadow:0 0 0 3px #f9bb73,0 0 0 6px #122234c9}
.design-canvas.print-design .frame-camera-content{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;transform-origin:center;pointer-events:none}
.design-canvas.print-design .editable-photo-frame:before{content:'';position:absolute;inset:0;outline:calc(var(--frame-width) * .56) solid var(--frame-color);z-index:2;pointer-events:none}
.design-canvas.print-strip .editable-photo-frame:before{outline-width:calc(var(--frame-width) * .53)}
.design-canvas.print-design .editable-photo-frame .photo-placeholder-art{position:absolute;inset:0;width:100%;height:100%}
.design-canvas.print-design .editable-photo-frame .frame-number{position:absolute;top:5px;left:5px;bottom:auto;right:auto;font-size:9px;color:#fff;background:#152639b8;border-radius:4px;padding:3px 5px;z-index:3;pointer-events:none}
.design-canvas.print-design .editable-photo-frame .frame-live-feed{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1}
.design-canvas.print-design .editable-photo-frame .frame-live-feed[hidden]{display:none}
.design-canvas.print-design .editable-photo-frame .frame-resize-handle{position:absolute;bottom:-8px;right:-8px;width:23px;height:23px;border-radius:6px;border:2px solid #fff;background:#c58e5d;box-shadow:0 2px 9px #0008;z-index:8;cursor:nwse-resize;pointer-events:auto}
.design-canvas.print-design .editable-photo-frame .frame-resize-handle:after{content:'↘';position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:900;color:white;line-height:1}
.design-canvas.print-design .editable-photo-frame:not(.is-selected) .frame-resize-handle{display:none}
.design-canvas.print-design .editable-photo-frame:not(.is-selected):hover{outline:1px dashed #f8daaf}
.design-canvas.print-design .editable-photo-frame .photo-placeholder-art{background:radial-gradient(ellipse at 50% 38%,#fae6d053 0 15%,transparent 16%),radial-gradient(ellipse at 50% 119%,#25374988 0 53%,transparent 54%),linear-gradient(135deg,#bcac9e,#718497)}
.design-canvas.print-design .editable-photo-frame:nth-child(2) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 38%,#fae6d053 0 15%,transparent 16%),radial-gradient(ellipse at 50% 119%,#25374988 0 53%,transparent 54%),linear-gradient(135deg,#9eb3ad,#596b83)}
.design-canvas.print-design .editable-photo-frame:nth-child(3) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 38%,#fae6d053 0 15%,transparent 16%),radial-gradient(ellipse at 50% 119%,#25374988 0 53%,transparent 54%),linear-gradient(135deg,#e2bda7,#627484)}
.design-canvas.print-design .editable-photo-frame:nth-child(4) .photo-placeholder-art{background:radial-gradient(ellipse at 50% 38%,#fae6d053 0 15%,transparent 16%),radial-gradient(ellipse at 50% 119%,#25374988 0 53%,transparent 54%),linear-gradient(135deg,#a4bac0,#687176)}
.design-canvas.print-design .design-photo-placeholder span.frame-number{align-self:auto;justify-self:auto;margin:0}
@media(max-width:760px){.frame-controls-grid{gap:10px 12px}.frame-select-row button{padding:8px}.frame-editor-actions .btn{flex:1}.design-canvas.print-design .editable-photo-frame .frame-resize-handle{width:21px;height:21px}}

.design-canvas.print-design .editable-photo-frame .frame-viewport{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}

/* v14 unified mini print preview: matches the saved frame geometry. */
.mock-print.mock-precise{position:relative;display:block;padding:0;border:6px solid white;overflow:hidden;width:min(240px,85%);aspect-ratio:2/3;height:auto;gap:0}
.mock-print.mock-precise.mock-strip{width:min(110px,70%);aspect-ratio:1/3}
.mock-precise .mock-photo-precise{position:absolute;overflow:hidden;background:#8397aa;z-index:1}
.mock-precise .mock-photo-media{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 34%,#ffe3bf70 0 14%,transparent 15%),linear-gradient(125deg,#afb9bd,#657e8c);color:#fff9;font-size:23px;font-weight:900;text-shadow:0 1px 4px #0005}
.mock-precise .mock-photo-precise:nth-child(3) .mock-photo-media{background:linear-gradient(135deg,#8da4ab,#bb9292)}
.mock-precise .mock-photo-precise:nth-child(4) .mock-photo-media{background:linear-gradient(135deg,#dbc0ad,#78909d)}
.mock-precise .mock-print-head,.mock-precise .mock-print-caption,.mock-precise .mock-print-date{position:absolute;display:block;height:auto;color:var(--mock-ink);z-index:5;text-align:center;white-space:normal;line-height:1.1;max-width:95%;overflow-wrap:anywhere}
.mock-precise .mock-print-head{top:2.5%;left:5%;right:5%;font:700 10px Georgia,serif}
.mock-precise .mock-print-caption{transform:translate(-50%,-50%);font:bold 8px system-ui,sans-serif;text-shadow:0 1px 3px #0007}
.mock-precise .mock-print-date{bottom:1%;left:8%;right:8%;font-size:6px}
.booth-preview-print .mock-print.mock-precise{height:auto;width:150px;aspect-ratio:2/3}
.booth-preview-print .mock-print.mock-precise.mock-strip{height:auto;width:90px;aspect-ratio:1/3}
