*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,sans-serif}#root{height:100vh}.app-shell{color:#1e293b;background:#f8fafc;height:100vh;font-family:system-ui,-apple-system,sans-serif;display:flex}.sidebar{background:#1e293b;flex-direction:column;flex-shrink:0;width:200px;padding:16px 0;display:flex}.sidebar-brand{color:#f8fafc;padding:8px 20px 24px;font-size:18px;font-weight:700}.nav-item{color:#94a3b8;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;padding:10px 20px;font-size:15px;transition:background .15s,color .15s}.nav-item:hover{color:#f8fafc;background:#334155}.nav-item.active{color:#fff;background:#334155;border-left:3px solid #4f7dff;font-weight:600}.main-content{flex:1;padding:32px;overflow-y:auto}.page-title{margin:0 0 24px;font-size:22px;font-weight:700}.loading,.error{text-align:center;color:#64748b;padding:40px}.error{color:#dc2626}.summary-cards{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.summary-card{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 3px #00000014}.summary-value{color:#1e293b;font-size:26px;font-weight:700}.summary-label{color:#64748b;margin-top:4px;font-size:13px}.chart-row{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.chart-card{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 3px #00000014}.chart-card h2{color:#334155;margin:0 0 16px;font-size:15px;font-weight:600}.chart-card.wide{grid-column:1/-1}.sphere-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.sphere-header .page-title{margin:0}.sphere-actions{align-items:center;gap:10px;display:flex}.sphere-actions select{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 10px;font-size:14px}.btn-primary{color:#fff;cursor:pointer;background:#4f7dff;border:none;border-radius:6px;padding:7px 14px;font-size:14px;text-decoration:none;transition:background .15s;display:inline-block}.btn-primary:hover{background:#3b69e8}.table-wrap{background:#fff;border-radius:12px;overflow:auto;box-shadow:0 1px 3px #00000014}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:#475569;white-space:nowrap;background:#f1f5f9;border-bottom:1px solid #e2e8f0;padding:10px 14px;font-weight:600}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:#e2e8f0}.data-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:9px 14px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f8fafc}.table-footer{color:#94a3b8;border-top:1px solid #f1f5f9;padding:10px 14px;font-size:13px}.row-actions{gap:6px;display:flex}.btn-icon{cursor:pointer;color:#475569;background:0 0;border:1px solid #cbd5e1;border-radius:4px;padding:3px 8px;font-size:12px}.btn-icon:hover{background:#f1f5f9}.btn-icon.danger{color:#dc2626;border-color:#fca5a5}.btn-icon.danger:hover{background:#fef2f2}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:480px;max-width:95vw;max-height:90vh;padding:28px 32px;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.modal h2{margin:0 0 20px;font-size:18px;font-weight:700}.contact-form{flex-direction:column;gap:14px;display:flex}.contact-form label{color:#374151;flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.contact-form input,.contact-form select{border:1px solid #cbd5e1;border-radius:6px;padding:7px 10px;font-size:14px}.form-row{align-items:flex-end;gap:12px;display:flex}.form-row label{flex:1}.checkbox-label{flex-direction:row!important;align-items:center!important;gap:6px!important}.form-error{color:#dc2626;background:#fef2f2;border-radius:6px;padding:8px 12px;font-size:13px}.form-buttons{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.form-buttons button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:8px 18px;font-size:14px}
