@font-face{font-family:"MenuJP";src:url("../assets/fonts/ipaexg.ttf") format("truetype");font-display:swap}
:root{font-family:"MenuJP",system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;background:#f5f2eb;color:#292d29;font-size:16px;line-height:1.55}*{box-sizing:border-box}html,body{margin:0;min-width:300px}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.38;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #bd6c50;outline-offset:2px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.app{height:100vh;height:100dvh;display:flex;flex-direction:column;max-width:980px;margin:auto;background:#fffdf9;box-shadow:0 0 55px #4b3b2520}.topbar{height:78px;flex:none;display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid #e6e0d3}.brand-icon{display:grid;place-items:center;width:44px;height:44px;border:2px solid #a44936;border-radius:11px;color:#a44936;font-family:serif;font-size:26px}.brand-copy{min-width:0;flex:1}.brand-copy p{font-size:10px;color:#926853;letter-spacing:.12em;margin:0 0 2px}.brand-copy h1{font-size:17px;line-height:1.22;margin:0;font-weight:800}.small-break{display:none}.a4-mark{flex:none;border:1px solid #d9c5af;border-radius:50px;color:#765c42;font-size:11px;font-weight:700;padding:5px 9px}.progress-wrap{flex:none;padding:10px 18px 11px;border-bottom:1px solid #eee9de}.progress-line{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.progress-line span{height:4px;border-radius:4px;background:#e9e5da}.progress-line span.active{background:#a44936}.progress-copy{display:flex;align-items:baseline;gap:9px;margin-top:7px;color:#876455;font-size:12px}.progress-copy strong{font-size:13px;color:#373831}.progress-copy span:last-child{margin-left:auto;color:#948b7d;font-size:11px}
.main{overflow:auto;min-height:0;flex:1;scrollbar-gutter:stable}.screen{max-width:690px;margin:0 auto;padding:25px 18px 42px}.step-eyebrow{margin:0 0 6px;color:#a44936;font-size:11px;letter-spacing:.17em;font-weight:800}.screen h2{font-size:25px;line-height:1.3;letter-spacing:.02em;margin:0 0 7px}.step-help{color:#73736d;font-size:13px;margin:0 0 22px}.option-list{display:grid;gap:11px}.option-card{width:100%;border:1px solid #e1ded4;border-radius:16px;background:#fff;text-align:left;min-height:81px;padding:17px 18px;display:flex;align-items:center;gap:16px;color:#2b312d;box-shadow:0 4px 15px #4b3b2509}.option-card.selected{border:2px solid #a44936;background:#fffbf6;padding:16px 17px;box-shadow:0 0 0 3px #a4493611}.option-card .option-text{display:block;flex:1}.option-card strong{display:block;font-size:17px}.option-card small{display:block;color:#7d7d74;font-size:12px;margin-top:3px;line-height:1.4}.radio-dot{flex:none;width:21px;height:21px;border:2px solid #c4c3b9;border-radius:50%;display:grid;place-items:center}.selected .radio-dot{border-color:#a44936}.selected .radio-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:#a44936}.template-mark{font-family:serif;font-size:26px;color:#a44936;width:38px;text-align:center}.theme-swatch{width:65px;height:65px;border-radius:8px;flex:none;border:1px solid #bbb2a0;display:flex;align-items:center;justify-content:center;font-family:serif;font-size:20px}
.layout-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.layout-card{border:1px solid #dedbd1;border-radius:15px;background:white;color:#303631;padding:12px;text-align:left;min-width:0}.layout-card.selected{border:2px solid #a44936;background:#fffbf6;padding:11px}.layout-card canvas{width:100%;max-width:135px;aspect-ratio:210/297;display:block;margin:0 auto 9px;background:#fff;box-shadow:0 2px 9px #362f2428}.layout-card strong{display:block;font-size:13px;line-height:1.25}.layout-card small{font-size:11px;display:block;color:#797a72;margin-top:3px}.count-filter{display:flex;gap:7px;overflow-x:auto;padding:0 0 14px;margin-bottom:4px}.count-filter button,.category-list button{flex:none;border:1px solid #dfdbcf;background:#fff;border-radius:30px;min-height:35px;padding:0 13px;color:#625f56;font-weight:700;font-size:12px}.count-filter button.active,.category-list button.active{background:#343d39;color:white;border-color:#343d39}
.entry-list{display:grid;gap:16px}.entry-card{border:1px solid #e2ddd3;border-radius:17px;padding:15px;background:#fff}.entry-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 12px}.entry-head h3{font-size:16px;margin:0}.entry-head small{color:#8c7b67;font-size:11px}.entry-body{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:start}.asset-column{display:grid;gap:8px}.asset-pick{width:92px;min-height:100px;border:1px solid #d4cec1;background:#fbfaf6;border-radius:12px;padding:5px;color:#734e3d;font-size:11px;font-weight:700}.asset-pick img{width:78px;height:68px;display:block;object-fit:contain}.photo-pick{width:92px;min-height:34px;border:1px solid #a44936;background:#fff8f4;color:#8d3f30;border-radius:9px;font-size:11px;font-weight:800;padding:6px 4px}.photo-pick:active{transform:translateY(1px)}.image-size-control{display:grid;gap:5px;text-align:center;color:#6d665c;font-size:10px;font-weight:700}.image-size-control>div{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;border:1px solid #d4cec1;border-radius:9px;overflow:hidden;background:#fff}.image-size-control button{height:30px;border:0;background:#f7f4ed;color:#574f45;font-size:18px;line-height:1}.image-size-control output{font-size:11px;color:#4c4b47;font-variant-numeric:tabular-nums}.field-stack{display:grid;gap:10px}.field-stack label{display:block;color:#5f655e;font-size:12px;font-weight:700}.field-stack input,.field-stack textarea{display:block;width:100%;border:1px solid #d4d1c9;border-radius:9px;background:#fff;padding:9px 11px;color:#292d29;font-size:16px;margin-top:4px}.field-stack textarea{resize:vertical;min-height:50px}.field-stack input:focus,.field-stack textarea:focus{border-color:#a44936;outline:2px solid #a4493628}.field-row{display:grid;grid-template-columns:1fr 115px;gap:10px}.field-row input{min-width:0}.small-note{font-size:12px;color:#88867e;margin:16px 0 0}
.navigation{flex:none;display:flex;gap:10px;padding:12px max(16px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-top:1px solid #e6e0d4;background:#fffdf9;box-shadow:0 -4px 15px #3b33250b}.navigation button{border-radius:11px;min-height:49px;font-weight:750}.secondary{background:#fff;border:1px solid #c9c5b8;color:#555b56;padding:0 18px}.primary{flex:1;background:#a44936;border:1px solid #a44936;color:#fff;padding:0 16px}.wide-button{width:100%;border:1px solid #cfcac0;border-radius:11px;background:#fff;min-height:47px;color:#3b4540;font-weight:700;margin-top:11px}.preview-wrap{max-width:430px;margin:17px auto 0}.preview-wrap img,.preview-wrap canvas{width:100%;height:auto;display:block;aspect-ratio:210/297;background:#faf9f4;box-shadow:0 8px 23px #302c2340}.preview-status{text-align:center;color:#7d766b;font-size:12px;margin:8px}.result-actions{max-width:430px;margin:22px auto 0}.result-actions button,.result-actions a{display:grid;place-items:center;width:100%;min-height:52px;border-radius:11px;font-size:15px;font-weight:800;text-decoration:none;margin:10px 0}.result-actions .save-link{background:#a44936;color:white;border:0}.result-actions .print-button{background:white;border:1px solid #afa89a;color:#343e38}.hint-box{font-size:12px;color:#726f68;background:#f4f1e9;border-radius:10px;padding:13px 15px;margin:16px auto;max-width:430px}.hint-box p{margin:0 0 5px}.hint-box p:last-child{margin:0}.edit-tools{display:grid;gap:9px;background:#f4f0e8;border-radius:13px;padding:14px;margin-top:15px}.edit-tools h3{font-size:15px;margin:0}.edit-tools p{font-size:11px;color:#746c61;margin:0}.edit-tools label{display:grid;grid-template-columns:53px 1fr 40px;align-items:center;gap:7px;font-size:12px}.edit-tools input{width:100%;accent-color:#a44936}.edit-tool-row{display:flex;gap:7px;flex-wrap:wrap}.edit-tool-row button{border:1px solid #c9c3b8;background:#fff;border-radius:9px;padding:7px 10px;font-size:12px;color:#3b403c}.edit-stage{position:relative;width:100%;aspect-ratio:210/297;overflow:hidden;background:#faf9f4;touch-action:none;user-select:none;box-shadow:0 8px 23px #302c2340}.edit-stage .background-preview{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.design-object{position:absolute;touch-action:none;user-select:none;cursor:grab;transform-origin:center}.design-object img{width:100%;height:100%;display:block;pointer-events:none}.design-object.text-object{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.19}.design-object.is-selected{outline:2px solid #d25d43;outline-offset:3px}.edit-stage .empty-hint{display:none}
.asset-dialog{border:0;border-radius:17px;padding:0;width:min(95vw,520px);max-height:min(94dvh,740px);box-shadow:0 14px 55px #27251d55}.asset-dialog::backdrop{background:#20231ac0}.asset-dialog-body{padding:18px;display:flex;flex-direction:column;max-height:min(94dvh,740px)}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between}.eyebrow{color:#a44936;font-size:11px;font-weight:800;letter-spacing:.16em;margin:0}.dialog-top h2{font-size:20px;margin:1px 0 10px}.close{border:0;background:#f1efe9;border-radius:50%;font-size:25px;color:#494d46;width:37px;height:37px}.search-label input{width:100%;border:1px solid #d1ccc1;border-radius:9px;font-size:16px;padding:9px 11px}.category-list{display:flex;gap:7px;overflow-x:auto;padding:12px 0}.asset-grid{overflow:auto;min-height:95px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px}.asset-choice{background:#faf9f5;border:1px solid #e3dfd4;border-radius:11px;padding:8px;color:#333b35;font-weight:700;font-size:12px}.asset-choice img{width:100%;height:90px;display:block;object-fit:contain}.request-link{display:block;color:#975039;font-size:13px;padding:18px 0 4px;text-align:center;text-underline-offset:3px}.request-link[aria-disabled=true]{color:#a49e92;cursor:default}.ad-slot{max-width:430px;margin:80px auto 0;overflow:hidden;text-align:center}.toast{position:fixed;bottom:78px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 24px);padding:10px 16px;background:#2e3934;color:#fff;border-radius:9px;opacity:0;pointer-events:none;z-index:12;text-align:center;font-size:13px}.toast.show{opacity:1}#printSheet{display:none}
@media(min-width:640px){.screen{padding:32px 28px 50px}.small-break{display:none}.option-list{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-list{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-body{grid-template-columns:125px 1fr}.asset-pick{width:125px}.photo-pick{width:125px}.asset-pick img{width:110px;height:75px}.topbar{padding-left:28px}.progress-wrap{padding-left:28px;padding-right:28px}.navigation{padding-left:28px;padding-right:28px}}
@media(max-width:370px){.small-break{display:block}.brand-copy h1{font-size:14px}.topbar{gap:8px;padding-left:10px;padding-right:10px}.a4-mark{font-size:10px;padding:4px 6px}.screen{padding-left:12px;padding-right:12px}.layout-list{gap:8px}.field-row{grid-template-columns:1fr 100px}}
@media print{@page{size:A4 portrait;margin:0}html,body{width:210mm;height:297mm;margin:0!important;background:white!important}.app,.asset-dialog,.toast{display:none!important}#printSheet{display:block!important;width:210mm;height:297mm}#printSheet img{width:210mm;height:297mm;display:block;object-fit:fill}}
.preview-scale-bar{max-width:430px;margin:0 auto 12px;padding:10px 12px;border:1px solid #ded8cb;border-radius:13px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;box-shadow:0 3px 12px #3b33250b}.preview-scale-heading{min-width:0}.preview-scale-heading strong{display:block;font-size:13px;color:#3d433f}.preview-scale-heading small{display:block;margin-top:2px;font-size:10px;color:#8a8378}.preview-scale-target{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#6d665c;font-weight:700}.preview-scale-target select{min-height:34px;border:1px solid #d4cec1;border-radius:9px;background:#fff;color:#444;padding:0 28px 0 10px;font-size:13px}.preview-scale-buttons{display:grid;grid-template-columns:38px 62px 38px;align-items:center;border:1px solid #d4cec1;border-radius:10px;overflow:hidden;background:#fff}.preview-scale-buttons button{height:38px;border:0;background:#f7f4ed;color:#574f45;font-size:22px;line-height:1}.preview-scale-buttons output{text-align:center;font-size:13px;font-weight:800;color:#4c4b47;font-variant-numeric:tabular-nums}.preview-scale-buttons button:active{background:#eee7dc}
