:root{--accent:#4f46e5;--accent-hover:#4338ca;--bg:#f4f5fb;--card:#fff;--border:#e4e6f0;--text:#1d2130;--muted:#6b7280;--danger:#dc2626;--ok:#16a34a;--radius:12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}.page{max-width:1080px;margin:0 auto;padding:0 20px 80px}.topbar{justify-content:space-between;align-items:center;margin-bottom:8px;padding:18px 0;display:flex}.topbar .logo{letter-spacing:1px;font-size:22px;font-weight:800}.topbar .logo span{color:var(--accent)}.topbar .meta{color:var(--muted);gap:18px;font-size:13px;display:flex}h1{margin:8px 0 2px;font-size:24px}.subtitle{color:var(--muted);margin:0 0 22px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:22px 24px}.cardHead{align-items:center;gap:12px;margin-bottom:16px;display:flex}.badge{width:28px;height:28px;color:var(--accent);background:#eef0ff;border-radius:8px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.cardHead h2{margin:0;font-size:17px}.hint{color:var(--muted);margin:-10px 0 14px;font-size:13px}.grid2{grid-template-columns:1fr 1fr;gap:14px 22px;display:grid}@media (max-width:720px){.grid2{grid-template-columns:1fr}}.field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.field label{font-size:13px;font-weight:600}.field label .req{color:var(--danger)}.field input,.field textarea,.field select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #4f46e51f}.field .err{color:var(--danger);font-size:12px}.field.invalid input{border-color:var(--danger)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:8px;padding:8px 14px;font-size:14px}.chip.on{border-color:var(--accent);color:var(--accent);background:#eef0ff;font-weight:600}.uploadRow{grid-template-columns:1fr 1fr;gap:14px 22px;margin-top:6px;display:grid}@media (max-width:720px){.uploadRow{grid-template-columns:1fr}}.upload{border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer;background:#fafbff;align-items:center;gap:12px;padding:16px;display:flex}.upload:hover{border-color:var(--accent)}.upload .title{font-size:14px;font-weight:600}.upload .sub{color:var(--muted);font-size:12px}.upload img{object-fit:contain;background:#fff;border-radius:6px;width:44px;height:44px}.upload .icon{font-size:20px}.contactsGrid{grid-template-columns:repeat(3,1fr);gap:14px 22px;display:grid}@media (max-width:900px){.contactsGrid{grid-template-columns:1fr 1fr}}@media (max-width:600px){.contactsGrid{grid-template-columns:1fr}}.moduleGrid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (max-width:900px){.moduleGrid{grid-template-columns:1fr 1fr}}@media (max-width:600px){.moduleGrid{grid-template-columns:1fr}}.moduleCard{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;align-items:flex-start;gap:10px;padding:14px;display:flex}.moduleCard.on{border-color:var(--accent);background:#f6f7ff}.moduleCard input{accent-color:var(--accent);margin-top:3px}.moduleCard .name{font-size:14px;font-weight:700}.moduleCard .desc{color:var(--muted);margin-top:2px;font-size:12px}.rowsTable{border-collapse:collapse;width:100%;font-size:14px}.rowsTable th{text-align:left;background:#f1f2fa;padding:9px 10px;font-size:13px;font-weight:700}.rowsTable td{border-bottom:1px solid var(--border);vertical-align:middle;padding:7px 10px}.rowsTable input,.rowsTable select{border:1px solid var(--border);border-radius:6px;width:100%;padding:7px 9px;font-family:inherit;font-size:13px}.rowsTable .rm{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px}.addRow{border:1px solid var(--border);width:100%;color:var(--accent);cursor:pointer;background:#fff;border-radius:8px;margin-top:10px;padding:10px;font-size:14px;font-weight:600}.addRow:hover{border-color:var(--accent)}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:13px 34px;font-size:15px;font-weight:700}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:default}.btnGhost{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:10px;padding:12px 22px;font-size:14px}.submitBar{justify-content:flex-end;align-items:center;gap:16px;margin-top:6px;display:flex}.savedNote{color:var(--muted);font-size:13px}.okPlaque{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:12px 16px;font-size:14px}.errPlaque{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-top:10px;padding:12px 16px;font-size:14px}.infoPlaque{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;margin-top:10px;padding:12px 16px;font-size:14px}.deadCard{text-align:center;max-width:480px;margin:120px auto}.doneWrap{text-align:center;max-width:560px;margin:60px auto}.doneWrap .spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;margin:0 auto 18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.doneWrap img.qr{width:200px;height:200px;margin:18px auto;display:block}.doneWrap .actions{justify-content:center;gap:12px;margin-top:18px;display:flex}.doneWrap a.btn{text-decoration:none;display:inline-block}
