.button{
  min-height:2.75rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border:1px solid var(--color-border-strong);
  border-radius:0;
  background:#fff;
  color:var(--color-text);
  padding:.65rem 1rem;
  font-family:var(--font-heading);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);
}
.button:hover{background:#eef1f3}
.button--primary{background:var(--color-accent);border-color:var(--color-accent-hover);color:#fff}
.button--primary:hover{background:var(--color-accent-hover)}
.button--danger{border-color:#c99898;color:var(--color-error)}
.button[disabled]{cursor:not-allowed;opacity:.58}
.button.is-loading{position:relative;color:transparent}
.button.is-loading::after{content:"";position:absolute;width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;color:#fff}
@keyframes spin{to{transform:rotate(360deg)}}
.icon-button{
  width:2.75rem;height:2.75rem;display:grid;place-items:center;
  border:1px solid var(--color-border-strong);background:#fff;color:var(--color-text)
}
.icon-button svg,.button svg,.nav-icon{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form-field{display:grid;gap:.35rem}
.form-field label{font-family:var(--font-heading);font-size:.58rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#67737a}
.form-field input,.form-field select,.form-field textarea{
  width:100%;min-height:2.85rem;border:1px solid #aeb8be;border-radius:0;background:#fff;color:var(--color-text);padding:.7rem .75rem
}
.form-field textarea{min-height:6rem;resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-accent);outline:0;box-shadow:inset 0 0 0 1px var(--color-accent)}
.panel{border:1px solid var(--color-border-strong);background:#fff}
.panel__header{min-height:3rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--color-border-strong);background:var(--color-surface-muted);padding:.65rem .8rem}
.panel__header h2,.panel__header h3{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}
.panel__body{padding:.85rem}
.badge{display:inline-flex;align-items:center;min-height:1.6rem;border:1px solid currentColor;padding:.25rem .45rem;background:#fff;font-family:var(--font-heading);font-size:.52rem;font-weight:800;text-transform:uppercase;white-space:nowrap}
.badge--success{color:var(--color-success)}.badge--warning{color:var(--color-warning)}.badge--info{color:var(--color-accent)}.badge--error{color:var(--color-error)}
.dialog{position:fixed;inset:0;z-index:5000;display:grid;align-items:end;background:rgba(17,25,30,.48)}
.dialog__panel{width:100%;max-height:94vh;overflow:auto;background:#fff;border-top:1px solid var(--color-border-strong)}
.dialog__header,.dialog__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;background:var(--color-surface-muted)}
.dialog__header{border-bottom:1px solid var(--color-border-strong)}
.dialog__footer{position:sticky;bottom:0;border-top:1px solid var(--color-border);justify-content:flex-end}
.dialog__header h2{font-size:.82rem;text-transform:uppercase}
.dialog__body{padding:1rem}
.toast{position:fixed;z-index:8000;left:50%;bottom:1rem;transform:translate(-50%,1rem);opacity:0;pointer-events:none;width:min(34rem,calc(100% - 2rem));border:1px solid var(--color-border-strong);border-left:5px solid var(--color-accent);background:#fff;padding:.8rem 1rem;box-shadow:var(--shadow);font-size:.78rem;transition:opacity var(--motion-normal),transform var(--motion-normal)}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:48rem){
  .dialog{align-items:center;padding:1rem}
  .dialog__panel{width:min(42rem,100%);margin:auto;border:1px solid var(--color-border-strong)}
}
