:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#dde1e6;--color-text:#1b2430;--color-text-muted:#5c6672;--color-primary:#1f3a5f;--color-primary-hover:#16283f;--color-accent:#b5651d;--color-danger:#9b2c2c;--color-success:#2f6b3a;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--radius:6px;--shadow-sm:0 1px 2px #141a2214}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;font-size:15px;line-height:1.5}a{color:var(--color-primary)}button{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:.5em;padding:.55em 1.1em;font-weight:600;transition:background-color .12s,border-color .12s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn-secondary:hover{border-color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.status-pill{color:var(--color-text-muted);background:#eef1f4;border-radius:999px;align-items:center;gap:.4em;padding:.15em .65em;font-size:.8em;font-weight:600;display:inline-flex}.status-pill--ok{color:var(--color-success);background:#e7f3e9}.status-pill--error{color:var(--color-danger);background:#fbeaea}@media (width<=640px){body{font-size:14px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem;display:flex}.filter-bar__field{color:var(--color-text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.filter-bar input,.filter-bar select,.form-field input,.form-field select,.form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:#fff;padding:.45em .65em;font-family:inherit;font-size:.95rem}.data-table{border-collapse:collapse;background:var(--color-surface);width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.6rem .85rem}.data-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;font-size:.75rem}.data-table th button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.3em;padding:0;display:inline-flex}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#f0f3f6}.data-table__empty td{text-align:center;color:var(--color-text-muted);cursor:default;padding:2rem}.data-table__empty:hover{background:0 0}.pagination{color:var(--color-text-muted);align-items:center;gap:1rem;margin-top:1rem;font-size:.85rem;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;max-width:640px;display:grid}.form-grid--full{grid-column:1/-1}.form-field{flex-direction:column;gap:.3rem;display:flex}.form-field label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.form-field__error{color:var(--color-danger);margin:0;font-size:.8rem}.form-field__hint{color:var(--color-text-muted);margin:0;font-size:.8rem}.form-actions{gap:.75rem;margin-top:1.5rem;display:flex}.detail-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:1.25rem 0;display:grid}.detail-stat{padding:1rem}.detail-stat__value{font-size:1.5rem;font-weight:700}.detail-stat__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.detail-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem 1.5rem;padding:1.25rem 1.5rem;display:grid}.detail-fields dt{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.detail-fields dd{margin:.15rem 0 0}.banner-error{color:var(--color-danger);border-radius:var(--radius);background:#fbeaea;border:1px solid #f2c9c9;margin-bottom:1rem;padding:.75rem 1rem}.detail-title__id{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.6em;font-weight:400}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{background:var(--color-primary);color:#fff;align-items:center;gap:2rem;padding:.75rem 1.5rem;display:flex}.app-header__brand{letter-spacing:.02em;font-weight:700}.app-header__nav{flex:1;gap:1.25rem;display:flex}.app-header__nav a{color:#ffffffc7;border-bottom:2px solid #0000;padding:.25rem 0;font-weight:500;text-decoration:none}.app-header__nav a:hover{color:#fff}.app-header__nav a.active{color:#fff;border-bottom-color:var(--color-accent)}.app-header__user{align-items:center;gap:.75rem;display:flex}.app-header__email{color:#ffffffd9;font-size:.85rem}.app-header .btn-secondary{color:#fff;border-color:#fff6}.app-header .btn-secondary:hover{border-color:#fff}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem}.dashboard-nav{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.dashboard-nav__group{padding:1.25rem 1.5rem}.dashboard-nav__group--sites{--dash-accent:#3b6ea5;--dash-accent-hover:#305a87}.dashboard-nav__group--components{--dash-accent:#4a8f72;--dash-accent-hover:#3c7660}.dashboard-nav__group--system{--dash-accent:#7a5ea8;--dash-accent-hover:#644c8a}.dashboard-nav__group h2{text-transform:uppercase;letter-spacing:.04em;color:var(--dash-accent,var(--color-text-muted));margin:0 0 .9rem;font-size:.95rem}.dashboard-nav__buttons{flex-direction:column;gap:.5rem;display:flex}.dashboard-nav__button{background:var(--dash-accent,var(--color-primary));color:#fff;text-align:left;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.6rem 1rem;font-size:.95rem;font-weight:500;transition:background-color .15s}.dashboard-nav__button:hover:not(:disabled){background:var(--dash-accent-hover,var(--dash-accent))}.dashboard-nav__button:focus-visible{outline:2px solid var(--dash-accent,var(--color-primary));outline-offset:2px}.dashboard-nav__button:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.login-page{background:var(--color-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;max-width:360px;padding:2.5rem 3rem}.login-card h1{letter-spacing:.02em;margin:0 0 .25rem;font-size:1.5rem}.login-card p{color:var(--color-text-muted);margin:0 0 1.5rem}.login-card .btn{justify-content:center;width:100%}
