.btn{justify-content:center;align-items:center;gap:var(--sp-3);border-radius:var(--r-md);font-family:var(--font);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) ease, box-shadow var(--dur-fast) ease, color var(--dur-fast) ease, opacity var(--dur-fast) ease;border:0;flex-shrink:0;line-height:1;display:inline-flex}.btn:disabled{opacity:.4;cursor:default}.btn--sm{height:var(--ctl-sm);padding:0 var(--sp-5);font-size:var(--text-sm);border-radius:var(--r-sm)}.btn--md{height:var(--ctl-md);padding:0 var(--sp-6);font-size:var(--text-sm)}.btn--lg{height:var(--ctl-lg);padding:0 var(--sp-8);font-size:var(--text-md)}.btn--primary,.btn--secondary,.btn--danger{box-shadow:var(--lift)}.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg)}.btn--primary:hover:not(:disabled){background:var(--btn-primary-hover);box-shadow:var(--lift-hover)}.btn--primary:active:not(:disabled){background:var(--btn-primary-press)}.btn--secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);box-shadow:var(--lift-solid)}.btn--secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn--secondary:active:not(:disabled){background:var(--btn-secondary-press)}.btn--ghost{color:var(--text-mod);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--hover-strong);color:var(--text-strong);box-shadow:var(--lift-flat)}.btn--ghost:active:not(:disabled){background:var(--press)}.btn--danger{background:var(--red);color:var(--text-on-color)}.btn--danger:hover:not(:disabled){opacity:.88}.btn--danger:active:not(:disabled){opacity:.78}.btn--danger-soft{box-shadow:inset 0 0 0 var(--stroke) var(--red-border);color:var(--red);background:0 0}.btn--danger-soft:hover:not(:disabled){background:var(--red-bg)}.btn--danger-soft:active:not(:disabled){background:var(--red-bg);box-shadow:inset 0 0 0 var(--stroke) var(--red)}.btn--block{width:100%}.btn--icon{padding:0}.btn--icon.btn--sm{width:var(--ctl-sm)}.btn--icon.btn--md{width:var(--ctl-md)}.btn--icon.btn--lg{width:var(--ctl-lg)}.field{background:var(--bg-surface);border-radius:var(--r-md);width:100%;box-shadow:var(--lift-inset);color:var(--text-strong);font-family:var(--font);font-size:var(--text-md);transition:box-shadow var(--dur-fast) ease, background var(--dur-fast) ease;border:0;outline:none}.field::placeholder{color:var(--text-muted)}.field:hover:not(:disabled):not(:focus){box-shadow:var(--lift-inset), inset 0 0 0 .5px var(--border-strong)}.field:focus{box-shadow:var(--lift-inset), inset 0 0 0 1px var(--border-strong);background:var(--bg-elevated)}.field:disabled{opacity:.5;cursor:default}.field--md{height:var(--ctl-md);padding:0 var(--sp-6)}.field--lg{height:var(--ctl-lg);padding:0 var(--sp-7);font-size:var(--text-lg)}.field--area{height:auto;min-height:76px;padding:var(--sp-5) var(--sp-6);resize:vertical;line-height:1.5}.field--invalid,.field--invalid:focus{box-shadow:var(--lift-inset), inset 0 0 0 1px var(--red)}.field-label{margin-bottom:var(--sp-3);font-size:var(--text-xs);font-weight:var(--fw-medium);color:var(--text-mod);display:block}.field-hint{margin-top:var(--sp-3);font-size:var(--text-xs);color:var(--text-muted)}.field-hint--error{color:var(--red)}
