:root{--bg: #0f1115;--panel: #181b22;--panel-2: #1f232c;--border: #2a2f3a;--text: #e7e9ee;--muted: #9aa3b2;--accent: #4f8cff;--accent-ink: #fff;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.topbar{padding:24px clamp(16px,4vw,48px) 8px}.topbar h1{margin:0;font-size:22px}.tagline{margin:4px 0 0;color:var(--muted);max-width:60ch}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:clamp(16px,3vw,32px);padding:16px clamp(16px,4vw,48px) 48px;align-items:start}@media(max-width:860px){.layout{grid-template-columns:1fr}}.editor{min-width:0}fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 16px;padding:12px 16px 16px;background:var(--panel)}legend{padding:0 6px;color:var(--muted);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);margin-bottom:10px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.row{grid-template-columns:1fr}}input,select,textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 10px;font:inherit;width:100%}input[type=color]{height:38px;padding:4px;cursor:pointer}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}label.file input{padding:6px}.repeat-row{display:grid;grid-template-columns:120px 1fr 36px;gap:8px;margin-bottom:8px}.repeat-row .remove{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;cursor:pointer;font-size:18px;line-height:1}.repeat-row .remove:hover{color:#ff6b6b;border-color:#ff6b6b}button.add{background:transparent;border:1px dashed var(--border);color:var(--accent);border-radius:8px;padding:7px 12px;cursor:pointer;font:inherit}button.add:hover{border-color:var(--accent)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.actions button,button#remove-logo{background:var(--accent);color:var(--accent-ink);border:none;border-radius:8px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}.actions button:hover{filter:brightness(1.08)}button.ghost,button#remove-logo{background:transparent;color:var(--muted);border:1px solid var(--border);margin-top:10px}button.ghost:hover{color:var(--text);border-color:var(--text)}.hidden{display:none!important}.preview{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px}.warning{background:#2a2410;border:1px solid #6b5a17;color:#f5d97a;border-radius:8px;padding:10px 12px;font-size:13px}.hint{color:var(--muted);font-size:13px;margin:0}.card{width:100%;max-width:420px;aspect-ratio:85 / 55;background:#fff;color:#14171c;border-radius:12px;display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px;align-items:center;box-shadow:0 8px 30px #0006}.card-info{min-width:0}.p-name{margin:0;font-size:clamp(16px,4.5vw,22px);font-weight:700}.p-title{margin:2px 0 0;font-weight:600;color:#3a4250}.p-org{margin:0;color:#6a7384}.p-contacts{list-style:none;padding:0;margin:8px 0 0;font-size:12px;color:#3a4250}.p-contacts li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-qr{display:flex;align-items:center;justify-content:center}.card-qr #qr canvas,.card-qr #qr svg{display:block;width:130px;height:130px}body[data-print-content=qr] .card-info{display:none}body[data-print-content=qr] .card{grid-template-columns:1fr;justify-items:center}body[data-print-layout=a4] .card{aspect-ratio:210 / 297;max-width:320px;grid-template-columns:1fr;grid-template-rows:auto auto;justify-items:center;text-align:center;gap:18px}body[data-print-layout=a4][data-print-orientation=landscape] .card{aspect-ratio:297 / 210;grid-template-columns:1fr 1fr;grid-template-rows:auto;align-items:center;text-align:left}body[data-print-layout=a4] .card-qr #qr canvas,body[data-print-layout=a4] .card-qr #qr svg{width:180px;height:180px}@media print{:root{--bg: #fff}body{background:#fff;color:#000}.topbar,.editor,.warning,.hint{display:none!important}.layout{display:block;padding:0}.preview{position:static}body[data-print-content=qr] .card-info{display:none!important}body[data-print-content=qr] .card{grid-template-columns:1fr;justify-items:center;align-content:center}body:not([data-print-layout=a4]) .card{width:85mm;height:55mm;max-width:none;aspect-ratio:auto;box-shadow:none;border:1px solid #ccc;border-radius:0;page-break-inside:avoid;margin:0 auto}body:not([data-print-layout=a4]) .card-qr #qr canvas,body:not([data-print-layout=a4]) .card-qr #qr svg{width:42mm;height:42mm}body:not([data-print-layout=a4])[data-print-content=qr] .card-qr #qr canvas,body:not([data-print-layout=a4])[data-print-content=qr] .card-qr #qr svg{width:48mm;height:48mm}body[data-print-layout=a4] .card{width:100%;height:auto;max-width:none;aspect-ratio:auto;box-shadow:none;border:none;border-radius:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12mm;page-break-inside:avoid}body[data-print-layout=a4] .card-info{text-align:center}body[data-print-layout=a4] .p-name{font-size:30pt}body[data-print-layout=a4] .p-title,body[data-print-layout=a4] .p-org{font-size:15pt}body[data-print-layout=a4] .p-contacts{font-size:13pt;margin-top:6mm}body[data-print-layout=a4] .p-contacts li{white-space:normal}body[data-print-layout=a4] .card-qr #qr canvas,body[data-print-layout=a4] .card-qr #qr svg{width:130mm;height:130mm}body[data-print-layout=a4][data-print-orientation=landscape] .card-qr #qr canvas,body[data-print-layout=a4][data-print-orientation=landscape] .card-qr #qr svg{width:110mm;height:110mm}body[data-print-layout=a4][data-print-content=qr] .card-qr #qr canvas,body[data-print-layout=a4][data-print-content=qr] .card-qr #qr svg{width:170mm;height:170mm}body[data-print-layout=a4][data-print-orientation=landscape][data-print-content=qr] .card-qr #qr canvas,body[data-print-layout=a4][data-print-orientation=landscape][data-print-content=qr] .card-qr #qr svg{width:150mm;height:150mm}@page{margin:12mm}}
