:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}:root{--page-bg:#f6f8fb;--panel-bg:#fff;--text-main:#16202a;--text-soft:#667382;--line:#d8e0e8;--accent:#0f8b6f;--accent-strong:#0a6d58;--accent-soft:#e4f5ef;--danger:#b3261e}body{background:var(--page-bg);min-width:320px;min-height:100vh;color:var(--text-main)}button,input{font:inherit}button{border:0}#app{min-height:100vh}.page-shell{flex-direction:column;justify-content:center;gap:10px;width:min(100%,520px);min-height:100dvh;margin:0 auto;padding:16px;display:flex}.page-shell.has-preview{justify-content:flex-start;padding-block:12px}.upload-panel{border:1px solid var(--line);background:var(--panel-bg);border-radius:8px;flex-direction:column;gap:12px;width:100%;padding:18px;display:flex;box-shadow:0 12px 34px #15233414}.panel-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.eyebrow{color:var(--accent-strong);flex:none;font-size:13px;font-weight:700}h1{max-width:13em;color:var(--text-main);font-size:24px;font-weight:800;line-height:1.16}.summary{color:var(--text-soft);font-size:15px}.store-badge{background:var(--accent-soft);max-width:60%;color:var(--accent-strong);overflow-wrap:anywhere;text-align:right;border-radius:8px;padding:4px 8px;font-size:13px;font-weight:700}.primary-action,.secondary-action{cursor:pointer;border-radius:8px;width:100%;min-height:44px;font-size:15px;font-weight:700}.primary-action{background:var(--accent);color:#fff}.secondary-action{border:1px solid var(--line);color:var(--accent-strong);background:#fff}.primary-action:active{background:var(--accent-strong)}.secondary-action:active{background:var(--accent-soft)}.primary-action:disabled,.secondary-action:disabled{color:#fff;cursor:wait;background:#9eb7ae}.file-input{display:none}.error-text{color:var(--danger);background:#fff0ef;border-radius:8px;padding:12px 14px;font-size:14px}.preview-area{flex-direction:column;align-items:stretch;gap:10px;display:flex}.print-preview-sheet{aspect-ratio:210/297;border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;max-width:100%;height:min(54dvh,430px);margin-inline:auto;padding:10px;display:flex;overflow:hidden;box-shadow:0 8px 22px #1523341a}.preview-actions{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:10px;display:grid}.preview-actions.is-single{grid-template-columns:1fr}.photo-preview{object-fit:contain;width:100%;height:100%;display:block}.maker-credit{color:var(--text-soft);text-align:center;font-size:12px;line-height:1.5}@media (width<=420px){.page-shell{justify-content:flex-start;padding:12px}.upload-panel{gap:10px;padding:14px}h1{font-size:22px}}
