:root{
  --bg:#1a1e2b;--panel:#242937;--panel2:#1a1e2b;--line:#3a4050;--acc:#e67e22;--acc2:#d35400;
  --txt:#e0e0e0;--mut:#9aa1b0;--red:#ff6b5e;--blue:#3498db;--ok:#2ecc71;
}
*{box-sizing:border-box;margin:0;padding:0}
input,textarea,select,button{font-family:inherit}
body{font-family:'Segoe UI',Roboto,system-ui,sans-serif;background:var(--bg);color:var(--txt);line-height:1.5}

.app{display:flex;height:100vh;height:100dvh;max-width:1700px;margin:0 auto;background:var(--bg);box-shadow:0 0 30px rgba(0,0,0,.7)}

/* ---------- боковая панель ---------- */
.sidebar{width:340px;flex:none;background:var(--panel);padding:14px 14px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--line);z-index:10}
.side-head{display:flex;align-items:center;gap:12px}
.side-title{font-weight:700;font-size:16px;line-height:1.2;color:#fff}
.home-button{width:40px;height:40px;flex:none;background:linear-gradient(145deg,#4CAF50,#3d8b40);border-radius:30%;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.2),inset 0 2px 0 rgba(255,255,255,.3),inset 0 -2px 0 rgba(0,0,0,.2);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}
.home-button:hover{transform:scale(1.1)}
.home-icon{width:26px;height:26px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}

.grp{background:#1f2431;border:1px solid var(--line);border-radius:10px;padding:0 12px 12px}
.grp>summary{cursor:pointer;font-weight:600;font-size:14px;color:#b0b9d0;padding:10px 0;list-style:none;user-select:none}
.grp>summary::-webkit-details-marker{display:none}
.grp>summary::after{content:'▾';float:right;color:var(--mut)}
.grp:not([open])>summary::after{content:'▸'}
.grp[open]>summary{margin-bottom:2px}
.grp>*:not(summary){margin-top:9px}

.row{display:flex;align-items:center;gap:8px;font-size:13px;color:#b0b9d0}
.row>select,.row>input[type=range]{flex:1;min-width:0}
.row output{width:42px;text-align:right;font-size:12px;color:var(--mut)}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:#cfd5e4;cursor:pointer}
.chk input{width:17px;height:17px;accent-color:var(--acc)}
input[type=range]{accent-color:var(--acc);height:20px}
select,input[type=file],input[type=number],.form-group input,.form-group textarea{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:#fff;font-size:14px;padding:8px 10px;outline:none}
select{width:100%}
select:focus,input:focus,textarea:focus{border-color:var(--acc)}
input[type=file]{width:100%;cursor:pointer;padding:7px;font-size:13px}
input[type=file]::file-selector-button{background:var(--line);border:none;padding:6px 12px;border-radius:6px;color:#fff;margin-right:10px;cursor:pointer}
.note{font-size:12px;color:var(--mut);line-height:1.4}
.colors{display:flex;gap:8px;flex-wrap:wrap}
.colors label{flex:1;min-width:84px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:#b0b9d0}
.colors input[type=color]{width:100%;height:34px;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer;padding:2px}

/* форматы */
.fmt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.fmt input,.seg input{position:absolute;opacity:0;pointer-events:none}
.fmt-in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1px;padding:7px 2px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--panel2);height:100%;transition:border-color .15s,background .15s}
.fmt-in b{font-size:16px;color:#fff}
.fmt-in small{font-size:10px;color:var(--mut)}
.fmt-in em{font-style:normal;font-size:12px;color:var(--txt);font-weight:600}
.fmt-in .red{font-size:10px;line-height:1.15}
.fmt input:checked+.fmt-in{border-color:var(--acc);background:rgba(230,126,34,.14)}
.fmt input:focus-visible+.fmt-in,.seg input:focus-visible+span{outline:2px solid var(--blue)}
.seg{display:flex;gap:6px}
.seg label{flex:1;position:relative}
.seg span{display:block;text-align:center;padding:8px 4px;border:1px solid var(--line);border-radius:8px;font-size:13px;cursor:pointer;background:var(--panel2)}
.seg input:checked+span{border-color:var(--acc);background:rgba(230,126,34,.14);color:#fff}
.red{color:var(--red);font-weight:600}
.ico{display:inline-block;border:2px solid currentColor;border-radius:2px;vertical-align:-2px;margin-right:4px}
.ico-p{width:11px;height:15px}
.ico-l{width:15px;height:11px}

/* качество фото */
.quality{font-size:12px;padding:7px 10px;border-radius:8px;border:1px solid var(--line);line-height:1.35}
.quality.ok{border-color:var(--ok);color:#8be8b3}
.quality.mid{border-color:#e6b422;color:#f3d675}
.quality.bad{border-color:var(--red);color:var(--red)}

/* кнопки */
.btn{padding:10px 16px;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s;text-align:center}
.btn-primary{background:var(--acc);color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2)}
.btn-primary:hover{background:var(--acc2);transform:translateY(-2px)}
.btn-primary#orderBtn{background:#ffcc00;color:#1a1a1a;font-weight:800;font-size:18px;min-height:58px;box-shadow:0 4px 14px rgba(255,204,0,.35)}
.btn-primary#orderBtn:hover{background:#ffd633}
.btn-primary:disabled{opacity:.6;cursor:wait;transform:none}
.btn-ghost{background:transparent;border:1px solid var(--line);color:#b0b9d0;padding:7px 12px;font-size:13px}
.btn-ghost:hover{border-color:var(--acc);color:#fff}
.order-box{margin-top:auto;display:flex;flex-direction:column;gap:8px;position:sticky;bottom:-20px;background:var(--panel);padding:10px 0 4px;border-top:1px solid var(--line)}
.price-sum{font-size:13px;line-height:1.4;color:#cfd5e4}
.price-sum b{color:#fff}

/* ---------- область редактора ---------- */
.editor-wrapper{flex:1;min-width:0;display:flex;flex-direction:column}
.editor-title{text-align:center;color:#fff;font-size:17px;font-weight:600;padding:8px 20px;background:#0f131c;border-bottom:1px solid #2c3e50;flex:none}
.editor-area{flex:1;min-height:0;background:#0f131c;padding:14px;display:flex}
.stage{flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:12px;box-shadow:inset 0 0 20px #00000088;overflow:hidden}

/* ЛИСТ. Размеры в px задаёт JS, всё внутри — в em/%. */
.page{position:relative;background:#fff;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.6);touch-action:none;user-select:none;-webkit-user-select:none;flex:none}
.zone{position:absolute;left:0;top:0;width:100%;height:66.6667%;overflow:hidden;background:#e7eaf0}
.page.full .zone{height:100%}
.zone img{position:absolute;max-width:none;display:block;pointer-events:none}
.zone img[hidden]{display:none}
.page.has-photo .zone{cursor:grab;background:#fff}
.page.dragging .zone{cursor:grabbing}
.ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4em;color:#6b7385;font-size:clamp(14px,2.4vw,28px);font-weight:600;cursor:pointer;text-align:center;border:2px dashed #b9c0cf;margin:2%}
.ph small{font-size:.5em;font-weight:400}
.page.has-photo .ph{display:none}
.divider{position:absolute;left:0;right:0;height:16px;margin-top:-8px;cursor:ns-resize;z-index:5;touch-action:none}
.divider::before{content:'';position:absolute;left:0;right:0;top:6px;height:3px;background:#2d6cff}
.divider::after{content:'';position:absolute;left:50%;top:1px;width:44px;height:14px;margin-left:-22px;border-radius:7px;background:#2d6cff;box-shadow:inset 0 0 0 4px #2d6cff,inset 0 -1px 0 5px #fff}
.page.full .divider{display:none}
.under{position:absolute;display:none;background:#fff}
.months{position:absolute;color:var(--num);font-family:'Roboto Condensed','Arial Narrow',Arial,sans-serif;font-weight:700;line-height:1;white-space:nowrap;pointer-events:none}
.months.glow{text-shadow:0 0 .3em #fff,0 0 .3em #fff}
.months .mn{position:absolute;text-align:center;color:var(--name);text-shadow:inherit}
.months .grid{position:absolute;display:grid;grid-auto-flow:column;}
.months .grid i{font-style:normal;text-align:center;display:block}
.months .grid i.o,.months .wl i.o{color:var(--off)}
.months .wl{position:absolute}
.months .wl i{font-style:normal;display:block}
.year{position:absolute;transform:translate(-50%,-50%);line-height:1;white-space:nowrap;cursor:move;touch-action:none;user-select:none;-webkit-user-select:none;padding:0 .1em}
.year:hover{outline:1px dashed rgba(52,152,219,.9);outline-offset:.04em}
.year[hidden]{display:none}

/* ---------- SEO-блок ---------- */
.seo{background:#151925;border-top:1px solid var(--line);padding:48px 20px 64px}
.seo article{max-width:980px;margin:0 auto;font-size:16px;line-height:1.7;color:#cfd5e4}
.seo h2{font-size:26px;color:#fff;margin:34px 0 12px;line-height:1.25}
.seo h2:first-child{margin-top:0}
.seo h3{font-size:19px;color:#fff;margin:22px 0 8px}
.seo p{margin:10px 0}
.seo ul,.seo ol{margin:10px 0 10px 24px}
.seo li{margin:4px 0}
.table-wrap{overflow-x:auto;margin:12px 0}
.seo table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.seo th,.seo td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.seo thead th{background:#242937;color:#fff}
.faq{border:1px solid var(--line);border-radius:10px;padding:0 16px;margin:10px 0;background:#1b2030}
.faq summary{cursor:pointer;padding:13px 0;font-weight:600;color:#fff}
.faq p{margin:0 0 14px}

/* ---------- модальное окно ---------- */
.modal{display:none;position:fixed;z-index:1000;inset:0;background:rgba(0,0,0,.7);align-items:center;justify-content:center}
.modal.show{display:flex}
.modal-content{background:var(--panel);border-radius:16px;padding:25px;width:92%;max-width:520px;max-height:92vh;overflow-y:auto;box-shadow:0 10px 30px #00000099;border:1px solid var(--line);position:relative}
.modal-content h3{margin-bottom:12px;color:#fff;font-size:21px}
.close-modal{position:absolute;right:18px;top:12px;font-size:30px;color:#aaa;cursor:pointer;line-height:1}
.close-modal:hover{color:#fff}
.order-info{font-size:13px;color:#b0b9d0;background:var(--panel2);border-radius:8px;padding:10px 12px;margin-bottom:16px;line-height:1.5}
.form-group{margin-bottom:15px}
.form-group label{display:block;margin-bottom:5px;font-size:14px;color:#b0b9d0}
.form-group input,.form-group textarea{width:100%;padding:11px;font-size:15px}
.req{color:#e74c3c}
.checkbox-row{display:flex;align-items:flex-start;gap:8px}
.checkbox-row input{width:18px!important;height:18px;margin-top:3px;accent-color:var(--acc)}
.checkbox-row label{margin:0;font-size:12px}
.price-box{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:15px;font-size:14px;line-height:1.5}
.price-box .total{font-size:18px;color:#fff;font-weight:700}
.form-status{margin-top:14px;text-align:center;font-size:14px}
.form-status.success{color:var(--ok)}
.form-status.error{color:#e74c3c}
#orderSubmitBtn{width:100%;padding:14px;font-size:16px;margin-top:6px}

/* ---------- мобильные ---------- */
@media (max-width:900px){
  .app{flex-direction:column;height:auto;min-height:100vh}
  .editor-wrapper{order:-1;position:sticky;top:0;flex:none;height:52vh;height:52svh;z-index:20}
  .editor-title{font-size:14px;padding:6px 10px}
  .editor-area{padding:8px}
  .sidebar{width:100%;overflow:visible;border-right:none;border-top:1px solid var(--line)}
  .order-box{position:sticky;bottom:0;z-index:20;background:var(--panel);padding:10px 12px;margin:0 -14px;box-shadow:0 -6px 18px rgba(0,0,0,.45);border-top:none}
  .seo h2{font-size:22px}
}
