/* FORMS — inputs are sunken and square; the focus state is a mint ring plus a 1px inner line.
   Labels are mono uppercase micro type, never floating. */
.ag-field{display:grid;gap:var(--sp-2)}
.ag-field__label{font:var(--type-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted)}
.ag-field__hint{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint)}
.ag-field[data-invalid="true"] .ag-field__hint{color:var(--danger)}
.ag-input{width:100%;font-family:var(--font-ui);font-size:var(--fs-body-s);color:var(--text-strong);background:var(--surface-sunken);border:var(--bw-hair) solid var(--line);box-shadow:var(--shadow-sunken);padding:var(--sp-3) var(--sp-3);clip-path:var(--clip-notch-4);transition:border-color var(--t-hover),background-color var(--t-hover),box-shadow var(--t-hover)}
.ag-input::placeholder{color:var(--text-faint)}
.ag-input:hover{border-color:var(--line-strong)}
.ag-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-sunken),0 0 0 1px var(--accent)}
.ag-input[data-invalid="true"]{border-color:var(--danger)}
.ag-input:disabled{opacity:.45;cursor:not-allowed}
textarea.ag-input{resize:vertical;min-height:96px;line-height:var(--lh-body)}
.ag-select{position:relative;display:block}
.ag-select select{appearance:none;width:100%;padding-right:var(--sp-10)}
.ag-select__caret{position:absolute;right:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
/* check / radio / switch: all square, all mint when on */
.ag-check{display:inline-flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-body-s);color:var(--text-body)}
.ag-check input{position:absolute;opacity:0;width:0;height:0}
.ag-check__box{width:18px;height:18px;flex:0 0 auto;margin-top:1px;background:var(--surface-sunken);border:var(--bw-hair) solid var(--line-strong);box-shadow:var(--shadow-sunken);display:grid;place-items:center;transition:background-color var(--t-hover),border-color var(--t-hover)}
.ag-check:hover .ag-check__box{border-color:var(--accent)}
.ag-check input:checked+.ag-check__box{background:var(--accent);border-color:var(--accent)}
.ag-check__box i{width:8px;height:8px;background:var(--ink-1000);opacity:0;transform:scale(.6);transition:opacity var(--dur-1) var(--ease-swift),transform var(--dur-2) var(--ease-spring)}
.ag-check input:checked+.ag-check__box i{opacity:1;transform:scale(1)}
.ag-check[data-shape="radio"] .ag-check__box,.ag-check[data-shape="radio"] .ag-check__box i{clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)}
.ag-check input:focus-visible+.ag-check__box{outline:var(--bw) solid var(--focus-ring);outline-offset:2px}
.ag-switch{display:inline-flex;align-items:center;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-body-s);color:var(--text-body)}
.ag-switch input{position:absolute;opacity:0;width:0;height:0}
.ag-switch__track{width:44px;height:22px;background:var(--hud-bar-track);border:var(--bw-hair) solid var(--line-strong);box-shadow:var(--shadow-sunken);position:relative;flex:0 0 auto;transition:background-color var(--t-hover),border-color var(--t-hover)}
.ag-switch__track i{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--fg-3);transition:transform var(--dur-2) var(--ease-spring),background-color var(--t-hover)}
.ag-switch input:checked+.ag-switch__track{background:color-mix(in oklab,var(--accent) 22%,transparent);border-color:var(--accent)}
.ag-switch input:checked+.ag-switch__track i{transform:translate3d(22px,0,0);background:var(--accent)}
.ag-switch input:focus-visible+.ag-switch__track{outline:var(--bw) solid var(--focus-ring);outline-offset:2px}
