/* Asetukset-näkymän yhteiset tyylit (siirretty AsetuksetShell.razorin <style>-lohkosta 2026-10-28). */
/* ── Projektityypit-taulukko ── */
/* Osion otsikko + toimintonappi oikealla (2026-10-28: aiempi padding:0 vei otsikon reunaan kiinni). */
.pt-section-header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.settings-section-header.pt-section-header { padding-top:8px; padding-bottom:8px; }
.pt-section-header .btn-sm { text-transform:none; letter-spacing:normal; }
.btn-sm { font-size:0.78rem; padding:0.28rem 0.7rem; border-radius:6px; }
.pt-table { width:100%; border-collapse:collapse; font-size:0.875rem; margin-top:0.5rem; }
.pt-table th {
    text-align:left; padding:0.5rem 1rem;
    color:var(--color-text-muted,#888); font-weight:500;
    border-bottom:1px solid var(--color-border,#e5e7eb); white-space:nowrap;
}
.pt-table th:first-child, .pt-table td:first-child { padding-left:1.25rem; }
.pt-table th:last-child, .pt-table td:last-child { padding-right:1.25rem; }
.pt-table td { padding:0.55rem 1rem; border-bottom:1px solid var(--color-border,#f3f4f6); vertical-align:middle; }
.pt-table tbody tr:hover { background:var(--color-surface,#f9fafb); }
.pt-code { background:var(--color-surface,#f3f4f6); padding:0.15rem 0.4rem; border-radius:4px; font-size:0.8rem; font-family:monospace; }
.pt-badge-default { display:inline-block; background:var(--color-primary,#2563eb); color:#fff; font-size:0.72rem; padding:0.18rem 0.55rem; border-radius:999px; font-weight:600; }
.pt-actions { white-space:nowrap; }
.btn-icon { background:none; border:none; cursor:pointer; padding:0.25rem 0.35rem; border-radius:4px; color:var(--color-text-muted,#6b7280); line-height:1; }
.btn-icon:hover { background:var(--color-surface,#f3f4f6); color:var(--color-text,#111); }
.btn-icon-danger:hover { background:#fee2e2; color:#dc2626; }
.btn-link { background:none; border:none; cursor:pointer; color:var(--color-primary,#2563eb); font-size:0.8rem; padding:0; text-decoration:underline; }
/* ── Modaali ── */
.pt-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:1000; display:flex; align-items:center; justify-content:center; }
.pt-modal { background:var(--color-surface,#fff); border-radius:12px; width:100%; max-width:520px; box-shadow:0 20px 60px rgba(0,0,0,0.2); overflow:hidden; }
.pt-modal-header { display:flex; align-items:center; justify-content:space-between; padding:1.1rem 1.4rem; border-bottom:1px solid var(--color-border,#e5e7eb); }
.pt-modal-header h2 { margin:0; font-size:1rem; font-weight:600; }
.pt-modal-close { background:none; border:none; cursor:pointer; color:var(--color-text-muted,#6b7280); padding:0.25rem; border-radius:4px; line-height:1; }
.pt-modal-close:hover { background:var(--color-surface,#f3f4f6); }
.pt-modal-body { padding:1rem 1.4rem; }
.pt-modal-body .settings-row { padding:0.6rem 0; }
.pt-modal-footer { display:flex; justify-content:flex-end; gap:0.6rem; padding:1rem 1.4rem; border-top:1px solid var(--color-border,#e5e7eb); }
/* ── Auto-save badge ── */
.settings-saved-badge { position:fixed; bottom:1.5rem; right:1.5rem; background:#22c55e; color:#fff; padding:0.35rem 0.85rem; border-radius:8px; font-size:0.82rem; font-weight:500; z-index:2000; box-shadow:0 2px 12px rgba(0,0,0,0.15); pointer-events:none; animation:fadeInUp 0.2s ease; }
@keyframes fadeInUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
/* ── Teematila ── */
.theme-mode-group { display:flex; gap:0.4rem; }
.theme-mode-btn { padding:0.5rem 1rem; border:2px solid var(--color-border,#e5e7eb); border-radius:8px; background:var(--color-surface,#fff); cursor:pointer; font-size:0.82rem; font-weight:500; color:var(--color-text-muted,#6b7280); transition:border-color 0.15s,color 0.15s; white-space:nowrap; }
.theme-mode-btn.active { border-color:var(--color-primary,#2563eb); color:var(--color-primary,#2563eb); }
/* ── Osion johdantoteksti (2026-10-28: tekstit olivat kiinni kortin reunassa) ── */
.settings-section-intro { padding:12px 20px 4px; font-size:12.5px; line-height:1.5; color:var(--color-text-muted,#6b7280); }
/* ── Oletusyksiköt-sirut ── */
.unit-chips { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.unit-chip { display:inline-flex; align-items:center; gap:1px; padding:2px 4px 2px 6px; border:1px solid var(--color-border,#e5e7eb); border-radius:999px; background:var(--color-surface,#fff); font-size:12.5px; }
.unit-chip-name { padding:0 4px; font-variant-numeric:tabular-nums; }
.unit-chip-btn { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border:0; border-radius:50%; background:transparent; color:var(--color-text-muted,#6b7280); cursor:pointer; padding:0; }
.unit-chip-btn:hover:not(:disabled) { background:var(--color-border-light,#f1f5f9); color:var(--color-text,#111); }
.unit-chip-btn:disabled { opacity:.25; cursor:default; }
.unit-chip-del:hover:not(:disabled) { background:#fee2e2; color:#dc2626; }
/* ── Työpöytä-sivun upotettu taustapaneeli ── */
.wp-settings-body { padding:16px 20px 18px; }
.wp-settings-body .mdi-tool-btn { padding:6px 12px; font-size:12.5px; border-radius:6px; }
/* ── Vakioliitteet: lisäyslomake + ryhmäotsikot ── */
.vl-form { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; padding:16px 20px; }
.vl-field { display:flex; flex-direction:column; gap:4px; min-width:150px; }
.vl-field > span { font-size:12px; font-weight:500; color:var(--color-text-muted,#6b7280); }
.vl-grow { flex:1; min-width:200px; }
.vl-narrow { min-width:90px; flex:0 0 110px; }
.vl-field .settings-input, .vl-field .settings-select { width:100%; box-sizing:border-box; }
.vl-file { height:36px; padding:0 12px; font-size:12.5px; max-width:240px; }
.vl-file-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vl-add { height:36px; padding:0 18px; }
.vl-group { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted,#6b7280); padding:14px 20px 2px; }
/* ── Tiedostolataus ── */
.file-upload-area { display:flex; align-items:center; gap:0.75rem; }
.file-preview-img { width:48px; height:48px; object-fit:contain; border:1px solid var(--color-border,#e5e7eb); border-radius:8px; background:#fff; padding:4px; }
.file-preview-logo { height:32px; max-width:160px; object-fit:contain; border:1px solid var(--color-border,#e5e7eb); border-radius:6px; background:#fff; padding:4px 8px; }
.file-upload-label { display:inline-flex; align-items:center; gap:0.35rem; font-size:0.78rem; padding:0.28rem 0.7rem; border-radius:6px; border:1px solid var(--color-border,#e5e7eb); background:var(--color-surface,#fff); cursor:pointer; color:var(--color-text,#111); font-weight:500; transition:background 0.15s; }
.file-upload-label:hover { background:var(--color-surface,#f3f4f6); }
.file-upload-input { display:none; }
