:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f5f7;--page-bg: #f4f5f7;--surface: #ffffff;--surface-muted: #f9fafb;--surface-strong: #ffffff;--text: #1a1a1a;--text-soft: #6b7280;--text-strong: #111827;--text-field-label: #374151;--border: #e5e7eb;--border-strong: #d1d5db;--link: #2563eb;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 24px rgba(0, 0, 0, .08);--success-bg: #ecfdf5;--success-border: #a7f3d0;--warning-bg: #fff7ed;--warning-border: #fdba74;--badge-bg: #e0e7ff;--badge-text: #3730a3;--badge-danger-bg: #fee2e2;--badge-danger-text: #991b1b;--error-bg: #fef2f2;--error-text: #b91c1c;--input-bg: #ffffff;--button-bg: #ffffff;--button-hover-bg: #f3f4f6}:root[data-theme=dark]{color:#e5e7eb;background:#0f172a;--page-bg: #0f172a;--surface: #111827;--surface-muted: #1f2937;--surface-strong: #0b1220;--text: #e5e7eb;--text-soft: #9ca3af;--text-strong: #f9fafb;--text-field-label: #d1d5db;--border: #374151;--border-strong: #4b5563;--link: #60a5fa;--shadow: 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 30px rgba(0, 0, 0, .35);--success-bg: #052e22;--success-border: #0f766e;--warning-bg: #3a2006;--warning-border: #c2410c;--badge-bg: #1e3a8a;--badge-text: #dbeafe;--badge-danger-bg: #4c0519;--badge-danger-text: #fecdd3;--error-bg: #450a0a;--error-text: #fecaca;--input-bg: #111827;--button-bg: #111827;--button-hover-bg: #1f2937}body{margin:0;background:var(--page-bg);color:var(--text);transition:background-color .2s ease,color .2s ease}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-shell{width:min(420px,100%)}.auth-toolbar{display:flex;justify-content:flex-end;margin-bottom:.75rem}.auth-card{width:min(420px,100%);background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);padding:1.5rem}.auth-card h1{margin-top:0}.layout{max-width:1200px;margin:0 auto;padding:1rem 1.5rem 2rem}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}header h1{font-size:1.35rem;margin:0}header nav{display:flex;flex-wrap:wrap;gap:1rem}nav a{color:var(--link);text-decoration:none;font-weight:500}nav a.active{text-decoration:underline}.header-actions{display:flex;gap:.75rem;align-items:center}.card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1rem;overflow-x:auto}.hero-card{margin-bottom:1.25rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.section-head h2{margin:0;font-size:1.05rem}.section-head a{color:var(--link);text-decoration:none;font-size:.9rem;font-weight:600}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:1rem 0}.summary-card{border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem;background:var(--surface-muted)}.summary-card.success{background:var(--success-bg);border-color:var(--success-border)}.summary-card.warning{background:var(--warning-bg);border-color:var(--warning-border)}.summary-label{margin:0 0 .35rem;color:var(--text-soft);font-size:.85rem}.summary-value{margin:0;font-size:1.9rem;font-weight:700;color:var(--text-strong)}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.meta-grid>div{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;background:var(--surface-muted);border-radius:8px}.meta-label{color:var(--text-soft);font-size:.8rem;font-weight:600}.split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1.25rem}.empty-state{margin:.5rem 0 0}.stack{display:flex;flex-direction:column;gap:1rem}.stack-lg{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.9rem;font-weight:600;color:var(--text-field-label)}input{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:8px;font:inherit;background:var(--input-bg);color:var(--text)}.user-create-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;align-items:end;margin-top:1rem}select{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:8px;font:inherit;background:var(--input-bg);color:var(--text)}.field-inline{min-width:140px}.toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:end;flex-wrap:wrap;margin:1rem 0}.toolbar-search{display:flex;gap:.75rem;flex:1 1 320px;align-items:end}.toolbar-search input{flex:1 1 auto}.toolbar-controls{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:end}.checkbox-inline{display:inline-flex;align-items:center;gap:.5rem;padding-bottom:.5rem;color:var(--text)}.checkbox-inline input{width:auto;margin:0}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}th{background:var(--surface-muted);font-weight:600}.sort-button{border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:600}.sort-button:hover{background:transparent;color:var(--link)}.sort-button.active{color:var(--link)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;background:var(--badge-bg);color:var(--badge-text)}.badge.offline{background:var(--badge-danger-bg);color:var(--badge-danger-text)}.muted{color:var(--text-soft);font-size:.85rem}.error{color:var(--error-text);padding:.75rem;background:var(--error-bg);border-radius:6px}button{cursor:pointer;padding:.35rem .75rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--button-bg);color:var(--text);font-size:.85rem}button:hover{background:var(--button-hover-bg)}.actions-cell{display:flex;flex-wrap:wrap;gap:.5rem}.table-form,.table-form input{min-width:180px}.printer-label-text{display:inline-block;min-height:1.5rem;line-height:1.5rem}.row-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.inline-edit-button{display:inline-flex;align-items:center;gap:.35rem}.button-icon{flex:0 0 auto}button:disabled{cursor:default;opacity:.65}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.pagination-pages{display:flex;gap:.5rem;flex-wrap:wrap}.pagination-pages button.active{border-color:var(--link);color:var(--link)}@media (max-width: 720px){.layout{padding:1rem}header{align-items:flex-start;flex-direction:column}.split-grid{grid-template-columns:1fr}.toolbar-search{flex-direction:column;align-items:stretch}}
