:root{--bg: #ececf0;--panel: #ffffff;--ink: #1f1f24;--muted: #6b6b75;--line: #dcdce2;--accent: #c2185b;--accent-soft: #fbe3ee;--good: #2e7d32;--ok: #b26a00;--low: #c62828}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.4 Noto Sans,system-ui,sans-serif;color:var(--ink);background:var(--bg);display:flex;flex-direction:column}button{font:inherit;cursor:pointer}[hidden]{display:none!important}.topbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--accent);white-space:nowrap;text-decoration:none}.tabs{display:flex;gap:6px;overflow-x:auto;flex:1;padding-bottom:2px}.tabs button{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:5px 10px;font-size:13px;color:var(--muted);white-space:nowrap}.tabs button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.bleed{font-size:13px;color:var(--muted);white-space:nowrap}.cloud-status{font-size:12px;color:var(--muted);white-space:nowrap}.cloud-status.saved{color:var(--good)}.cloud-status.error{color:var(--low)}.primary{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:8px 14px;font-weight:600;white-space:nowrap}.primary:disabled{opacity:.6;cursor:progress}.product-picker{max-width:220px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font:inherit;font-size:13px;background:var(--panel)}.link-btn{text-decoration:none;white-space:nowrap;font-size:13px}.secondary{background:var(--panel);color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:7px 12px;font-weight:600}.layout{flex:1;display:flex;min-height:0}.sidebar{width:280px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side-tabs{display:flex;border-bottom:1px solid var(--line)}.side-tabs button{flex:1;border:0;background:none;padding:11px 8px;color:var(--muted);border-bottom:2px solid transparent}.side-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.panel{padding:16px;overflow-y:auto;flex:1}.panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.group{margin-bottom:20px}.choices{display:flex;flex-wrap:wrap;gap:6px}.choices button{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 10px}.choices button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.choices.schemes{flex-direction:column}.choices.schemes button{display:flex;align-items:center;gap:10px;text-align:left}.swatches{display:inline-flex}.swatch{width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);margin-left:-4px}.swatch:first-child{margin-left:0}.panel input[type=text],.panel textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;font:inherit}.panel textarea{resize:vertical;line-height:1.45}.hint{font-size:12px;color:var(--muted);margin:6px 0 14px}.photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.photo-list{display:flex;flex-direction:column;gap:8px}.photo-row{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:8px}.photo-row.current{border-color:var(--accent)}.thumb{width:64px;height:44px;border-radius:4px;background:#e6e6ea center/cover no-repeat;border:1px dashed #b9b9c2;padding:0}.thumb.filled{border-style:solid;border-color:transparent}.photo-meta{min-width:0}.photo-meta .label{font-weight:600;font-size:13px}.photo-meta .links{font-size:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.photo-meta .links button{border:0;background:none;padding:0;color:var(--accent);font-size:12px}.badge{font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px}.badge.good{color:var(--good);background:#e8f5e9}.badge.ok{color:var(--ok);background:#fff3e0}.badge.low{color:var(--low);background:#ffebee}.stage-wrap{flex:1;position:relative;display:flex;min-width:0;min-height:0}.stage{flex:1;display:flex;padding:24px;min-width:0;overflow:auto}.stage>.page{margin:auto;flex:none}.stage.dragging .page{outline:3px dashed var(--accent);outline-offset:6px}.page{box-shadow:0 6px 24px #00000026;background:#fff;line-height:0}.page svg{display:block;width:100%;height:auto}.photo-slot{cursor:pointer}.photo-slot:hover{opacity:.88}.page{touch-action:none}.crop-bar{position:absolute;left:50%;bottom:10px;transform:translate(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;box-shadow:0 6px 20px #00000026;max-width:calc(100% - 32px)}.crop-bar .crop-label{font-weight:600}.crop-bar .crop-hint{color:var(--muted);font-size:12px}.crop-bar input[type=range]{width:140px;accent-color:var(--accent)}.crop-bar button{padding:6px 10px;font-size:13px}.ai-group{padding-bottom:16px;border-bottom:1px solid var(--line)}.ai-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}.ai-row .thumb{width:72px;height:54px}.ai-button{width:100%;padding:10px}.ai-button:disabled{opacity:.5;cursor:not-allowed}.ai-status{margin:8px 0 6px}.progress-bar{height:4px;border-radius:2px;background:var(--accent-soft);overflow:hidden;position:relative}.progress-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:35%;background:var(--accent);border-radius:2px;animation:slide 1.4s ease-in-out infinite}@keyframes slide{0%{left:-35%}to{left:100%}}.ai-group .links{margin-top:8px;font-size:12px}.ai-group .links button{border:0;background:none;padding:0;color:var(--accent)}.stage-tools{position:absolute;right:12px;bottom:12px;display:flex;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:0 4px 14px #0000001f}.stage-tools .tool{border:0;background:none;min-width:30px;height:30px;border-radius:6px;font-size:15px;color:var(--ink)}.stage-tools .tool:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.stage-tools .tool:disabled{opacity:.35;cursor:default}.stage-tools .pct{font-size:12px;min-width:48px}.stage-tools .all-pages,.stage-tools .room-view{font-size:12px;padding:0 8px}.overview{border:0;border-radius:12px;padding:14px 18px 18px;width:min(1100px,calc(100% - 24px));max-height:90vh;box-shadow:0 12px 40px #00000040}.overview::backdrop{background:#14141e59}.overview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.overview-head h2{margin:0;font-size:18px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;overflow-y:auto;max-height:calc(90vh - 80px);padding:2px}.thumb-page{border:2px solid transparent;background:none;padding:6px;border-radius:8px;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.thumb-page:hover{background:var(--accent-soft)}.thumb-page.current{border-color:var(--accent);color:var(--accent);font-weight:600}.thumb-svg{width:100%;line-height:0;box-shadow:0 2px 8px #00000026;background:#fff}.thumb-svg svg{width:100%;height:auto;display:block}.mockup{border:0;border-radius:14px;padding:0;width:min(1100px,calc(100% - 24px));height:min(820px,calc(100vh - 40px));overflow:hidden;box-shadow:0 16px 50px #0000004d}.mockup[open]{display:flex;flex-direction:column}.mockup::backdrop{background:#14141e73}.mockup-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.mockup-head h2{margin:0;font-size:16px}.mockup-controls{display:flex;justify-content:center;gap:12px;padding:10px;background:var(--panel);border-top:1px solid var(--line);min-height:52px}.mockup-controls .choice{display:flex;gap:4px}.mockup-controls .choice button{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:5px 12px;font-size:13px}.mockup-controls .choice button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.mockup-controls .flip{display:flex;align-items:center;gap:10px}.mockup-controls .page-label{min-width:120px;text-align:center;font-weight:600}.scene{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.scene svg{display:block;width:100%;height:100%}.scene-calendar,.scene-poster{background:radial-gradient(ellipse at 28% 18%,#faf7f1,#ebe4d8,#d6ccbb)}.mock-calendar{width:min(70%,110vh);display:flex;flex-direction:column;align-items:center;margin-top:-2%}.mock-calendar .hanger{position:relative;width:70px;height:28px;border:2px solid #5a5a5a;border-bottom:0;border-radius:40px 40px 0 0;margin-bottom:-6px;z-index:3}.mock-calendar .hanger:before{content:"";position:absolute;top:-10px;left:50%;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#bbb,#555);transform:translate(-50%)}.mock-calendar .binding{width:96%;height:16px;margin-bottom:-8px;z-index:2;background:radial-gradient(ellipse 4px 7px at 50% 50%,transparent 3px,#4b4b4b 3.6px,#a8a8a8 5px,transparent 5.6px) 0 0 / 11px 16px repeat-x}.mock-sheet{width:100%;background:#fff;box-shadow:0 1px #e3e3e3,0 2px #fafafa,0 3px #dcdcdc,0 4px #f6f6f6,0 5px #d6d6d6,0 22px 36px #00000040}.scene-card{perspective:1600px;background:linear-gradient(to bottom,#f3eee6 0,#e4dacb 40%,#8f6a45 40%,#8f6a45 41%,transparent 41%),repeating-linear-gradient(0deg,rgba(60,35,10,.05) 0 2px,transparent 2px 11px),linear-gradient(to bottom,#d2a877 40%,#b98c5d)}.mock-card-closed{position:relative;height:68%;display:flex;justify-content:center;transform-style:preserve-3d;margin-top:1%}.card-front{height:100%;background:#fff;transform:rotateY(-20deg);transform-origin:left center;box-shadow:14px 16px 28px #00000047,inset -2px 0 #0000000f}.card-shadow{position:absolute;left:0;right:-18%;bottom:-5%;height:9%;background:radial-gradient(ellipse at 45% 30%,rgba(0,0,0,.32),transparent 70%);z-index:-1}.mock-card-open{display:flex;height:46%;margin-top:24%;transform:rotateX(46deg);transform-style:preserve-3d;filter:drop-shadow(0 26px 16px rgba(0,0,0,.25))}.card-inside{height:100%;background:#fff}.card-inside.left{transform:rotateY(10deg);transform-origin:right center;box-shadow:inset -6px 0 10px -6px #00000040}.card-inside.right{transform:rotateY(-10deg);transform-origin:left center;box-shadow:inset 6px 0 10px -6px #00000040}.mock-frame{display:flex;height:80%;padding:14px;margin-bottom:6%;background:#1c1c1e;box-shadow:inset 0 0 0 1px #ffffff14,0 24px 40px #00000059,0 6px 10px #0003;position:relative;z-index:1}.mock-frame.oak{background:linear-gradient(135deg,#cfa877,#a87c4a 45%,#c79d6a 70%,#a77a47)}.mock-frame.white{background:#f6f5f2;box-shadow:inset 0 0 0 1px #00000014,0 24px 40px #00000047,0 6px 10px #00000026}.mock-frame .mat{display:flex;height:100%;padding:3.6vh;background:#fbfaf6;box-shadow:inset 0 0 0 1px #0000000d,inset 3px 3px 8px #00000024}.mock-print{height:100%;background:#fff;box-shadow:0 0 0 1px #00000014}.scene-poster .floor{position:absolute;left:0;right:0;bottom:0;height:9%;border-top:7px solid #f3efe8;background:repeating-linear-gradient(90deg,#a77f55 0,#a77f55 1px,#b78e64 1px,#b78e64 140px,#ad855b 140px,#ad855b 141px,#bb9268 141px,#bb9268 260px)}.print-check{border:0;border-radius:12px;padding:18px 20px;width:min(560px,calc(100% - 24px));max-height:85vh;box-shadow:0 12px 40px #00000040}.print-check::backdrop{background:#14141e59}.print-check h2{margin:0 0 10px;font-size:18px}.print-check h3{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.print-check h3.problem{color:var(--low)}.print-check h3.check{color:var(--ok)}.print-check .all-good{color:var(--good);font-weight:600}.print-check .issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow-y:auto}.print-check .issues li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:7px 9px;border-radius:8px;font-size:13px}.print-check li.problem{background:#ffebee}.print-check li.check{background:#fff3e0}.print-check .page{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}.print-check .show{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:3px 9px;font-size:12px;color:var(--accent)}.print-check .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.basket-btn{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:6px 12px;font-weight:600;white-space:nowrap}.basket-btn.has-items{border-color:var(--accent);color:var(--accent)}.basket-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--panel);box-shadow:-8px 0 30px #0000002e;display:flex;flex-direction:column;z-index:20}.basket-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.basket-head h2{margin:0;font-size:17px}.icon-btn{border:1px solid var(--line);background:var(--panel);border-radius:6px;width:32px;height:32px;font-size:16px}.icon-btn:disabled{opacity:.4;cursor:default}.crop-bar .filters{display:flex;gap:4px;flex-wrap:wrap;flex-basis:100%;justify-content:center}.crop-bar .filters button{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:3px 10px;font-size:12px}.crop-bar .filters button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.basket-items{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:12px}.basket-item{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px}.basket-item.editing{border-color:var(--accent);background:var(--accent-soft)}.basket-preview{line-height:0;box-shadow:0 2px 8px #00000026;background:#fff;align-self:start}.basket-preview svg{width:100%;height:auto;display:block}.basket-info{min-width:0;display:flex;flex-direction:column;gap:6px}.basket-info .name{font-weight:700}.basket-info .summary{font-size:12px;color:var(--muted)}.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;width:max-content}.qty button{border:0;background:none;width:28px;height:28px;font-size:16px;color:var(--accent)}.qty span{min-width:26px;text-align:center;font-weight:600}.basket-actions{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.basket-actions button{border:0;background:none;padding:0;color:var(--accent)}.basket-actions button.danger{color:var(--low)}.basket-foot{border-top:1px solid var(--line);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.basket-foot .total{display:flex;justify-content:space-between;font-weight:600}.basket-foot .primary{width:100%}.editing-note{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:14px}.editing-note button{border:0;background:none;padding:0;color:var(--accent);font-weight:600}.toast{position:fixed;z-index:30;left:50%;bottom:20px;transform:translate(-50%);background:#1f1f24;color:#fff;padding:10px 16px;border-radius:8px;max-width:min(520px,calc(100% - 32px));box-shadow:0 6px 20px #00000040}@media (max-width: 760px){.topbar{flex-wrap:wrap;gap:8px;padding:8px 10px}.topbar .primary,.topbar .secondary,.basket-btn{padding:6px 10px;font-size:13px}.tabs{order:3;flex-basis:100%}.bleed{display:none}.layout{flex-direction:column}.stage-wrap{order:-1;flex:none;height:46vh}.stage{padding:12px}.crop-bar{bottom:52px}.stage-tools{right:8px;bottom:8px}.sidebar{width:auto;border-right:0;border-top:1px solid var(--line);flex:1;min-height:0}.crop-bar{bottom:6px;padding:6px 8px;gap:6px}.crop-bar .crop-hint{display:none}.basket-item{grid-template-columns:90px 1fr}}.art-tints{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted)}.art-tint{width:28px;height:28px;border-radius:14px;border:2px solid #ddd;padding:0;cursor:pointer}.art-tint[data-tint=""]{width:auto;padding:0 10px;background:#fff;font-size:12px}.art-tint.active{outline:2px solid var(--accent);outline-offset:2px}.art-tints input[type=color]{width:34px;height:30px;padding:0;border:0;background:none;cursor:pointer}.art-groups{overflow-y:auto;max-height:calc(90vh - 120px)}.art-groups h3{font-size:13px;margin:12px 0 6px;color:var(--muted)}.art-groups .overview-grid{max-height:none;overflow:visible}.lib-thumb img{width:100%;height:150px;object-fit:contain;background:#faf8f4;box-shadow:0 2px 8px #0000001f}.lib-thumb span{text-align:center}
