@font-face { font-family: LocalSans; src: local("Aptos"), local("Helvetica Neue"), local("Arial"); font-display: swap; }
:root { color-scheme: light; --ink:#183631; --muted:#61746f; --green:#17634d; --line:#dbe3dd; --paper:#fff; --surface:#f5f6f1; --orange:#d38247; font-family:LocalSans,Arial,sans-serif; font-size:14px; color:var(--ink); background:var(--surface); }
* { box-sizing:border-box; }
body { margin:0; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.45; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #b86b27; outline-offset:3px; }
.topbar { min-height:82px; padding:18px 4vw; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; background:#fcfdf9; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-size:23px; font-weight:750; letter-spacing:-.8px; }
.brand-mark { display:grid; place-items:center; width:32px; height:35px; background:var(--ink); color:white; font-family:Georgia,serif; font-size:26px; border-radius:4px 10px 4px 4px; }
.prototype-tag { margin-left:8px; padding:5px 7px; border:1px solid var(--line); border-radius:4px; color:var(--muted); font-size:9px; letter-spacing:1px; }
.privacy-badge { font-size:12px; color:var(--muted); }
.privacy-badge span { color:var(--green); margin-right:6px; font-size:10px; }
.layout { max-width:1440px; margin:auto; display:grid; grid-template-columns:minmax(330px,420px) minmax(0,1fr); }
.editor { padding:36px 28px 32px; border-right:1px solid var(--line); }
.eyebrow { font-size:9px; font-weight:700; letter-spacing:1.5px; color:var(--muted); }
h1 { font-family:Georgia,serif; font-weight:400; font-size:36px; letter-spacing:-1.4px; line-height:1.12; margin:13px 0 16px; }
.intro p { color:var(--muted); font-size:13px; line-height:1.65; max-width:335px; }
.panel { border-top:1px solid var(--line); padding-top:23px; margin-top:27px; }
.section-heading { display:flex; align-items:center; gap:9px; margin-bottom:17px; }
.section-heading h2 { font-size:14px; margin:0; }
.step { font-family:ui-monospace,monospace; font-size:10px; color:var(--green); border:1px solid #b8cfc1; padding:4px; border-radius:4px; }
.count { margin-left:auto; font-size:11px; color:var(--muted); }
label { display:block; font-size:11px; font-weight:700; margin:15px 0 6px; }
.optional { font-weight:400; color:var(--muted); font-size:10px; }
input,textarea { display:block; width:100%; min-width:0; padding:10px 11px; border:1px solid #cbd6cf; border-radius:6px; background:#fff; color:var(--ink); line-height:1.4; }
input { height:40px; }
textarea { resize:vertical; min-height:72px; }
input::placeholder,textarea::placeholder { color:#7c8984; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.drop-zone { border:1px dashed #98b7a7; border-radius:8px; background:#eaf1e8; padding:21px 16px; display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; transition:background .15s; }
.drop-zone.dragging { background:#d4e6d7; outline:3px solid #779c85; }
.drop-zone.busy { opacity:.65; }
.drop-zone strong { font-size:13px; }.drop-zone>span:not(.upload-symbol) { color:var(--muted); font-size:12px; }
.upload-symbol { border:1px solid #aec7b6; border-radius:50%; width:33px; height:33px; display:grid; place-items:center; font-size:23px; color:var(--green); margin-bottom:2px; }
.drop-zone small { font-size:10px; color:var(--muted); line-height:1.5; margin-top:3px; }
.button { padding:10px 16px; border-radius:6px; font-weight:700; font-size:12px; border:1px solid transparent; }
.secondary { background:#fff; border-color:#b7cbbd; color:var(--ink); margin:6px 0; }
.primary { background:var(--green); color:white; }.primary:hover:not(:disabled) { background:#104c3a; }
.microcopy { color:var(--muted); font-size:11px; line-height:1.55; margin:10px 0; }
.status { color:var(--green); font-size:12px; line-height:1.5; }.status:empty { display:none; }
.error-box { border:1px solid #e4b998; background:#fff0e4; padding:10px 12px; color:#75411d; font-size:11px; line-height:1.5; border-radius:6px; overflow-wrap:anywhere; }.error-box p { margin:3px 0; }
.photo-list { display:grid; gap:13px; margin-top:15px; }
.edit-card { background:white; border:1px solid var(--line); border-radius:8px; padding:11px; }
.edit-card-top { display:flex; align-items:center; gap:10px; }.edit-thumb { width:66px; height:54px; object-fit:contain; background:#eef1ec; border-radius:3px; flex-shrink:0; }
.edit-card-info { flex:1; min-width:0; }.edit-card-info strong { display:block; font-size:11px; }.filename { display:block; font-size:10px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:4px; }
.order-buttons { display:flex; gap:3px; }.icon-button { width:28px; height:28px; border:1px solid var(--line); border-radius:4px; background:#f8faf6; color:var(--ink); font-size:14px; }.remove-button { color:#a15231; margin-left:2px; }
.edit-card label { margin-top:10px; font-size:10px; }.edit-card input,.edit-card textarea { padding:8px; font-size:12px; }.edit-card input { height:34px; }
.caption-count { text-align:right; font-size:9px; color:var(--muted); margin:4px 0 0; }
.layout-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.layout-option { display:flex; flex-direction:column; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--muted); text-align:left; }.layout-option.active { border-color:var(--green); background:#eaf1e8; color:var(--green); box-shadow:0 0 0 1px var(--green); }.layout-option>span { height:34px; font-size:20px; line-height:.75; }.layout-option strong { font-size:12px; margin:7px 0 4px; }.layout-option small { font-size:10px; }
.print-button { display:flex; justify-content:space-between; width:100%; margin-top:20px; padding:14px 15px; }.print-settings { color:var(--muted); font-size:10px; line-height:1.6; }
.privacy-note { margin-top:28px; padding:15px; border-radius:7px; background:#e9ede5; font-size:11px; line-height:1.65; }.privacy-note p { color:var(--muted); margin:5px 0 9px; }.text-button { border:0; padding:0; background:none; text-decoration:underline; text-underline-offset:3px; color:#675042; font-size:11px; }
.preview { padding:36px clamp(20px,4vw,56px); background:#e9ede6; min-width:0; }
.preview-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:28px; }.preview-toolbar h2 { font-size:19px; letter-spacing:-.5px; margin:8px 0 0; }.preview-toolbar>span { font-size:10px; color:var(--muted); white-space:nowrap; background:#f8faf5; border:1px solid #dce4d8; border-radius:20px; padding:7px 10px; }
.empty-preview { border:1px dashed #bdcbbc; border-radius:10px; min-height:655px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:36px 16px; text-align:center; }.empty-preview h3 { font-family:Georgia,serif; font-weight:400; font-size:24px; letter-spacing:-.5px; margin:31px 0 5px; }.empty-preview p { font-size:12px; line-height:1.7; color:var(--muted); }.empty-caption { font-size:10px; color:var(--muted); margin-top:18px; }
.paper-sketch { width:176px; height:238px; background:#fcfdf9; padding:19px; box-shadow:0 13px 26px #34533615; border:1px solid #d3ded0; transform:rotate(-4deg); }.sketch-heading { width:71%; height:5px; background:#adc1b0; margin:0 0 7px; }.sketch-line { height:3px; width:48%; background:#dce4d7; margin-bottom:14px; }.sketch-line.short { width:64%; margin:10px 0 14px; }.sketch-photo { height:60px; background:#e8eee2; position:relative; overflow:hidden; }.sketch-photo span { position:absolute; left:5px; top:5px; font:8px ui-monospace,monospace; color:#8ea187; }.sketch-photo svg { width:100%; height:100%; fill:#c6d6bd; }
.report-pages { display:grid; gap:24px; }.page-stage { width:100%; max-width:794px; aspect-ratio:210 / 297; position:relative; background:#fff; box-shadow:0 6px 25px #24423614; overflow:hidden; }.report-page { width:210mm; height:297mm; padding:14mm; background:#fff; color:#1b302b; display:flex; flex-direction:column; transform-origin:top left; position:absolute; top:0; left:0; overflow:hidden; }
.report-header { min-height:24mm; flex-shrink:0; border-bottom:.3mm solid #37594e; display:flex; gap:6mm; justify-content:space-between; padding-bottom:4mm; margin-bottom:6mm; }.report-heading { min-width:0; flex:1; }.report-kicker { font-size:7pt; letter-spacing:1.4pt; color:#61756c; margin:0 0 2mm; }.report-title { font-size:16pt; line-height:1.15; margin:0; font-weight:700; overflow-wrap:anywhere; }.report-location { font-size:8pt; margin:2mm 0 0; line-height:1.3; overflow-wrap:anywhere; }.report-meta { width:45mm; flex-shrink:0; text-align:right; font-size:8pt; line-height:1.6; overflow-wrap:anywhere; }.report-meta p { margin:0; }
.report-grid { display:grid; flex:1; min-height:0; gap:6mm; }.report-grid.detail { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }.report-grid.contact { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); gap:5mm; }
.report-photo { margin:0; display:flex; flex-direction:column; min-width:0; min-height:0; }.report-photo-heading { min-height:11mm; flex-shrink:0; display:flex; align-items:baseline; gap:3mm; padding-bottom:2mm; }.report-photo-number { font:8pt ui-monospace,monospace; color:#5e796e; flex-shrink:0; }.report-photo-label { font-size:10pt; line-height:1.25; font-weight:700; overflow-wrap:anywhere; }.report-photo-image { min-height:0; flex:1; display:flex; justify-content:center; align-items:center; background:#f3f5f0; border:.2mm solid #dce3d9; overflow:hidden; }.report-photo-image img { width:100%; height:100%; min-height:0; object-fit:contain; }
.report-caption { font-size:9pt; line-height:1.4; min-height:17mm; flex-shrink:0; padding-top:2mm; margin:0; white-space:normal; overflow-wrap:anywhere; }.report-filename { font-size:6.5pt; color:#5c7066; height:4mm; flex-shrink:0; margin-top:1mm; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.contact .report-photo-heading { min-height:13mm; }.contact .report-photo-label { font-size:9pt; }.contact .report-caption { display:none; }
.report-footer { margin-top:5mm; padding-top:2mm; height:9mm; flex-shrink:0; border-top:.2mm solid #dce3d9; display:flex; align-items:flex-start; justify-content:space-between; gap:5mm; font-size:7pt; color:#61756c; }.report-footer span:last-child { white-space:nowrap; }.preview-note { color:var(--muted); font-size:10px; line-height:1.6; text-align:center; margin-top:20px; }.app-footer { display:flex; justify-content:space-between; gap:15px; border-top:1px solid var(--line); color:var(--muted); padding:18px 4vw; font-size:10px; }.print-empty { display:none; }
[hidden] { display:none !important; }
@media (max-width:850px) { .layout { grid-template-columns:minmax(300px,360px) minmax(0,1fr); }.editor { padding:28px 20px; }.preview { padding:30px 20px; }.preview-toolbar { flex-wrap:wrap; }.prototype-tag { display:none; }.empty-preview { min-height:530px; }.empty-preview h3 { font-size:21px; }.paper-sketch { width:150px; height:222px; } }
@media (max-width:650px) { .topbar { padding:16px 20px; min-height:72px; flex-wrap:wrap; gap:10px; }.privacy-badge { font-size:10px; }.layout { display:block; }.editor { border:0; padding:28px 20px; }.intro p { max-width:none; }.preview { padding:28px 16px; }.empty-preview { min-height:440px; }.app-footer { flex-direction:column; } }
@page { size:A4 portrait; margin:0; }
@media print {
  html,body { background:#fff; margin:0 !important; padding:0 !important; }
  .topbar,.editor,.preview-toolbar,.empty-preview,.preview-note,.app-footer,noscript { display:none !important; }
  .workspace,.layout,.preview,.report-pages { display:block; margin:0; padding:0; max-width:none; border:0; background:white; }
  .page-stage { display:block; width:210mm; height:297mm; max-width:none; aspect-ratio:auto; margin:0; box-shadow:none; break-after:page; page-break-after:always; overflow:hidden; }
  .page-stage:last-child { break-after:auto; page-break-after:auto; }
  .report-page { transform:none !important; position:relative; width:210mm; height:297mm; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  body:not(.has-photos) .workspace { display:none; } body:not(.has-photos) .print-empty { display:block; padding:20mm; }
}
