/* ITSM J7 design system over locally bundled Tabler/Bootstrap components. */
:root {
 --tblr-primary:#287f78; --tblr-primary-rgb:40,127,120;
 --tblr-body-font-family:'Segoe UI',system-ui,sans-serif;
 --tblr-body-color:var(--text,#17303d); --tblr-body-bg:var(--app-bg,#f3f6f7);
 --tblr-bg-forms:var(--surface,#fff); --tblr-border-color:var(--border,#d5e0e4);
 --tblr-secondary-color:var(--text-muted,#526973); --tblr-border-radius:8px;
 --tblr-font-sans-serif:'Segoe UI',system-ui,sans-serif;
}
body.j7-ui { font-family:var(--tblr-body-font-family); font-size:14px; }
body.j7-ui [hidden] { display:none !important; }
body.j7-shell { padding-left:224px; box-sizing:border-box; }
.j7-global-sidebar { position:fixed; left:0; top:0; bottom:0; width:224px; z-index:850; display:flex; flex-direction:column; overflow-y:auto; background:var(--surface); border-right:1px solid var(--border-soft); padding:22px 12px; box-sizing:border-box; color:var(--text); }
.j7-sidebar-brand { display:flex; align-items:center; gap:12px; padding:0 10px 24px; text-decoration:none; color:var(--text); font-size:23px; font-weight:750; line-height:1.25; }
.j7-sidebar-brand small { display:block; font-size:11px; font-weight:500; color:var(--text-muted); margin-top:3px; letter-spacing:.5px; }
.j7-sidebar-logo { width:170px; max-width:100%; height:auto; max-height:58px; object-fit:contain; background:white; border-radius:8px; padding:6px; box-sizing:border-box; }
.j7-sidebar-mark { display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; font-size:20px; border-radius:12px; color:white; background:#287f78; }
.j7-global-sidebar nav { margin-bottom:16px; }
.j7-global-sidebar h2 { padding:6px 12px; margin:0 0 4px; color:var(--text-dim); font-size:10px; font-weight:650; text-transform:uppercase; letter-spacing:1px; }
.j7-global-sidebar .j7-sidebar-link { display:flex; align-items:center; gap:10px; padding:9px 12px; margin:2px 0; border-radius:8px; text-decoration:none; color:var(--text-muted); font-size:13px; line-height:1.5; min-height:38px; box-sizing:border-box; }
.j7-sidebar-link:hover { background:var(--surface-hover); color:var(--text); }
.j7-global-sidebar .j7-sidebar-link.active { color:var(--accent); background:var(--accent-soft); font-weight:650; }
.j7-sidebar-link .waffle-module-icon { width:18px; height:18px; margin:0; border-radius:0; background:none !important; flex:0 0 18px; }
.j7-sidebar-link .waffle-module-icon svg { width:18px; height:18px; color:currentColor !important; }
.j7-sidebar-link .waffle-module-name { font-size:13px; text-align:left; }
.j7-sidebar-footer { margin-top:auto; padding:20px 12px 0; color:var(--text-dim); font-size:11px; }
.j7-sidebar-group summary { cursor:pointer; padding:10px 12px; color:var(--text-muted); font-size:12px; font-weight:650; border-radius:8px; }
.j7-sidebar-group summary:hover { background:var(--surface-hover); }
.j7-sidebar-group h2[hidden] { display:none; }
body.j7-ui .header { min-height:60px; padding:12px 20px; gap:12px; }
body.j7-ui .header-nav { margin-left:12px; gap:5px; min-width:0; flex:1; overflow-x:auto; scrollbar-width:none; }
body.j7-ui .header-nav .nav-btn { border:1px solid transparent; background:transparent; padding:8px 12px; font-size:13px; flex:0 0 auto; white-space:nowrap; }
body.j7-ui .header-nav .nav-btn.active { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.15); }
body.j7-ui .j7-bs-form-control,body.j7-ui .j7-bs-form-select { border-radius:8px; border:1px solid var(--border); background-color:var(--surface); color:var(--text); min-height:38px; padding:9px 12px; font-size:14px; line-height:1.4; box-sizing:border-box; max-width:100%; box-shadow:none; }
body.j7-ui .j7-bs-form-select { padding-right:34px; background-image:var(--tblr-form-select-bg-img); background-position:right 12px center; background-repeat:no-repeat; background-size:16px 12px; }
body.j7-ui .j7-bs-form-control:focus,body.j7-ui .j7-bs-form-select:focus { border-color:var(--accent); outline:none; box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent); }
body.j7-ui .j7-bs-form-control:disabled,body.j7-ui .j7-bs-form-select:disabled { background:var(--surface-3); opacity:.75; }
body.j7-ui .j7-bs-form-label { font-size:13px; font-weight:600; color:var(--text); line-height:1.5; margin-bottom:7px; }
body.j7-ui .j7-bs-btn { border-radius:8px; padding:8px 14px; font-size:13px; line-height:1.4; min-height:36px; box-shadow:none; font-weight:600; white-space:normal; gap:7px; }
body.j7-ui .j7-bs-btn-primary { --tblr-btn-bg:var(--accent); --tblr-btn-border-color:var(--accent); --tblr-btn-color:var(--on-accent); background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
body.j7-ui .j7-bs-btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
body.j7-ui .j7-bs-btn-outline-secondary { --tblr-btn-color:var(--text-muted); border-color:var(--border); color:var(--text-muted); background:var(--surface); }
body.j7-ui .j7-bs-btn-outline-secondary:hover { background:var(--surface-2); border-color:var(--accent); }
body.j7-ui .j7-bs-btn-outline-danger { color:var(--danger-text,#b42318); border-color:var(--danger-border,#efc5c0); background:var(--danger-bg,#fff5f4); }
body.j7-ui .j7-bs-table { --tblr-table-bg:var(--surface); --tblr-table-color:var(--text); --tblr-table-border-color:var(--border-soft); color:var(--text); font-size:13px; }
body.j7-ui .j7-bs-table thead th { background:var(--surface-2); color:var(--text-muted); padding:13px 14px; font-weight:650; font-size:12px; line-height:1.5; border-bottom:1px solid var(--border); }
body.j7-ui .j7-bs-table tbody td { padding:12px 14px; border-bottom:1px solid var(--border-soft); vertical-align:middle; }
body.j7-ui .j7-bs-table tbody tr:hover { background:var(--surface-hover); }
body.j7-ui :is(.modal-content,.settings-card,.settings-section,.ops-panel,.detail-card) { border-radius:12px; border-color:var(--border-soft); }
body.j7-ui :is(.modal-header,.detail-header,.settings-header,.section-header) { padding:18px 20px; }
body.j7-ui :is(.modal-body,.settings-body) { padding:20px; }
body.j7-ui :is(.modal-footer,.modal-actions) { gap:10px; }
body.j7-ui .modal-content h2 { font-size:20px; line-height:1.4; }
body.j7-ui .assets-list-header,body.j7-ui .sidebar-header { background:var(--surface); padding:20px 16px; }
body.j7-ui :is(.asset-item,.ticket-item,.task-item) { padding:14px 16px; border-bottom:1px solid var(--border-soft); }
body.j7-ui .assets-list-container { width:310px; min-width:260px; }
body.j7-ui .assets-list-container h3 { font-size:15px; font-weight:650; }
body.j7-ui .detail-tabs { background:var(--surface); border-bottom:1px solid var(--border); }
body.j7-ui .detail-tab { background:transparent; color:var(--text-muted); border:0; border-bottom:2px solid transparent; border-radius:0; padding:12px 16px; font-size:13px; }
body.j7-ui .detail-tab.active { background:var(--surface); color:var(--accent); border-bottom-color:var(--accent); font-weight:650; }
body.j7-ui .asset-detail-container { background:var(--app-bg); }
body.j7-ui .login-container .j7-bs-form-control,body.j7-ui .login-container .j7-bs-btn { min-height:48px; font-size:16px; }
@media(max-width:1200px) { body.j7-shell { padding-left:0; } .j7-global-sidebar { display:none; } }
@media(max-width:768px) {
 body.j7-ui { font-size:14px; }
 body.j7-ui .j7-bs-form-control,body.j7-ui .j7-bs-form-select { font-size:16px; min-height:44px; }
 body.j7-ui .j7-bs-btn { min-height:42px; }
 body.j7-ui .header { min-height:54px; padding:10px 12px; }
 body.j7-ui .header-nav { margin-left:0; flex:1 1 100%; width:100%; }
 body.j7-ui .j7-bs-table tbody td { padding:10px 12px; }
 body.j7-ui .assets-list-container { width:100%; min-width:0; }
}
@media print { .j7-global-sidebar { display:none; } body.j7-shell { padding-left:0; } }
