:root{--navy:#15394a;--gold:#b98b42;--line:#dce1dc;--muted:#6a787a;--paper:#fffdf7}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:13px/1.4 system-ui,-apple-system,sans-serif;color:var(--navy);background:#e6eae7}.topbar{height:76px;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:11px}.mark{font-size:30px;color:var(--gold)}h1{font-size:19px;line-height:1.2;margin:0;letter-spacing:-.5px}.brand p{font-size:11px;color:var(--muted);margin:4px 0 0}.export-tools{display:flex;gap:7px}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid #cbd4cf;background:white;border-radius:7px;padding:8px 12px;cursor:pointer;white-space:nowrap}button:hover{background:#f4f1e7;border-color:#b4bfb8}button.primary{background:var(--navy);color:white;border-color:var(--navy)}button.primary:hover{background:#235367}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{color:white;background:var(--navy);border-color:var(--navy)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.workspace{display:grid;grid-template-columns:294px minmax(0,1fr);height:calc(100dvh - 76px)}aside{overflow-y:auto;padding:18px;background:var(--paper);border-right:1px solid var(--line);scrollbar-width:thin}.panel-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.panel-title h2{margin:0;font-size:14px}.panel-title span{color:var(--muted);font-size:11px}label{display:block;font-size:11px;color:var(--muted);margin-bottom:11px}input:not([type=checkbox],[type=color]),select,textarea{width:100%;border:1px solid #cbd4cf;border-radius:6px;background:white;padding:8px;color:#163746;min-width:0}label>input,label>select,label>textarea{display:block;margin-top:5px}textarea{resize:vertical;min-height:80px;max-height:200px;font-size:13px;line-height:1.5}select{height:36px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.color-row{display:flex;margin-top:5px;height:36px;gap:5px}.color-row input[type=color]{width:35px;height:36px;border:1px solid #cbd4cf;border-radius:5px;padding:3px;flex:none;background:white}.color-row input[type=text]{width:80px;font-size:11px;padding:6px}.style-row{display:flex;gap:6px;margin-bottom:12px}.style-row button{width:36px;padding:6px}.style-row select{flex:1;width:auto}.section-line{display:flex;gap:10px;align-items:center;color:#7b8581;font-size:10px;letter-spacing:.7px;text-transform:uppercase;margin:18px 0 12px}.section-line:after{content:"";height:1px;background:var(--line);flex:1}.check-row{display:flex;align-items:center;gap:7px;color:#344e59;font-size:12px;white-space:nowrap}.check-row input{margin:0;accent-color:var(--navy);width:15px;height:15px}.minor-actions{display:flex;gap:5px;margin:12px 0}.minor-actions button{padding:7px 9px;flex:1;font-size:11px}.subtle-danger{color:#a85a47}.wide{width:100%}.quiet{background:transparent;font-size:11px;color:var(--muted)}details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;font-size:11px;color:var(--muted)}summary{cursor:pointer;color:#375561}details p{line-height:1.6}main{display:flex;flex-direction:column;min-width:0;min-height:0}.canvas-toolbar{padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px}.global-font{display:flex;align-items:center;gap:12px}.global-font label{margin:0}.global-font select{width:174px;background:#f9fbf8}.history{display:flex;gap:5px}.history button{font-size:20px;line-height:1;width:34px;height:34px;padding:3px;background:#f9fbf8}.stage{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;padding:4px 20px 12px;overflow:hidden}#artboard{display:block;flex:none;box-shadow:0 9px 28px #09253220;background:#faf7ed;touch-action:none;outline:none}#artboard:focus-visible{outline:2px solid var(--gold);outline-offset:4px}#text-layer g{cursor:grab}#text-layer g:active{cursor:grabbing}#text-layer text{font-kerning:none;font-variant-ligatures:none;font-feature-settings:'kern' 0,'liga' 0,'clig' 0,'calt' 0;user-select:none;white-space:pre}#selection-layer rect{fill:#bca0680a;stroke:#c18b36;stroke-width:1.4;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}#selection-layer circle{fill:white;stroke:#b98b42;stroke-width:1.5;vector-effect:non-scaling-stroke}.canvas-footer{padding:5px 20px 14px;display:flex;gap:10px;align-items:center;justify-content:space-between;min-height:45px}#status{font-size:11px;color:#657674;max-width:60%}#status.error{color:#a44331}.canvas-footer label{display:flex;gap:8px;align-items:center;white-space:nowrap;margin:0}.canvas-footer select{width:170px;height:30px;font-size:11px;padding:4px 6px}body.busy .export-tools button{opacity:.5;pointer-events:none}@media(max-width:1050px){.workspace{grid-template-columns:260px minmax(0,1fr)}aside{padding:14px}.topbar{padding:12px 16px}.global-font{gap:7px;flex-wrap:wrap}.canvas-toolbar{padding:12px}.global-font select{width:150px}.stage{padding:3px 12px 10px}.canvas-footer{padding:4px 12px 10px;flex-wrap:wrap}.canvas-footer #status{max-width:100%}.export-tools button{font-size:11px;padding:8px 9px}}@media(max-width:720px){.topbar{height:106px;align-items:flex-start;flex-direction:column;gap:10px;padding:10px 14px}.brand .mark{font-size:23px}.brand h1{font-size:16px}.brand p{display:none}.export-tools{width:100%}.export-tools button{flex:1;font-size:10px}.workspace{height:calc(100dvh - 106px);display:flex;flex-direction:column}main{order:-1;height:51%;flex:none}.canvas-toolbar{padding:7px 10px;min-height:46px}.global-font{gap:6px;flex-wrap:nowrap}.global-font label{font-size:10px}.global-font select{height:28px;font-size:11px;width:132px}.history button{width:28px;height:28px}.stage{padding:0 10px 5px}.canvas-footer{min-height:30px;font-size:10px;padding:0 10px 5px}.canvas-footer label{display:none}.canvas-footer #status{font-size:10px}.workspace aside{flex:1;border-right:0;border-top:1px solid var(--line)}.panel-title{margin-bottom:10px}}@media print{.topbar,aside,.canvas-toolbar,.canvas-footer{display:none}.workspace,main,.stage{display:block;width:297mm;height:210mm;padding:0;margin:0}#artboard{width:297mm!important;height:210mm!important;box-shadow:none}#selection-layer{display:none}@page{size:A4 landscape;margin:0}}
:is(.global-font select){padding:4px 7px}
:is(.status-group){display:flex;flex-direction:column;gap:3px;min-width:0;max-width:60%}.status-group #status{max-width:100%}#last-download{color:#386775;font-size:10px;text-decoration:underline;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:720px){.status-group{max-width:100%}}

#signature-layer g{cursor:grab}#signature-layer g:active{cursor:grabbing}.signature-note{font-size:11px;line-height:1.6;color:var(--muted)}.signature-swatch{height:92px;padding:12px;margin:8px 0 14px;border:1px solid var(--line);border-radius:6px;background:#f9f4e7;display:flex;align-items:center;justify-content:center}.signature-swatch img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none}

.panel-title{gap:7px}.panel-title h2{flex-shrink:0}.panel-title span{text-align:right;font-size:10px}

.asset-loader{position:fixed;inset:0;z-index:1000;background:#e6eae7;display:grid;place-items:center;padding:24px}.loader-card{max-width:500px;background:var(--paper);padding:30px;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px #15394a15}.loader-card h2{font-size:22px;margin:0 0 15px}.loader-card p{line-height:1.65}.loader-help{font-size:11px;color:var(--muted)}

/* Chế độ nhập nhanh và cửa sổ lưu mẫu */
.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#edf0eb;border:1px solid #dce1dc;border-radius:10px;margin-bottom:25px}
.mode-tabs button{border:0;background:transparent;font-size:13px;font-weight:600;color:#61716d;padding:10px}
.mode-tabs button[aria-selected=true]{background:#fffdf7;color:#15394a;box-shadow:0 2px 6px #15394a13}
.eyebrow{font-size:10px;letter-spacing:1.5px;color:#a47c3b;font-weight:650}
.simple-heading h2{font-size:21px;line-height:1.3;margin:8px 0}
.simple-heading p{color:var(--muted);font-size:12px;margin:0 0 25px;line-height:1.7}
#panel-simple label{font-size:12px;color:#375561;margin-bottom:7px}
#guest-name{font-size:15px;line-height:1.7;min-height:136px;padding:12px;resize:vertical}
.input-help,.pro-help{font-size:11px;color:var(--muted);line-height:1.65;margin:10px 0 0}
.simple-tip{display:flex;align-items:flex-start;gap:11px;margin-top:26px;padding:15px 12px;border:1px solid #e5dfd0;background:#f8f4e9;border-radius:8px}
.simple-tip>span{color:var(--gold);font-size:21px;line-height:1.1}
.simple-tip p{font-size:11px;line-height:1.7;margin:0;color:#69766d}
.simple-tip strong{font-weight:650;color:#344e59}
body[data-mode=simple] .stage{padding-top:22px}
body[data-mode=simple] #text-layer g,body[data-mode=simple] #signature-layer g{cursor:default}
body[data-mode=simple] #artboard{touch-action:pan-y}
dialog{width:min(510px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid #d6cfbd;border-radius:15px;background:var(--paper);color:var(--navy);padding:26px;box-shadow:0 24px 100px #071b2b55}
dialog::backdrop{background:#071b2b70;backdrop-filter:blur(3px)}
.dialog-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}
.dialog-heading h2{margin:6px 0 0;font-size:23px;letter-spacing:-.5px}
.icon-button{font-size:26px;padding:0;width:34px;height:34px;line-height:1;background:transparent;border:0;color:#70817d}
#template-description{font-size:12px;color:var(--muted);margin:15px 0 22px;line-height:1.6}
.template-actions{display:grid;gap:10px}
button.template-action{text-align:left;padding:14px 15px;white-space:normal;background:white;border-color:#dce1d8;border-radius:9px}
.template-action strong{font-size:13px;display:block;margin-bottom:5px}
.template-action span{font-size:11px;color:var(--muted);display:block;line-height:1.5}
.template-note{font-size:11px;color:var(--muted);line-height:1.65;margin:15px 0 10px}
#template-feedback{font-size:11px;color:#325d47;line-height:1.6;margin-top:10px}
#template-feedback.error{color:#a44331}
#template-download{font-size:11px;color:#386775;display:block;margin-top:7px}
.dialog-bottom{display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
@media(max-width:720px){
 .mode-tabs{margin-bottom:16px}.mode-tabs button{padding:8px}
 body[data-mode=simple] main{flex:1;min-height:180px;height:auto}
 body[data-mode=simple] aside{flex:0 0 auto;max-height:43%;padding:10px 14px 14px}
 body[data-mode=simple] .stage{padding-top:10px}
 .simple-heading{display:none}#guest-name{min-height:70px;height:80px;font-size:13px;padding:9px}
 .simple-tip{display:none}.input-help{font-size:10px;margin-top:6px}
 dialog{padding:20px}.dialog-heading h2{font-size:21px}
}
@media print{dialog,.asset-loader{display:none!important}}
