:root{--primary:#2563eb;--primary-soft:#eff6ff;--green:#22c55e;--green-soft:#f0fdf4;--red:#ef4444;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--ink:#1f2937;--muted:#6b7280;--field-bg:#f3f3f5;--danger:#b91c1c;--radius:8px;--radius-lg:12px}*{box-sizing:border-box}body,html{background:var(--slate-100);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app-frame{background:#fff;max-width:430px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 24px #00000014}.app-frame,.screen{flex-direction:column;display:flex}.screen{flex:1;min-height:0}.screen-body{flex:1;padding:12px 16px 96px;overflow-y:auto}.topbar{border-bottom:1px solid var(--slate-100);background:#fff;flex-shrink:0;justify-content:center;align-items:center;height:44px;display:flex;position:relative}.topbar-title{color:#444;font-size:16px;font-weight:600}.topbar-back{background:0 0;border:none;padding:6px;font-size:18px;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.btn,.topbar-back{cursor:pointer;color:var(--ink)}.btn{border:1px solid var(--slate-200);border-radius:var(--radius);background:#fff;padding:8px 14px;font-size:14px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-danger{color:var(--danger)}.btn-block{width:100%}.chip{border:1px solid var(--slate-200);cursor:pointer;color:var(--ink);white-space:nowrap;background:#fff;border-radius:999px;padding:6px 12px;font-size:12px}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:600}.section{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.check-row{cursor:pointer;color:var(--slate-700);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;font-size:13px;font-weight:500;display:flex}.check-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);margin:0}.radio-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;font-size:12px;display:inline-flex}.radio-row input[type=radio]{width:16px;height:16px;accent-color:var(--primary);margin:0}.field{background:var(--field-bg);border-radius:6px;padding:14px 10px 6px;position:relative}.field .field-label{color:var(--slate-400);pointer-events:none;font-size:13px;transition:all .2s;position:absolute;top:16px;left:10px}.field.has-value .field-label,.field:focus-within .field-label{color:var(--muted);font-size:10px;top:4px}.field input,.field textarea{width:100%;color:var(--ink);background:0 0;border:none;outline:none;padding:2px 0;font-size:13px}.field textarea{resize:none}.field-label-req:after{content:" *";color:var(--danger)}.hint{color:var(--muted);margin:0;font-size:10px}.err{color:var(--danger);margin:0;font-size:12px}.modal-mask{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:16px;width:100%;max-width:400px;max-height:90vh;padding:16px;overflow:auto}
