*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#333}.app{display:flex;min-height:100vh}.sidebar{width:200px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh}.sidebar-header{padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h2{font-size:16px;margin-bottom:2px}.sidebar-subtitle{font-size:11px;color:#fff6}.nav-scroll{flex:1;overflow-y:auto;padding:8px 0}.nav-group{margin-bottom:4px}.nav-section{padding:10px 16px 4px;font-size:10px;font-weight:700;color:#ffffff59;letter-spacing:.5px;text-transform:uppercase}.nav-item{display:block;padding:5px 16px 5px 24px;color:#ffffffa6;text-decoration:none;font-size:13px;transition:all .15s}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff1f;color:#fff;font-weight:600}.sidebar-footer{padding:15px 20px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}.sidebar-footer span{display:block;margin-bottom:8px;color:#fff9}.sidebar-footer button{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;padding:4px 12px;border-radius:4px;cursor:pointer}.content{flex:1;margin-left:200px;padding:24px}.impersonate-bar{position:fixed;top:0;left:200px;right:0;background:#e74c3c;color:#fff;padding:6px 20px;z-index:100;display:flex;justify-content:space-between;align-items:center;font-size:13px}.impersonate-bar button{background:#fff3;border:none;color:#fff;padding:4px 12px;border-radius:4px;cursor:pointer}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#1a1a2e}.login-form{background:#fff;padding:40px;border-radius:8px;width:360px}.login-form h1{margin-bottom:24px;font-size:22px;text-align:center}.login-form input{display:block;width:100%;padding:10px 12px;margin-bottom:12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.login-form button{width:100%;padding:10px;background:#2c3e50;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer}.login-form button:disabled{opacity:.6}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:16px}.stat-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.stat-card h3{font-size:13px;color:#888;margin-bottom:8px}.stat-card p{font-size:24px;font-weight:600}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #eee;font-size:13px}.data-table input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2c3e50}.data-table th{background:#f8f9fa;font-weight:600;color:#555}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:#e9ecef}.data-table tbody tr:hover{background:#f8f9fa}.data-table code{font-size:12px;background:#f0f0f0;padding:2px 6px;border-radius:3px}.search-bar{display:flex;gap:8px;margin-bottom:16px}.search-bar input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.search-bar button{padding:8px 16px;background:#2c3e50;color:#fff;border:none;border-radius:4px;cursor:pointer}.badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-ok{background:#d4edda;color:#155724}.badge-off{background:#f8d7da;color:#721c24}.pagination{display:flex;gap:4px;justify-content:center;margin-top:16px}.pagination button{padding:6px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:13px}.pagination button.active{background:#2c3e50;color:#fff;border-color:#2c3e50}.pagination button:disabled{opacity:.4;cursor:default}.inline-form{display:flex;gap:8px;align-items:center;margin-bottom:12px}.inline-form select,.inline-form input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px}.inline-form button{padding:6px 14px;background:#2c3e50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.dashboard-header{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}.dashboard-header h1{margin:0}.dashboard-subtitle{color:#888;font-size:14px}.dashboard-user{margin-left:auto;font-size:14px;color:#555}.role-badge{background:#27ae60;color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;margin-left:6px}.stats-row{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.stats-row .stat-card{flex:1;min-width:140px}.stat-accent{border-left:4px solid #27ae60}.stat-number{font-size:28px;font-weight:700;color:#27ae60;margin-bottom:4px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 300px;gap:20px}.dashboard-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.dashboard-card h2{font-size:16px;margin-bottom:16px;color:#333}.source-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f0f0f0}.source-badge{background:#2c3e50;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:700;min-width:32px;text-align:center}.source-name{font-weight:600;font-size:14px}.source-info{color:#888;font-size:12px;margin-left:auto;margin-right:8px}.module-link{display:flex;align-items:center;gap:12px;padding:10px;border-radius:6px;text-decoration:none;color:#333;border-bottom:1px solid #f5f5f5;transition:background .15s}.module-link:hover{background:#f8f9fa}.module-icon{font-size:24px;width:36px;text-align:center}.module-title{font-weight:600;font-size:14px}.module-desc{color:#888;font-size:12px}.rate-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.rate-currency{background:#3498db;color:#fff;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:700}.rate-right{text-align:right}.rate-value{font-weight:600;font-size:15px}.rate-date{display:block;font-size:11px;color:#999}.service-row{display:flex;align-items:center;gap:8px;padding:6px 0}.service-dot{width:10px;height:10px;border-radius:50%}.dot-ok{background:#27ae60}.dot-err{background:#e74c3c}.dot-warn{background:#f39c12}.service-name{flex:1;font-size:13px}.badge-warn{background:#fff3cd;color:#856404}.nav-btn{display:inline-block;padding:8px 16px;background:#2c3e50;color:#fff;text-decoration:none;border-radius:4px;font-size:13px}.nav-btn:hover{background:#34495e}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding-top:80px}.modal-content{background:#fff;border-radius:8px;width:480px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-wide{width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}.modal-header h3{font-size:16px;margin:0}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#888;padding:0 4px}.modal-body{padding:20px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:#555}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px}.form-group textarea{min-height:60px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:16px;border-top:1px solid #eee}.btn{padding:8px 16px;border:none;border-radius:4px;font-size:13px;cursor:pointer}.btn-primary{background:#2c3e50;color:#fff}.btn-primary:hover{background:#34495e}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#219a52}.btn-secondary{background:#eee;color:#333}.btn-secondary:hover{background:#ddd}.btn-sm{padding:4px 10px;font-size:12px}.btn-outline{background:none;border:1px solid #ddd;color:#555}.btn:disabled{opacity:.5;cursor:not-allowed}.checkbox-group{display:flex;align-items:center;gap:6px}.checkbox-group input[type=checkbox]{width:auto}.error{background:#ffeaea;color:#c0392b;padding:8px 12px;border-radius:4px;margin-bottom:12px;font-size:13px}
