/* Controls shared by public pages, account forms and workspaces. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);min-height:var(--button-height);width:auto;padding:var(--space-8) var(--space-16);border:var(--border-width) solid var(--cobalt-600);border-radius:var(--radius-button);background:var(--cobalt-600);color:var(--surface);font-size:var(--font-size-13);line-height:var(--line-height-heading);font-weight:var(--weight-600);text-decoration:none;white-space:normal;cursor:pointer;transition:background var(--transition-ui),border-color var(--transition-ui),color var(--transition-ui)}
.btn:hover{background:var(--cobalt-700);border-color:var(--cobalt-700);color:var(--surface)}.btn.secondary{background:var(--surface);border-color:var(--line);color:var(--ink-900)}.btn.secondary:hover{background:var(--canvas);border-color:var(--ink-500)}.btn.tertiary{padding-inline:0;border-color:transparent;background:transparent;color:var(--cobalt-600)}.btn.danger,.archive-action{color:var(--status-expired-text)}.btn.compact{min-height:var(--button-compact-height);padding:var(--space-4) var(--space-12)}
.icon-button{width:var(--button-compact-height);height:var(--button-compact-height);padding:0;display:inline-flex;align-items:center;justify-content:center;border:var(--border-width) solid transparent;border-radius:var(--radius-control);color:var(--ink-500);background:transparent}.icon-button:hover{background:var(--cobalt-50);color:var(--cobalt-600)}
.field{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-24);min-width:0}.field>label,.search-label{color:var(--ink-700);font-size:var(--font-size-13);font-weight:var(--weight-500);letter-spacing:normal;text-transform:none;line-height:var(--label-line-height)}.field>label>span[aria-hidden]{color:var(--ink-500)}
input,select,textarea{width:100%;min-width:0;min-height:var(--input-height);padding:var(--space-8) 0;border:0;border-bottom:var(--border-width) solid var(--line);border-radius:0;background:transparent;color:var(--ink-900);font-size:var(--font-size-16);font-weight:var(--weight-400);line-height:var(--line-height-body)}
input::placeholder,textarea::placeholder{color:var(--ink-500)}input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;box-shadow:none;border-color:transparent;background:var(--focus-fill)}textarea{min-height:var(--textarea-height);resize:vertical}.field>.fine,.field>div>.fine{font-size:var(--font-size-12)}.field-error{color:var(--status-expired-text);font-size:var(--font-size-12);margin-top:var(--space-4)}.invalid input,.invalid textarea,.invalid select{border-color:var(--status-expired-text)}
.checkbox{display:flex;align-items:center;gap:var(--space-12);min-height:var(--input-height)}.checkbox input{appearance:auto;accent-color:var(--cobalt-600);width:var(--checkbox-size);height:var(--checkbox-size);min-height:0;flex:none;margin:0}.checkbox label{font-size:var(--font-size-13);font-weight:var(--weight-500)}
.password-row{position:relative;min-width:0}.password-row input{padding-right:var(--space-64)}.password-row>button{position:absolute;right:0;top:var(--space-8);min-height:var(--button-compact-height);padding:var(--space-4) var(--space-8);background:transparent;border:0;border-radius:var(--radius-control);color:var(--ink-500);font-size:var(--font-size-12)}.password-row>button:hover{background:var(--canvas);color:var(--cobalt-600)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-24)}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-12);margin-top:var(--space-16)}.form-actions form{margin:0}
.notice{padding:var(--space-12) var(--space-16);border-left:var(--nav-indicator-width) solid var(--cobalt-600);background:var(--cobalt-50);font-size:var(--font-size-13);color:var(--ink-700);margin-bottom:var(--space-24)}.notice p{color:inherit}.notice .text-link{font-size:inherit}.flash-region{padding-top:var(--space-16)}.alert{padding:var(--space-12) var(--space-16);border:var(--border-width) solid var(--line);border-left:var(--nav-indicator-width) solid var(--cobalt-600);border-radius:var(--radius-control);background:var(--cobalt-50);color:var(--ink-700);font-size:var(--font-size-13);margin-bottom:var(--space-8)}.alert.error{color:var(--status-expired-text);border-left-color:var(--status-expired-text);background:var(--status-expired-bg)}.alert.success{color:var(--status-competent-text);border-left-color:var(--status-competent-text);background:var(--status-competent-bg)}
.panel{padding:var(--space-24) 0;border:0;border-top:var(--border-width) solid var(--line);border-radius:0;background:transparent;margin-block:var(--space-24)}.panel>:last-child{margin-bottom:0}.panel h2,.panel h3{margin-bottom:var(--space-12)}
.toolbar{display:flex;align-items:flex-end;gap:var(--space-12);flex-wrap:wrap;margin-bottom:var(--space-24)}.toolbar .field{margin-bottom:0;flex:1;min-width:var(--coverage-label-min)}.toolbar .btn{flex:none}.clear-link{display:inline-flex;margin-top:var(--space-12)}
.table-wrap{position:relative;width:100%;max-width:100%;overflow:auto;border:0;border-top:var(--border-width) solid var(--line);border-radius:0;background:transparent}table{width:100%;min-width:var(--table-min-width);border-collapse:collapse;text-align:left;font-size:var(--font-size-13);line-height:var(--line-height-body)}thead{position:sticky;top:0;background:var(--canvas);z-index:1}th{height:var(--table-row-compact-height);padding:var(--space-8) var(--space-16);font-size:var(--font-size-12);font-weight:var(--weight-600);text-transform:uppercase;letter-spacing:var(--tracking-table);color:var(--ink-500);border-bottom:var(--border-width) solid var(--line);white-space:nowrap}td{height:var(--table-row-height);padding:var(--space-8) var(--space-16);border-bottom:var(--border-width) solid var(--line);color:var(--ink-700);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--canvas)}tbody tr[aria-selected=true]{background:var(--cobalt-50)}td a{font-weight:var(--weight-500);text-decoration:none}td a:hover{text-decoration:underline}td small{display:block;margin-top:var(--space-4);font-size:var(--font-size-12);font-weight:var(--weight-400);color:var(--ink-500)}.table-title{min-width:var(--demo-person-width)}.numeric{text-align:right;font-variant-numeric:var(--tabular-numbers)}.date-cell{font-family:var(--font-mono);font-size:var(--font-size-12);white-space:nowrap}.pagination{display:flex;align-items:center;gap:var(--space-16);margin-top:var(--space-24);font-size:var(--font-size-13)}
.badge{display:inline-flex;align-items:center;gap:var(--space-4);min-height:var(--status-pill-height);padding:0 var(--space-8);border-radius:var(--radius-pill);background:var(--status-not-started-bg);color:var(--status-not-started-text);font-size:var(--font-size-12);font-weight:var(--weight-500);white-space:nowrap}.badge:before{content:'';display:block;width:var(--space-4);height:var(--space-4);border-radius:var(--radius-pill);background:currentColor}.badge-published,.badge-active,.badge-verified,.badge-resolved{background:var(--status-competent-bg);color:var(--status-competent-text)}.badge-review,.badge-new,.badge-open,.badge-in_progress{background:var(--status-in-progress-bg);color:var(--status-in-progress-text)}.badge-disabled,.badge-unverified{background:var(--status-expired-bg);color:var(--status-expired-text)}
.empty{padding:var(--space-32) 0;border-block:var(--border-width) solid var(--line)}.empty>h2,.empty>h3{margin-bottom:var(--space-8)}.empty>p{max-width:var(--text-measure);margin-bottom:var(--space-16);font-size:var(--font-size-13)}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding-block:var(--space-16);border-bottom:var(--border-width) solid var(--line)}.list-row:last-child{border-bottom:0}.list-row p{font-size:var(--font-size-12);margin-top:var(--space-4)}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-32)}.secret{overflow-wrap:anywhere}
@media(max-width:37.5em){.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:auto}.form-actions{align-items:flex-start}.toolbar{gap:var(--space-12)}.toolbar .field{flex-basis:100%}.panel{padding:var(--space-16)}.split{grid-template-columns:minmax(0,1fr)}th,td{padding-inline:var(--space-12)}}

/* Input focus uses the field label and fill, without an active border or ring. */
.field:focus-within>label,.field:focus-within>.checkbox>label{color:var(--cobalt-600);font-weight:var(--weight-600)}
.field:has(:focus-visible)>label{text-decoration:underline;text-underline-offset:var(--space-4)}
input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:none;border-color:transparent;background:var(--focus-fill)}
