:root{--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:24px;--radius-full:9999px;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.625;--color-bg:#f9f9f9;--color-ink:#111111;--color-muted:#6b7280;--color-muted-dark:#4b5563;--color-accent:var(--brand);--color-accent-light:rgba(var(--brand-rgb),0.15);--color-accent-hover:color-mix(in srgb,var(--brand) 88%,#000);--color-accent-text:color-mix(in srgb,var(--brand) 62%,#000);--color-accent-contrast:var(--color-ink);--color-panel:#ffffff;--color-panel-alt:#f5f5f5;--color-stroke:#e5e7eb;--color-stroke-light:#f3f4f6;--color-success:#10b981;--color-success-light:rgba(16,185,129,0.1);--color-success-dark:#059669;--color-success-text:#15803d;--color-error:#ef4444;--color-error-light:#fee2e2;--color-error-dark:#dc2626;--color-error-text:#dc2626;--color-warning:#f59e0b;--color-warning-light:rgba(245,158,11,0.1);--color-warning-dark:#d97706;--color-warning-text:#b45309;--color-scrim:rgba(17,24,39,0.4);--color-info:#3b82f6;--color-info-light:rgba(59,130,246,0.1);--color-info-dark:#2563eb;--color-info-text:#1d4ed8;--shadow-xs:0 1px 2px rgba(0,0,0,0.05);--shadow-sm:0 1px 3px rgba(0,0,0,0.1);--shadow-md:0 4px 6px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px rgba(0,0,0,0.1);--shadow-xl:0 10px 25px rgba(0,0,0,0.08);--transition-fast:0.1s ease;--transition-base:0.15s ease;--transition-slow:0.3s ease;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1200px;--container-2xl:1400px;--bg-v2:var(--color-bg);--bg-white:var(--color-panel);--ink-v2:var(--color-ink);--muted-v2:var(--color-muted);--muted-dark-v2:var(--color-muted-dark);--accent-v2:var(--color-accent);--accent-text-v2:var(--color-accent-text);--accent-v2-light:var(--color-accent-light);--accent-hover-v2:var(--color-accent-hover);--panel-v2:var(--color-panel);--panel-alt-v2:var(--color-panel-alt);--stroke-v2:var(--color-stroke);--border-v2:var(--color-stroke);--stroke-light-v2:var(--color-stroke-light);--shadow-v2:var(--shadow-sm);--shadow-md-v2:var(--shadow-md);--font-sans:var(--font-manrope),system-ui,sans-serif;--font-display:var(--font-manrope),system-ui,sans-serif}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-ink);background:var(--color-bg);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-md)}h6{font-size:var(--text-base)}p{margin:0;color:var(--color-muted-dark)}small{font-size:var(--text-sm)}b,strong{font-weight:var(--weight-semibold)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-accent-light);color:var(--color-ink)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-panel-alt)}::-webkit-scrollbar-thumb{background:var(--color-stroke);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border:0}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.truncate{text-overflow:ellipsis}.animate-fade-in{animation:fadeIn var(--transition-base) ease}.animate-slide-in{animation:slideIn var(--transition-slow) ease}.animate-slide-up{animation:slideUp var(--transition-slow) ease}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--space-6);background:var(--color-bg)}.error-boundary--admin{min-height:auto;padding:var(--space-10) var(--space-6)}.error-boundary-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);max-width:420px;width:100%;padding:var(--space-8);background:var(--color-panel);border:1px solid var(--color-stroke);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.error-boundary-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);background:var(--color-error-light);color:var(--color-error);font-size:var(--text-xl);font-weight:var(--weight-bold);flex-shrink:0}.error-boundary-icon--guest{width:44px;height:44px;font-size:var(--text-lg)}.error-boundary-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-ink)}.error-boundary-message{font-size:var(--text-base);color:var(--color-muted-dark);line-height:var(--leading-relaxed)}.error-boundary-details{width:100%;padding:var(--space-3);background:var(--color-panel-alt);border:1px solid var(--color-stroke);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-error-dark);text-align:left;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:120px}.error-boundary-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.btn,.btn-v2{--btn-py:10px;--btn-px:20px;--btn-fs:var(--text-base);--btn-fw:var(--weight-medium);--btn-r:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--btn-py) var(--btn-px);font-family:inherit;font-size:var(--btn-fs);font-weight:var(--btn-fw);line-height:1.2;border:1px solid transparent;border-radius:var(--btn-r);cursor:pointer;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base)}.btn,.btn-v2,.btn-v2.accent,.btn.accent{background:var(--color-accent);color:var(--color-accent-contrast)}.btn-v2.accent:hover:not(:disabled),.btn-v2:hover:not(:disabled),.btn.accent:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--color-accent-hover)}.btn-v2.outline,.btn.outline{background:var(--color-panel);border-color:var(--color-stroke);color:var(--color-ink)}.btn-v2.outline:hover:not(:disabled),.btn.outline:hover:not(:disabled){background:var(--color-stroke-light);border-color:var(--color-muted)}.btn-v2.secondary,.btn.secondary{background:var(--color-panel-alt);color:var(--color-ink)}.btn-v2.secondary:hover:not(:disabled),.btn.secondary:hover:not(:disabled){background:var(--color-stroke)}.btn-v2.ghost,.btn.ghost{background:transparent;color:var(--color-ink)}.btn-v2.ghost:hover:not(:disabled),.btn.ghost:hover:not(:disabled){background:var(--color-stroke-light)}.btn-v2.link,.btn.link{background:transparent;border-color:transparent;color:var(--color-muted-dark);padding:0}.btn-v2.link:hover:not(:disabled),.btn.link:hover:not(:disabled){color:var(--color-ink);text-decoration:underline}.btn-v2.danger,.btn.danger{background:var(--color-error);color:#fff}.btn-v2.danger:hover:not(:disabled),.btn.danger:hover:not(:disabled){background:var(--color-error-dark)}.btn-v2.danger-outline,.btn.danger-outline{background:transparent;border:1px solid var(--color-error);color:var(--color-error-text)}.btn-v2.danger-outline:hover:not(:disabled),.btn.danger-outline:hover:not(:disabled){background:var(--color-error-light)}.btn-v2.warning,.btn.warning{background:var(--color-warning-text);color:#fff}.btn-v2.warning:hover:not(:disabled),.btn.warning:hover:not(:disabled){background:var(--color-warning-dark)}.btn-v2.warning-outline,.btn.warning-outline{background:transparent;border:1px solid var(--color-warning-dark);color:var(--color-warning-text)}.btn-v2.warning-outline:hover:not(:disabled),.btn.warning-outline:hover:not(:disabled){background:var(--color-warning-light)}.btn-v2.info-outline,.btn.info-outline{background:var(--color-info-light);border:1px solid var(--color-stroke);color:var(--color-info-text)}.btn-v2.info-outline:hover:not(:disabled),.btn.info-outline:hover:not(:disabled){border-color:var(--color-info)}.btn-v2.sm,.btn.sm{--btn-py:6px;--btn-px:12px;--btn-fs:var(--text-sm);--btn-r:var(--radius-sm)}.btn-v2.xs,.btn.xs{--btn-py:4px;--btn-px:10px;--btn-fs:var(--text-xs);--btn-r:var(--radius-sm)}.btn.guest-cta{--btn-py:13px;--btn-px:18px;--btn-fs:15px;--btn-fw:700;--btn-r:14px}.btn-v2.lg,.btn.lg{--btn-py:14px;--btn-px:24px;--btn-fs:var(--text-md);--btn-fw:var(--weight-semibold)}.btn-v2:disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.btn-v2:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 35%,transparent)}.btn-v2.loading,.btn.loading{position:relative;color:transparent;pointer-events:none}.btn-v2.loading:after,.btn.loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid;border-right:2px solid transparent;border-radius:var(--radius-full);animation:spin .6s linear infinite}.btn.loading.lg:after{width:20px;height:20px}@media (prefers-reduced-motion:reduce){.btn-v2.loading:after,.btn.loading:after{animation-duration:2s}}.btn-group{display:inline-flex;gap:0}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md)}.btn-group .btn:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.btn-group .btn+.btn{margin-left:-1px}.icon-btn{--icon-btn-size:36px;display:inline-flex;align-items:center;justify-content:center;width:var(--icon-btn-size);height:var(--icon-btn-size);padding:0;flex-shrink:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted-dark);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base)}.icon-btn:hover:not(:disabled){background:var(--color-stroke-light);color:var(--color-ink)}.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 35%,transparent)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.outline{border-color:var(--color-stroke);background:var(--color-panel)}.icon-btn.filled{background:var(--color-panel);color:var(--color-ink)}.icon-btn.filled:disabled{background:transparent;color:var(--color-stroke);opacity:1;cursor:default}.icon-btn-primary,.icon-btn.primary{background:var(--color-accent);color:var(--color-accent-contrast);border-color:transparent}.icon-btn.danger-text{color:var(--color-error)}.icon-btn.danger,.icon-btn.danger-text:hover:not(:disabled){background:var(--color-error-light);color:var(--color-error-dark)}.icon-btn.danger{border-color:color-mix(in srgb,var(--color-error) 35%,transparent)}.icon-btn.danger:hover:not(:disabled){border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 18%,transparent);color:var(--color-error-dark)}.icon-btn[aria-pressed=true]{background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-color:var(--color-accent);color:var(--color-accent-text)}.icon-btn.overlay{--icon-btn-size:24px;position:absolute;top:6px;right:6px;border-radius:var(--radius-full);border-color:transparent;background:rgba(0,0,0,.5);color:#fff}.icon-btn.overlay:hover:not(:disabled){background:rgba(0,0,0,.72);color:#fff}.icon-btn.overlay svg{width:12px;height:12px}.icon-btn.xs{--icon-btn-size:24px}.icon-btn.sm{--icon-btn-size:28px}.icon-btn.lg{--icon-btn-size:44px}.icon-btn.xs svg{width:13px;height:13px}.icon-btn.icon-switch{--icon-btn-size:32px}.icon-btn.icon-switch svg{width:24px;height:24px}.icon-btn svg{width:16px;height:16px}.icon-btn.lg svg{width:20px;height:20px}.icon-btn-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center}.icon-btn-hint{position:absolute;top:100%;margin-top:8px;font-size:var(--text-xs);color:var(--color-muted);white-space:nowrap;opacity:0;transform:translateY(-4px);transition:all var(--transition-base);pointer-events:none}.icon-btn-wrap:hover .icon-btn-hint{opacity:1;transform:translateY(0)}.btn-v2.dashed,.btn.dashed{background:transparent;border:1px dashed var(--color-stroke);color:var(--color-muted)}.btn-v2.dashed:hover:not(:disabled),.btn.dashed:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-ink)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;padding:var(--dz-py,16px) 12px;border:2px dashed var(--color-stroke);border-radius:var(--radius-md);background:var(--color-panel-alt);color:var(--color-muted);font-family:inherit;font-size:var(--text-xs);cursor:pointer;overflow:hidden;transition:border-color var(--transition-base),color var(--transition-base)}.dropzone:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-ink)}.dropzone:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 35%,transparent)}.dropzone:disabled{cursor:wait}.dropzone.lg{--dz-py:20px;font-size:var(--text-sm)}.dropzone.square{width:var(--dz-size,72px);height:var(--dz-size,72px);padding:0;border-width:1px;border-radius:var(--radius-sm);flex-shrink:0;position:relative}.dropzone.flush{padding:0;border:1px solid var(--color-stroke);position:relative}.dropzone.flush,.menu-item{background:transparent;display:block}.menu-item{width:100%;padding:6px 10px;border:none;border-radius:var(--radius-xs,4px);color:var(--color-ink);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--transition-base)}.menu-item:focus-visible,.menu-item:hover:not(:disabled){background:var(--color-panel-alt);outline:none}.disclosure{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--disc-py,14px) var(--disc-px,20px);border:none;border-radius:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--transition-base)}.disclosure:hover:not(:disabled){background:var(--color-panel-alt)}.disclosure:focus-visible{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 45%,transparent)}.disclosure.sm{--disc-py:8px;--disc-px:12px}.option-row{--opt-py:10px;--opt-px:12px;display:flex;align-items:center;gap:var(--opt-gap,10px);width:100%;padding:var(--opt-py) var(--opt-px);border:2px solid transparent;border-radius:var(--radius-sm);background:var(--color-panel);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base)}.option-row:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-accent) 45%,transparent)}.option-row[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.option-row:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 35%,transparent)}.option-row:disabled{opacity:.6;cursor:not-allowed}.option-row.outline{border-width:1px;border-color:var(--color-stroke);border-radius:var(--radius-md)}.option-row.outline:hover:not(:disabled){border-color:var(--color-accent)}.option-row.lg{--opt-py:16px;--opt-px:18px;--opt-gap:14px}.option-row.plain{border-color:transparent}.option-row.alt{background:var(--color-panel-alt)}.option-row.mono{font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:var(--text-sm);color:var(--color-muted)}.btn-reset{display:block;width:100%;padding:0;border:none;border-radius:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.btn-reset:disabled{cursor:default}.field{display:grid;flex-direction:column;gap:6px;margin-bottom:12px}.field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.field-grid{display:grid;gap:12px;grid-template-columns:1fr;margin-bottom:12px}@media (min-width:640px){.field-grid{grid-template-columns:repeat(2,1fr)}}.label{display:block;font-size:var(--text-base);font-weight:var(--weight-normal);color:var(--color-ink)}.label.required:after{content:" *";color:var(--color-error)}.ctl,.field input:not([type=checkbox]):not([type=radio]):not([type=color]),.field select,.field textarea,.input,.input-v2,.select,.select-v2,.table-input,.table-select,.textarea,.v2-select{width:100%;height:var(--ctl-h,44px);padding:0 var(--ctl-px,14px);font-family:inherit;font-size:var(--ctl-fs,var(--text-base));border:1px solid var(--color-stroke);border-radius:var(--ctl-r,10px);background-color:var(--color-panel);color:var(--color-ink);transition:border-color .18s ease,box-shadow .18s ease}.ctl-sm{--ctl-h:34px;--ctl-px:12px;--ctl-fs:var(--text-sm);--ctl-r:8px}@media (pointer:coarse){.ctl-sm,.table-input,.table-select,.v2-select{--ctl-h:44px}}.ctl-lg{--ctl-h:48px;--ctl-px:var(--space-4);--ctl-fs:var(--text-md);--ctl-r:var(--radius-md)}.ctl-auto{width:auto}.input,.input-v2,.select,.select-v2,.textarea{--ctl-h:48px;--ctl-px:var(--space-4);--ctl-fs:var(--text-md);--ctl-r:var(--radius-md)}.v2-select{--ctl-h:34px;--ctl-px:12px;--ctl-fs:var(--text-sm);--ctl-r:8px}.ctl:hover:not(:disabled),.field input:not([type=checkbox]):not([type=radio]):not([type=color]):hover:not(:disabled),.field select:hover:not(:disabled),.field textarea:hover:not(:disabled),.input-v2:hover:not(:disabled),.input:hover:not(:disabled),.select-v2:hover:not(:disabled),.select:hover:not(:disabled),.table-input:hover:not(:disabled),.table-select:hover:not(:disabled),.textarea:hover:not(:disabled),.v2-select:hover:not(:disabled){border-color:var(--color-muted)}.ctl:focus,.field input:not([type=checkbox]):not([type=radio]):not([type=color]):focus,.field select:focus,.field textarea:focus,.input-v2:focus,.input:focus,.select-v2:focus,.select:focus,.table-input:focus,.table-select:focus,.textarea:focus,.v2-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 22%,transparent)}.ctl::placeholder,.field input::placeholder,.field textarea::placeholder,.input-v2::placeholder,.input::placeholder,.table-input::placeholder,.textarea::placeholder{color:var(--color-muted)}.ctl:disabled,.field input:disabled,.field select:disabled,.field textarea:disabled,.input-v2:disabled,.input:disabled,.select-v2:disabled,.select:disabled,.table-input:disabled,.table-select:disabled,.textarea:disabled,.v2-select:disabled{background-color:var(--color-panel-alt);color:var(--color-muted);cursor:not-allowed}.ctl.error,.input.error,.select.error,.textarea.error{border-color:var(--color-error)}.field textarea,.textarea,textarea.ctl{height:auto;min-height:100px;padding:10px var(--ctl-px,14px);line-height:1.5;resize:vertical}.field select,.select,.select-v2,.table-select,.v2-select,select.ctl{cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 13px center;background-size:12px}input[type=date].ctl::-webkit-calendar-picker-indicator,input[type=time].ctl::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}input[type=date].ctl::-webkit-calendar-picker-indicator:hover,input[type=time].ctl::-webkit-calendar-picker-indicator:hover{opacity:1}.ctl-nospin{-moz-appearance:textfield}.ctl-nospin::-webkit-inner-spin-button,.ctl-nospin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ctl.bare{height:auto;padding:0;border:none;background:transparent;border-radius:0;font-size:inherit;font-weight:inherit;color:inherit}.ctl.bare:focus,.ctl.bare:hover:not(:disabled){border-color:transparent;box-shadow:none}.ctl.bare:disabled,.swatch{background:transparent}.swatch{width:var(--swatch-size,36px);height:var(--swatch-size,36px);padding:2px;border:1px solid var(--color-stroke);border-radius:var(--swatch-r,8px);cursor:pointer;flex-shrink:0;transition:border-color .18s ease,box-shadow .18s ease}.swatch-sm{--swatch-size:28px;--swatch-r:6px}.swatch-wide{width:64px}.swatch:hover{border-color:var(--color-muted)}.swatch:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 22%,transparent)}.otp-boxes{display:flex;justify-content:center;gap:var(--otp-gap,8px)}.otp-box{width:var(--otp-w,48px);height:var(--otp-h,56px);text-align:center;font-family:inherit;font-size:var(--otp-fs,22px);font-weight:600;border:1.5px solid var(--color-stroke);border-radius:10px;background:var(--color-panel);color:var(--color-ink);caret-color:var(--color-accent);transition:border-color .18s ease,box-shadow .18s ease}.otp-box:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 22%,transparent)}.otp-box:disabled{opacity:.6;cursor:not-allowed}.otp-boxes.compact{--otp-w:40px;--otp-h:48px;--otp-fs:20px;--otp-gap:6px}.checkbox{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.checkbox-input,.checkbox-v2-input,.toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--color-stroke);border-radius:4px;background:var(--color-panel);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.checkbox-input:hover,.checkbox-v2-input:hover,.toggle input[type=checkbox]:hover{border-color:var(--color-accent)}.checkbox-input:checked,.checkbox-v2-input:checked,.toggle input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}.checkbox-input:checked:after,.checkbox-v2-input:checked:after,.toggle input[type=checkbox]:checked:after{content:"";width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-.5px,-.5px)}.checkbox-input:focus-visible,.checkbox-v2-input:focus-visible,.toggle input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 28%,transparent)}.checkbox-input:disabled,.checkbox-v2-input:disabled,.toggle input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.checkbox-label{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-ink)}.radio{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.radio-input{width:20px;height:20px;border:2px solid var(--color-stroke);border-radius:var(--radius-full);background:var(--color-panel);cursor:pointer;position:relative;appearance:none;transition:all var(--transition-base);flex-shrink:0}.radio-input:checked{border-color:var(--color-ink)}.radio-input:checked:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;background:var(--color-ink);border-radius:var(--radius-full);transform:translate(-50%,-50%)}.field-hint{font-size:var(--text-sm);color:var(--color-muted)}.field-error{font-size:var(--text-sm);color:var(--color-error)}.field-v2{display:flex;flex-direction:column;gap:var(--space-2)}.label-v2{display:block;font-size:var(--text-md);font-weight:var(--weight-normal);color:var(--color-ink);margin-bottom:var(--space-2)}.checkbox-v2{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.checkbox-v2-label{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-ink)}