/* Crystal / glass components. Only var(--token) values: a theme change needs no CSS edit. */
.glass{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);
  box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);backdrop-filter:blur(var(--glass-blur)) saturate(140%)}
.card{padding:var(--space-5);margin-block-end:var(--space-4);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.card:hover{box-shadow:var(--shadow-lg)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-block-end:var(--space-3)}
.card-head h2{display:flex;gap:.5rem;align-items:center;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.55rem 1.1rem;border:1px solid transparent;
  border-radius:var(--radius-sm);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}
.btn-primary{background:var(--btn-gradient);color:var(--color-on-primary);box-shadow:var(--shadow)}
.btn-ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}
.btn-danger{background:var(--color-danger);color:#fff}
.btn-block{width:100%}
.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-sm);border:1px solid var(--color-border);
  background:var(--color-surface);color:var(--color-text);cursor:pointer}
.chip{border:1px solid var(--color-border);background:transparent;color:var(--color-text);padding:.3rem .7rem;border-radius:999px;cursor:pointer;font:inherit;font-size:.85rem}
.chip.is-active{background:var(--btn-gradient);color:var(--color-on-primary);border-color:transparent}
.lang-switch{display:flex;gap:.35rem}
.field{display:grid;gap:.3rem;margin-block-end:var(--space-4)}
.field label{font-weight:600;font-size:.9rem}
.field input,.field select{width:100%;min-height:44px;padding:.55rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-surface-strong);color:var(--color-text);font:inherit}
.field.has-error input{border-color:var(--color-danger)}
.field-error{color:var(--color-danger)}.hint{color:var(--color-muted)}
.input-group{display:flex;gap:.4rem}.input-group input{flex:1}
.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-block-end:var(--space-4);border:1px solid var(--color-border);background:var(--color-surface-strong)}
.alert-danger{border-color:var(--color-danger);color:var(--color-danger)}
.alert-success{border-color:var(--color-success)}.alert-warning{border-color:var(--color-warning)}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}
.badge-ok{background:color-mix(in srgb,var(--color-success) 18%,transparent);color:var(--color-success)}
.badge-warn{background:color-mix(in srgb,var(--color-warning) 22%,transparent);color:var(--color-warning)}
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th,.table td{text-align:start;padding:.6rem .7rem;border-block-end:1px solid var(--color-border)}
.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted)}
.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-block-start:var(--space-4)}
.dialog{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-strong);color:var(--color-text);box-shadow:var(--shadow-lg);max-width:420px;width:calc(100% - 2rem)}
.dialog::backdrop{background:rgba(8,14,40,.45);backdrop-filter:blur(4px)}
.dialog-actions{display:flex;gap:.5rem;justify-content:flex-end}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0 0 var(--space-4)}.kv dt{color:var(--color-muted)}.kv dd{margin:0;font-weight:600}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-4);margin-block-end:var(--space-5)}
.stat-card{padding:var(--space-4) var(--space-5);transition:transform var(--dur) var(--ease)}
.stat-card:hover{transform:translateY(-3px)}
.stat-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;background:var(--btn-gradient);margin-block-end:var(--space-2)}
.tone-green .stat-icon{background:linear-gradient(135deg,#22c55e,#16a34a)}.tone-amber .stat-icon{background:linear-gradient(135deg,#fbbf24,#f59e0b)}
.tone-red .stat-icon{background:linear-gradient(135deg,#f87171,#dc2626)}.tone-violet .stat-icon{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.stat-label{color:var(--color-muted);margin:0;font-size:.9rem}.stat-value{font-size:1.8rem;font-weight:700;margin:0}
