:root{--bg: #0f1419;--surface: #1a2332;--border: #2d3a4d;--text: #e7ecf3;--muted: #8b9cb3;--accent: #3d8bfd;--danger: #f07178;--success: #7fd962;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent)}.layout{max-width:960px;margin:0 auto;padding:1.5rem}.app-shell{display:flex;min-height:100vh}.app-nav{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;width:220px;flex-shrink:0;min-height:100vh;padding:1.25rem 1rem;border-right:1px solid var(--border);background:transparent}.app-main{flex:1;min-width:0;padding:1.5rem;overflow-y:auto}.app-nav a,.app-nav button,.app-nav select{width:100%}.app-nav .brand-logo{width:auto;margin-bottom:.75rem}.app-nav .spacer{flex:1;min-height:1rem}nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}nav .brand-logo{display:flex;align-items:center;margin-right:.25rem;text-decoration:none}nav .brand-logo img{height:36px;width:auto;display:block;border-radius:4px}.login-brand{display:block;height:52px;width:auto;max-width:100%;margin-bottom:1rem;border-radius:4px}nav a{text-decoration:none}nav a.active{font-weight:600;text-decoration:underline}nav .spacer{flex:1}button,.btn{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem}button.secondary,.btn.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}button.danger{background:var(--danger)}input,textarea,select{width:100%;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit}textarea{font-family:ui-monospace,monospace;min-height:240px}label{display:block;margin-bottom:.25rem;color:var(--muted);font-size:.85rem}.field{margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.error{color:var(--danger);margin:.5rem 0}.muted{color:var(--muted);font-size:.9rem}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem}.login-page .card{width:100%;max-width:400px}.login-page .dev-credentials{max-width:720px}.login-page .dev-credentials table{width:100%;font-size:.9rem}.badge{font-size:.75rem;padding:.15rem .45rem;border-radius:4px;background:var(--surface);border:1px solid var(--border);color:var(--muted)}.tenant-switch{width:auto;max-width:12rem}.tenant-pick-list{list-style:none;padding:0;margin:0}.tenant-pick-btn{width:100%;text-align:left;margin-bottom:.5rem}.perm-matrix{list-style:none;padding:0;margin:0 0 1rem}.perm-matrix li{margin-bottom:.35rem}.perm-matrix code{font-size:.8rem}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.inline-form input{flex:1;min-width:12rem}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;margin-bottom:1.5rem}.chart-card h2{margin:0 0 .75rem;font-size:1rem}.chart-card--line{grid-column:1 / -1}.report-section{margin:1.5rem 0}.report-section h2{font-size:1rem;margin:0 0 .75rem}.link-button{background:none;border:none;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.capitalize{text-transform:capitalize}.report-filters{margin-bottom:1rem}.report-filters .filter-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;border:none;padding:0;margin:0}.report-filters legend{width:100%;margin-bottom:.25rem;font-size:.85rem}.filter-field{display:flex;flex-direction:column;gap:.25rem}.filter-field label{margin:0}.filter-field--text{flex:1;min-width:10rem}.filter-field--text input{width:100%;min-width:10rem}input.date-input,input[type=date]{width:auto;min-width:10.5rem;color-scheme:dark;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85}.filter-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}.banner{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;border:1px solid var(--border)}.banner.warn{background:#3a2f1a;border-color:#8a6d2f;color:#f0d9a8}.warn{color:#f0d9a8}.page-header{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start;justify-content:space-between;margin-bottom:1rem}.page-header h1{margin:0 0 .25rem}.page-header .muted{margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0009}.modal{width:100%;max-width:32rem;max-height:calc(100vh - 3rem);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:0}.modal--wide{max-width:48rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem 0}.modal-header h2{margin:0;font-size:1.15rem}.modal-close{flex-shrink:0;width:2rem;height:2rem;padding:0;line-height:1;font-size:1.25rem}.modal-body{padding:1rem}.modal-body .card{margin-bottom:0;border:none;padding:0;background:transparent}.modal-footer{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;padding:0 1rem 1rem}.modal--wide textarea{min-height:280px}.dashboard-export{padding:1rem;max-width:1200px;margin:0 auto}.dashboard-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.dashboard-logo-wrap{background:#1b242b;padding:.5rem 1rem;border-radius:4px;flex-shrink:0}.dashboard-logo{height:48px;width:auto;display:block}.dashboard-header h1{margin:0 0 .25rem;font-size:1.25rem}.dashboard-date-range{margin:0;font-size:1.05rem;font-weight:600;color:var(--text)}.dashboard-meta{margin:.35rem 0 0;font-size:.85rem}
