
:root{--blue:#1565c0;--bg:#eef2f7;--card:#fff;--line:#cbd7e6;--red:#ff4a4a;--text:#111;}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI","Hiragino Mincho ProN","Yu Mincho",serif}.app{display:grid;grid-template-columns:minmax(360px,490px) 1fr;gap:42px;align-items:start;padding:14px 24px}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.05)}h1{margin:0 0 14px;font-size:1.5rem}.lead{line-height:1.8;color:#223}.controls fieldset{border:1px solid var(--line);border-radius:10px;margin:16px 0;padding:14px}.controls legend{font-weight:700;padding:0 4px}label{display:block;font-weight:700;margin:10px 0 6px}input,textarea,select{width:100%;border:1px solid #c9d5e5;border-radius:8px;padding:10px;font:600 1rem/1.5 system-ui,"Yu Gothic",sans-serif;background:#fff;ime-mode:active}textarea{resize:vertical;min-height:92px;white-space:pre-wrap}.name-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0 8px;font-weight:700}.name-list{display:grid;gap:8px}.honorific-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;margin:8px 0}.name-row{display:grid;grid-template-columns:1fr 40px;gap:8px}.name-row button,.name-head button,.actions button,.dev-tools button{border:0;border-radius:8px;background:var(--blue);color:#fff;padding:9px 12px;font-weight:700;cursor:pointer}.name-row button{background:#66758a}.secondary{background:#66758a!important}.actions{display:flex;gap:10px}.dev-actions{margin-top:12px}.note{font-size:.9rem;line-height:1.7;color:#334}.preview-area{padding:30px 0 40px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}.postcard{position:relative;width:100mm;height:148mm;background:#fff;border:1px solid #c5ccd8;box-shadow:0 2px 10px rgba(0,0,0,.08);overflow:hidden;transform-origin:top left}.zip{position:absolute;display:flex;gap:.45mm}.zip span{width:6.5mm;height:6.5mm;border:0.28mm solid var(--red);display:flex;align-items:center;justify-content:center;font:600 4.1mm/1 "Times New Roman",serif;color:#111}.to-zip{left:43.8mm;top:10.7mm}.from-zip{left:5.3mm;top:134.5mm;gap:0mm}.from-zip span{width:4.2mm;height:5.1mm;font-size:2.7mm;border-width:.20mm}.vtext{position:absolute;display:flex;flex-direction:row-reverse;justify-content:flex-start;align-items:flex-start;white-space:pre;line-height:1;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}.vline{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;line-height:1}.vchar{display:block;line-height:1.02;min-height:1em}.vchar.blank{visibility:hidden}.vbar{font-family:"Yu Gothic",system-ui,sans-serif;font-weight:400;line-height:1.02}.to-address{right:8.5mm;top:28mm;width:17mm;font-size:5.1mm;gap:.7mm}.from-address{left:9mm;top:82mm;width:18mm;font-size:3.6mm;gap:.45mm}.to-name-group{position:absolute;left:36.5mm;top:37mm;width:36mm;display:flex;flex-direction:row-reverse;justify-content:center;align-items:flex-start;gap:5.2mm}.name-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;white-space:pre;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;text-align:center}.name-char{display:block;line-height:1;min-height:1em}.to-name-group .name-col{font-size:8.0mm;font-weight:500}
.to-name-group .name-char{margin-bottom:1mm}.to-name-group .honorific{display:block;margin-top:1mm;line-height:1;min-height:1em}.from-name-group{position:absolute;left:4.5mm;top:102.5mm;width:27mm;display:flex;flex-direction:row-reverse;justify-content:center;align-items:flex-start;gap:3.6mm}.from-name-group .name-col{font-size:4.8mm}.from-name-group .name-char{line-height:1.02}.dev-tools .active-line{margin-bottom:8px}.preview-area .dev-tools{width:100mm;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:0 2px 10px rgba(0,0,0,.05)}.move-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.step-label{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:8px}.status{padding:8px;background:#f5f8fd;border:1px solid var(--line);border-radius:8px;font-family:monospace}.active-field{outline:2px solid #1976d2!important}footer{text-align:center;padding:10px 0 20px;font-size:.95rem;color:#1565c0}footer a{color:#1565c0;text-decoration:none;font-weight:bold}footer a:hover{color:#0d47a1}.ad-panel{max-width:880px;margin:12px auto 0;padding:0;border:1px solid #d7e6f8;border-radius:10px;background:#fff;overflow:hidden}.ad-panel[hidden]{display:none!important;margin:0!important;padding:0!important;border:0!important;height:0!important;overflow:hidden!important}.ad-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:#f4f8ff;border-bottom:1px solid #d7e6f8}.ad-label{font-size:.72rem;color:#4f6f91;line-height:1}.ad-close-btn{margin:0!important;padding:3px 8px!important;min-height:0;height:auto;line-height:1.2;border:none;border-radius:999px;background:#1565c0;color:#fff;font-size:.72rem!important;font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none}.ad-close-btn:hover{background:#0d47a1}.ad-body{padding:8px;background:#fff}@media(max-width:900px){.app{grid-template-columns:1fr}.postcard{transform:scale(.86);margin:0 auto}.preview-area{height:520px}}@media print{body{background:#fff}.controls,footer,.preview-area .dev-tools{display:none!important}.app{display:block;padding:0}.preview-area{padding:0}.postcard{border:0;box-shadow:none;margin:0;transform:none}@page{size:100mm 148mm;margin:0}}

/* v1.4.4 */

.name-fields{display:grid;gap:6px}
.name-row{display:grid;grid-template-columns:1fr 40px;gap:8px;align-items:start}
.honorific-mini{display:grid;grid-template-columns:minmax(95px,120px) 1fr;gap:6px;align-items:end}
.honorific-mini label{margin:0;font-size:.82rem}
.honorific-mini select,.honorific-mini input{padding:7px;font-size:.92rem}
.to-name-group .name-col{will-change:transform}

.dev-tools legend{font-weight:700;color:#123;padding:0 4px}
.to-name-group .honorific{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;white-space:pre}
.to-name-group .honorific span{display:block;line-height:1;min-height:1em}

/* v1.4.5: 印刷時は郵便番号枠を出さず，数字のみ印字する */
@media print{
  .zip span{
    border-color: transparent !important;
    background: transparent !important;
  }
}

/* v1.4.7: 差出人郵便番号のみ修正．数字の上下左右が切れないようにする */
.from-zip{
  overflow: visible !important;
  align-items: flex-start !important;
}
.from-zip span{
  overflow: visible !important;
  box-sizing: content-box !important;
  height: auto !important;
  min-height: 5.8mm !important;
  line-height: 1.05 !important;
  padding: 0.25mm 0.15mm 0.85mm 0.15mm !important;
  align-items: flex-start !important;
  transform: translateY(0.2mm);
}
@media print{
  .from-zip{
    overflow: visible !important;
    align-items: flex-start !important;
  }
  .from-zip span{
    overflow: visible !important;
    box-sizing: content-box !important;
    height: auto !important;
    min-height: 6.2mm !important;
    line-height: 1.05 !important;
    padding: 0.25mm 0.15mm 1.1mm 0.15mm !important;
    align-items: flex-start !important;
    transform: translateY(0.2mm);
  }
}


/* v1.4.8: 郵便番号の確定位置を初期値化，注意表示追加 */
.to-zip{top:6.7mm;}
.from-zip{left:7.8mm; gap:0.04mm;}
.from-zip span{width:3.4mm; min-width:3.4mm; padding-left:0; padding-right:0;}
.print-warning{margin:10px 0 0;color:#d00000;font-weight:900;font-size:1.08rem;line-height:1.45;}
@media print{.print-warning{display:none!important;}}
