
:root{--navy:#0f172a;--navy2:#111827;--blue:#0b63f6;--orange:#f97316;--bg:#f5f7fb;--card:#fff;--border:#e5eaf2;--text:#172033;--muted:#6b7280;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--shadow:0 10px 30px rgba(15,23,42,.08);--radius:16px;--sidebar:250px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}body{font-size:14px;line-height:1.45}a{color:inherit}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}
.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top left,rgba(11,99,246,.12),transparent 34%),linear-gradient(135deg,#eef4ff 0%,#f8fafc 52%,#fff7ed 100%)}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:0 24px 70px rgba(15,23,42,.14);padding:32px}
.login-logo{text-align:center;margin-bottom:12px}.login-logo img{max-width:190px}.login-card h1{margin:4px 0 6px;text-align:center;font-size:30px}.muted{color:var(--muted);text-align:center;margin:0 0 24px}
.alert{border-radius:12px;padding:12px 14px;margin:0 0 16px;font-weight:700}.alert.error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.alert.success{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}
.app{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,var(--navy),var(--navy2));color:#e5e7eb;padding:22px 16px;overflow-y:auto;z-index:20}
.brand{padding:4px 8px 22px;text-align:center}.brand img{max-width:170px;display:block;margin:0 auto 12px}.brand small{display:block;color:#cbd5e1;font-size:12px}
.sidebar>a{display:flex;align-items:center;min-height:42px;padding:10px 12px;margin:5px 0;color:#dbe4f0;text-decoration:none;border-radius:11px;font-weight:700;transition:.18s}.sidebar>a:hover{background:rgba(255,255,255,.08);color:#fff}.sidebar>a.active{background:linear-gradient(90deg,var(--blue),#2563eb);color:#fff;box-shadow:0 8px 22px rgba(11,99,246,.28)}
.user-chip{margin-top:22px;padding:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:12px;color:#cbd5e1;font-size:12px}.user-chip b{color:#fff;font-size:13px}
.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));padding:22px;min-height:100vh}
.topbar,.page-head,.v-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.topbar h1,.page-head h1,.v-page-head h1{margin:0;font-size:30px}.section-title{font-size:20px;margin:22px 0 12px}
.card,.panel,.v-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:20px}.card-title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:10px}.stat,.stat-money{font-size:26px;font-weight:800}.stat-money{font-size:22px}
.form-grid,.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.form-group{margin-bottom:14px}label{display:block;font-weight:700;margin-bottom:7px;color:#263247}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=file],select,textarea{width:100%;border:1px solid var(--border);background:#fff;border-radius:11px;padding:10px 12px;min-height:42px;color:var(--text)}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,99,246,.12)}
.checkbox-row{display:flex;align-items:center;gap:8px;margin:8px 0 14px}.checkbox-row input{width:auto;min-height:auto;margin:0}
.btn,.v-btn,button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer;transition:.18s;background:var(--blue);color:#fff}.btn:hover,.v-btn:hover,button:hover{transform:translateY(-1px)}.btn.light,.v-btn.light{background:#eef2f7;color:#1f2937}.btn.success,.v-btn.success{background:#dcfce7;color:#166534}.btn.danger,.v-btn.danger{background:#fee2e2;color:#991b1b}.btn.small,.v-btn.small{padding:7px 10px;font-size:12px}
.table-wrap,.v-table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.table,.data-table,.v-table{width:100%;border-collapse:collapse;min-width:850px}.table th,.data-table th,.v-table th{background:#f8fafc;color:#64748b;text-transform:uppercase;font-size:11px;text-align:left;padding:12px;border-bottom:1px solid var(--border)}.table td,.data-table td,.v-table td{padding:13px 12px;border-bottom:1px solid #eef2f6;vertical-align:middle}
.badge,.v-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.badge.pending,.v-badge.pending{background:#fef3c7;color:#92400e}.badge.paid,.v-badge.paid{background:#dcfce7;color:#166534}.badge.partial,.v-badge.partial{background:#e0f2fe;color:#075985}.badge.expired,.badge.failed,.v-badge.expired,.v-badge.failed{background:#fee2e2;color:#991b1b}.badge.archived,.v-badge.archived{background:#e5e7eb;color:#374151}
.filter-grid,.v-filter{display:grid;grid-template-columns:1fr 220px auto auto;gap:12px;align-items:end}.v-progress,.payment-progress{height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden}.v-progress span,.payment-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--orange))}
.customer-payment-card{width:min(760px,calc(100% - 28px));margin:24px auto;background:#fff;border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:0 18px 50px rgba(15,23,42,.12)}
@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){:root{--sidebar:210px}.cards{grid-template-columns:repeat(2,1fr)}.form-grid,.grid-2{grid-template-columns:1fr}.filter-grid,.v-filter{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:static;width:100%;min-height:auto}.app{display:block}.main{margin-left:0;width:100%;padding:14px}.cards{grid-template-columns:1fr}.topbar,.page-head,.v-page-head{align-items:flex-start;flex-direction:column}}
