:root{--photo-bg:#0c3047;--photo-surface:#10435e;--photo-surface-2:#0b354d;--photo-line:rgba(142,214,229,.22);--photo-line-strong:rgba(142,214,229,.38);--photo-text:#f4f8fb;--photo-muted:#aec8d5;--photo-green:#23865e;--photo-green-dark:#1a6849;--photo-danger:#cc6971;--photo-shadow:0 22px 54px rgba(1,19,29,.22)}*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}main{max-width:1460px;margin:0 auto;padding:26px 28px 56px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid var(--photo-line);border-radius:18px;background:linear-gradient(135deg,#144f69eb,#0c3449f0);box-shadow:var(--photo-shadow)}.page-head-copy{display:flex;align-items:center;gap:16px;min-width:0}.page-icon{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:15px;border:1px solid rgba(224,164,109,.42);background:#b969322e;color:#efb373}.page-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.page-head h1{margin:0;color:var(--photo-text);font-size:clamp(26px,3vw,38px);line-height:1.12;letter-spacing:-.025em}.page-head p{max-width:820px;margin:7px 0 0;color:#c2d7e1;font-size:14px;line-height:1.6}.workspace{display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);gap:18px;align-items:start}.editor-panel{grid-column:1;grid-row:1}.panel{border:1px solid var(--photo-line);border-radius:17px;background:linear-gradient(180deg,#114660f5,#0a3247fa);box-shadow:var(--photo-shadow);overflow:hidden}.panel-head{padding:17px 18px;border-bottom:1px solid var(--photo-line);background:#082b3e57}.panel-head h2{margin:0;color:var(--photo-text);font-size:17px;font-weight:650}.panel-head p{margin:5px 0 0;color:var(--photo-muted);font-size:12px;line-height:1.5}.panel-head.editor-guidance h2{font-size:34px!important;line-height:1.15!important}.panel-body{padding:18px}.dropzone{min-height:158px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--photo-line-strong);border-radius:14px;background:#0523336b;transition:.18s ease}.dropzone.dragging{border-color:#6ad2ad;background:#1f805b21;transform:translateY(-1px)}.preview-stage.file-dragging{outline:2px dashed #3f7056;outline-offset:-8px}.dropzone strong{font-size:15px;color:#edf7f9}.dropzone span{margin:6px 0 13px;color:#9eb9c7;font-size:12px;line-height:1.45}.dropzone-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.btn{min-height:40px;padding:0 15px;border:1px solid transparent;border-radius:10px;color:#fff;font-size:13px;font-weight:520;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.16s ease}.btn-green{border-color:var(--up-v40-green-border,#4b9d7b);background:linear-gradient(180deg,var(--up-v40-green-top,#287a5a),var(--up-v40-green-bottom,#1d5b44));box-shadow:0 8px 18px #083f2b33}.btn-green:hover{border-color:var(--up-v40-green-hover-border,#61b28f);background:linear-gradient(180deg,var(--up-v40-green-hover-top,#318967),var(--up-v40-green-hover-bottom,#24684f));filter:none;transform:translateY(-1px)}.btn-muted{border-color:#477084;background:#123d55;color:#d7e7ee}.btn-muted:hover{border-color:#67a0b7;background:#174a64}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none;filter:none}#fileInput{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.add-notice{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid rgba(204,105,113,.55);border-radius:10px;background:#cc69711f;color:#f3d6d9;font-size:12px;line-height:1.5}.add-notice[hidden]{display:none!important}.add-notice-text{flex:1;min-width:0;overflow-wrap:anywhere}.add-notice-text b{display:block}.add-notice-text ul{margin:4px 0 0;padding-left:18px}.add-notice-text a{color:inherit;font-weight:650;text-decoration:underline}.add-notice-close{flex:0 0 auto;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;font-size:17px;line-height:1}.add-notice-close:hover,.add-notice-close:focus-visible{background:#cc69712e}.settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:14px}.field{min-width:0}.field-wide{grid-column:1/-1}.photo-fit-note{display:block;margin-top:6px;font-size:11px;line-height:1.5;color:inherit}.photo-fit-note[hidden]{display:none!important}.field label{display:block;margin:0 0 6px;color:#d7e7ee;font-size:11px;font-weight:560}.field select{width:100%;height:42px;padding:0 11px;border:1px solid #3a6479;border-radius:10px;outline:none;background:#0c3249;color:#edf6f9;font-size:13px}.field select:focus{border-color:#68b6b4;box-shadow:0 0 0 3px #68b6b41a}.margin-control{display:flex;align-items:stretch}.field .margin-control>select,.field .margin-control>input{flex:1 1 50%;width:50%;min-width:0;height:42px;box-sizing:border-box}.field .margin-control>input{padding:0 11px;border:1px solid #3a6479;outline:none;background:#0c3249;color:#edf6f9;font:inherit;font-size:13px}html body:not(#up-palette-a#up-palette-b#up-palette-c) .margin-control>select{border-top-right-radius:0!important;border-bottom-right-radius:0!important}html body:not(#up-palette-a#up-palette-b#up-palette-c) .margin-control>input{border-left:0!important;border-radius:0 10px 10px 0!important}.field .margin-control>input:focus{border-color:#68b6b4;box-shadow:0 0 0 3px #68b6b41a}.frame-picker{position:relative}.frame-button{width:100%;height:42px;padding:0 11px;display:flex;align-items:center;gap:9px;border:1px solid #3a6479;border-radius:10px;background:#0c3249;color:#edf6f9;font-size:13px;font-weight:520;text-align:left}.frame-button:hover,.frame-button:focus-visible{border-color:#68b6b4;box-shadow:0 0 0 3px #68b6b41a;outline:0}.frame-swatch{width:20px;height:20px;flex:0 0 20px;border:2px solid rgba(255,255,255,.72);border-radius:6px;background:#000;box-shadow:0 0 0 1px #00000040}.frame-button small{margin-left:auto;color:#91aebb;font-size:10px;font-weight:450;letter-spacing:.02em}.frame-color-input{position:absolute;width:1px;height:1px;right:0;bottom:0;opacity:0;pointer-events:none}.summary{margin:13px 0 0;padding:11px 12px;border:1px solid rgba(113,186,199,.18);border-radius:10px;background:#06253670;color:#c7dbe4;font-size:12px;line-height:1.5}.summary b{color:#80ddbd;font-weight:650}.photo-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 9px}.photo-list-head b{color:#eef6f8;font-size:13px;font-weight:620}.link-btn{padding:0;border:0;background:none;color:#8cc8d7;font-size:11px;font-weight:500}.link-btn:hover{color:#ccebf1;text-decoration:underline}.photo-list{display:grid;gap:8px;max-height:420px;overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:#37647a transparent}.photo-empty{padding:20px 10px;border:1px solid rgba(121,184,199,.14);border-radius:10px;color:#789aaa;text-align:center;font-size:11px}.photo-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid rgba(121,184,199,.16);border-radius:11px;background:#08293a8a}.photo-item.dragging{opacity:.5}.photo-thumb{width:48px;height:48px;border-radius:8px;background:#fff;object-fit:contain;border:1px solid rgba(255,255,255,.2)}.photo-name{min-width:0}.photo-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e7f1f5;font-size:11px;font-weight:530}.photo-name small{display:block;margin-top:3px;color:#789aaa;font-size:9px}.photo-actions{display:flex;gap:4px}.icon-btn{width:28px;height:28px;padding:0;display:grid;place-items:center;border:1px solid #315d72;border-radius:7px;background:#103a51;color:#b9d3de;font-size:12px}.icon-btn:hover{border-color:#5793a8;color:#fff}.icon-btn.remove{color:#e3a2a7}.export-area{display:grid;gap:10px;margin-top:14px}.export-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:14px 18px;border-top:1px solid var(--photo-line)}.export-actions>.btn{min-height:50px;font-size:15px;letter-spacing:.005em}.export-actions>.btn-green{font-weight:620}.status{display:none;padding:11px 12px;border:1px solid rgba(101,188,180,.22);border-radius:10px;background:#06273694}.status.show{display:block}.status-line{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#c9dce4;font-size:11px}.progress{height:6px;margin-top:9px;border-radius:999px;overflow:hidden;background:#082a3d}.progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1e7f59,#4fca91);transition:width .18s ease}.preview-panel{grid-column:2;grid-row:1;min-height:620px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.preview-stage{min-height:560px;padding:24px;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:22px;background:#051e2c61;overflow:auto}.preview-placeholder{align-self:center;max-width:360px;text-align:center;color:#7799a8;font-size:13px;line-height:1.65}.a4-wrap{display:flex;flex-direction:column;align-items:center;gap:7px}html body:not(#up-palette-a#up-palette-b#up-palette-c#up-palette-controls#up-palette-role) .a4-wrap small{padding:0!important;border:0!important;background:transparent!important;color:#18211d!important;font-size:15px!important;font-weight:650!important;letter-spacing:0!important;line-height:1.2!important}.page-foot{display:flex;align-items:center;justify-content:center;gap:10px}html body:not(#up-palette-a#up-palette-b#up-palette-c#up-palette-controls#up-palette-role) .a4-wrap .page-foot select.page-layout-select{height:28px!important;min-height:28px!important;padding:0 24px 0 8px!important;border-radius:7px!important;font-size:12px!important;line-height:1!important;background-size:12px!important}.page-layout-select{height:28px;padding:0 8px;border:1px solid #3a6479;border-radius:8px;outline:none;background:#0c3249;color:#d7e7ee;font-size:11px}.page-layout-select:focus{border-color:#68b6b4;box-shadow:0 0 0 3px #68b6b41a}.page-layout-select.is-custom{border-color:#4fca91;color:#bff0d9;font-weight:600}.page-layout-select:disabled{opacity:.45;cursor:not-allowed}.a4-page{--preview-width:390px;position:relative;width:var(--preview-width);aspect-ratio:210/297;padding:0;display:block;background:#fff;box-shadow:0 18px 40px #00000059}.a4-page.landscape{width:min(560px,100%);aspect-ratio:297/210}.a4-slot{position:absolute;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;padding:0;border:0;background:#fff;box-sizing:border-box}.a4-slot.has-photo{cursor:grab}.a4-slot.has-photo:active{cursor:grabbing}.a4-slot.dragging{opacity:.52}.a4-slot.drop-target:before{content:"";position:absolute;inset:0;z-index:2;border:3px solid #34b984;box-shadow:inset 0 0 0 6px #34b98424;pointer-events:none;box-sizing:border-box}.a4-slot.empty.drop-target:before{background:#34b9841f}.a4-slot img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff}.a4-page.stretch .a4-slot img{object-fit:fill}.a4-slot.framed:after{content:"";position:absolute;inset:0;border:var(--photo-frame-width,2px) solid var(--photo-frame,#FFFFFF);pointer-events:none;box-sizing:border-box}.a4-slot.empty{background:transparent}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.label-editor{margin-top:16px;padding:12px;border:1px solid var(--photo-line);border-radius:12px}.label-editor label{font-size:14px}.label-editor input{width:100%;min-height:40px;border:1px solid #3a6479;border-radius:8px;background:#0c3249;color:#fff;padding:6px;font-size:14px}.label-editor [hidden]{display:none!important}.label-editor .settings{gap:8px;margin-top:10px}.label-editor input[type=color]{padding:3px;height:34px;min-height:34px}.label-editor .label-colors{display:flex;gap:10px;align-items:end;margin-top:8px}.label-editor .label-colors .field{flex:1}.page-label-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.page-label-layer .photo-label{pointer-events:auto}.label-row{display:flex;align-items:center;gap:6px;padding:6px 0;font-size:14px}.label-row .label-inline-text{flex:1;min-width:0;width:0;font-weight:600}.label-row select{max-width:100px;background:#0c3249;color:#fff;border:1px solid #3a6479;border-radius:8px;padding:6px}.label-row .label-button,.label-editor>.label-button{min-height:34px;padding:6px 10px;border:1px solid #477084;border-radius:6px;background:#123d55;color:#e7f1f5;font-size:14px;font-weight:500;box-shadow:none}.label-row .label-button:hover,.label-editor>.label-button:hover{background:#194b63}.label-editor>#labelAdd{border-color:var(--up-v40-green-border,#4b9d7b);background:linear-gradient(180deg,var(--up-v40-green-top,#287a5a),var(--up-v40-green-bottom,#1d5b44));color:#fff}.label-editor>#labelAdd:hover:not(:disabled){border-color:var(--up-v40-green-hover-border,#61b28f);background:linear-gradient(180deg,var(--up-v40-green-hover-top,#318967),var(--up-v40-green-hover-bottom,#24684f))}.label-editor>#labelAdd:disabled{opacity:.45;cursor:not-allowed}.label-row .label-button:disabled{opacity:.45;cursor:not-allowed}.label-row .label-inline-text{min-height:34px;border-radius:6px}.label-row .label-delete{color:#f0b3b9}.label-row.selected{color:#80ddbd}.photo-label{position:absolute!important;display:block;border:0;padding:0;background:transparent;cursor:move;touch-action:none;z-index:2;line-height:0}.photo-label canvas{width:100%;height:100%;display:block}.photo-label:focus-visible{outline:2px solid #22bfa0;outline-offset:2px}@media(max-width:980px){.workspace{grid-template-columns:1fr}.editor-panel,.preview-panel{grid-column:1;grid-row:auto}.photo-list{max-height:280px}.preview-panel{min-height:0}.preview-stage{min-height:420px}}@media(max-width:640px){main{padding:18px 12px 40px}.page-head{align-items:flex-start;padding:17px}.page-head-copy{align-items:flex-start}.page-icon{width:46px;height:46px;flex-basis:46px}.page-head p{font-size:12px}.settings{grid-template-columns:1fr}.panel-body{padding:13px}.preview-stage{padding:14px}.a4-page,.a4-page.landscape{width:100%}}
