*{margin:0;padding:0;box-sizing:border-box}
:root{--primary:#0055a5;--primary-dark:#003d7a;--primary-light:#eef2ff;--dark:#0f172a;--darker:#020617;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--success:#059669;--success-bg:#d1fae5;--warning:#d97706;--warning-bg:#fef3c7;--danger:#dc2626;--danger-bg:#fef2f2;--info:#0284c7;--info-bg:#e0f2fe;--radius:10px;--shadow:0 1px 3px rgba(0,0,0,.06)}
body{font-family:system-ui,-apple-system,sans-serif;background:var(--gray-100);color:var(--gray-800);min-height:100vh;display:flex}

/* Sidebar */
.sidebar{width:240px;background:var(--dark);min-height:100vh;position:fixed;left:0;top:0;z-index:50;display:flex;flex-direction:column;flex-shrink:0}
.sidebar-brand{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
.sidebar-brand h2{color:#fff;font-size:1.1rem;font-weight:800}
.sidebar-brand h2 span{color:#0ea5e9}
.sidebar-brand small{color:var(--gray-500);font-size:.68rem;display:block;margin-top:2px}
.sidebar-nav{padding:12px 0;flex:1}
.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--gray-400);text-decoration:none;font-size:.8rem;font-weight:500;transition:.15s;border-left:3px solid transparent}
.sidebar-nav a:hover{background:rgba(255,255,255,.04);color:#fff}
.sidebar-nav a.active{background:rgba(255,255,255,.06);color:#fff;border-left-color:var(--primary)}
.sidebar-nav a .icon{font-size:1.1rem;width:22px;text-align:center}
.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.06)}
.sidebar-footer a{color:var(--gray-500);font-size:.75rem;text-decoration:none;display:block;padding:4px 0}
.sidebar-footer a:hover{color:#fff}

/* Main */
.main{flex:1;margin-left:240px;min-height:100vh}
.topbar{background:#fff;border-bottom:1px solid var(--gray-200);padding:12px 28px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:40}
.topbar h1{font-size:1.05rem;font-weight:700;color:var(--gray-900)}
.topbar-right{display:flex;align-items:center;gap:16px;font-size:.8rem;color:var(--gray-500)}
.topbar-right a{color:var(--gray-500);text-decoration:none}
.topbar-right a:hover{color:var(--primary)}
.content{padding:24px 28px}

/* Cards */
.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.card-header h3{font-size:.9rem;font-weight:700}
.card-header .badge{font-size:.68rem;padding:3px 10px;border-radius:100px;font-weight:600}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px}
.stat-card .stat-icon{font-size:1.5rem;margin-bottom:8px}
.stat-card .stat-number{font-size:1.5rem;font-weight:800;color:var(--gray-900);line-height:1.2}
.stat-card .stat-label{font-size:.75rem;color:var(--gray-500);margin-top:2px}
.stat-card.primary{border-left:3px solid var(--primary)}
.stat-card.success{border-left:3px solid var(--success)}
.stat-card.warning{border-left:3px solid var(--warning)}
.stat-card.danger{border-left:3px solid var(--danger)}
.stat-card.info{border-left:3px solid var(--info)}

/* Tables */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.8rem}
thead th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--gray-200);color:var(--gray-500);font-weight:600;text-transform:uppercase;font-size:.68rem;letter-spacing:.5px;white-space:nowrap}
tbody td{padding:10px 12px;border-bottom:1px solid var(--gray-100);color:var(--gray-700)}
tbody tr:hover{background:var(--gray-50)}
.badge{padding:3px 10px;border-radius:100px;font-size:.68rem;font-weight:600;display:inline-block}
.badge-ativo,.badge-pago,.badge-ok{background:var(--success-bg);color:var(--success)}
.badge-inativo,.badge-cancelado{background:var(--gray-200);color:var(--gray-600)}
.badge-pendente{background:var(--warning-bg);color:var(--warning)}
.badge-vencido,.adge-bloqueado{background:var(--danger-bg);color:var(--danger)}
.badge-desenvolvimento{background:var(--info-bg);color:var(--info)}

/* Forms */
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:.75rem;font-weight:600;color:var(--gray-600);margin-bottom:4px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 12px;border:2px solid var(--gray-200);border-radius:6px;font-size:.82rem;font-family:inherit;transition:.15s;background:#fff}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,85,165,.1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:.15s;text-decoration:none}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-success{background:var(--success);color:#fff}
.btn-success:hover{background:#047857}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#b91c1c}
.btn-outline{background:transparent;border:2px solid var(--gray-200);color:var(--gray-600)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-sm{padding:6px 14px;font-size:.75rem}
.btn-block{width:100%;justify-content:center}
.btn-icon{width:34px;height:34px;padding:0;justify-content:center;border-radius:6px}

/* Progress */
.progress-bar{height:6px;background:var(--gray-200);border-radius:100px;overflow:hidden;margin-top:6px}
.progress-bar .fill{height:100%;border-radius:100px;transition:width .3s}
.progress-bar .fill.green{background:var(--success)}
.progress-bar .fill.yellow{background:var(--warning)}
.progress-bar .fill.red{background:var(--danger)}

/* Grid */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}

/* Modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;align-items:center;justify-content:center}
.modal-overlay.active{display:flex}
.modal{background:#fff;border-radius:12px;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.modal h3{font-size:1rem;font-weight:700;margin-bottom:16px}

/* Messages */
.msg{padding:10px 16px;border-radius:6px;font-size:.8rem;margin-bottom:16px}
.msg-success{background:var(--success-bg);color:var(--success)}
.msg-error{background:var(--danger-bg);color:var(--danger)}

/* Empty state */
.empty{text-align:center;padding:40px;color:var(--gray-400);font-size:.85rem}

/* Login page */
.login-page{background:linear-gradient(135deg,var(--darker),var(--dark));min-height:100vh;display:flex;align-items:center;justify-content:center;margin:0}
.login-card{background:#fff;border-radius:16px;padding:40px 36px;width:100%;max-width:400px;margin:20px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.login-card h1{font-size:1.2rem;text-align:center;margin-bottom:4px}
.login-card p{text-align:center;font-size:.8rem;color:var(--gray-500);margin-bottom:24px}

/* Responsive */
@media(max-width:768px){
    .sidebar{width:60px}
    .sidebar-brand h2,.sidebar-brand small,.sidebar-nav a span:not(.icon),.sidebar-footer{display:none}
    .sidebar-nav a{padding:12px;justify-content:center}
    .main{margin-left:60px}
    .content{padding:16px}
    .grid-2,.grid-3{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
}
