@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--color-bg:#f4f5f7;--color-surface:#fff;--color-surface-2:#f9fafb;--color-border:#e5e7eb;--color-primary:#111827;--color-primary-dark:#000;--color-primary-glow:#1118270d;--color-accent:#3b82f6;--color-accent-light:#3b82f61a;--color-success:#10b981;--color-success-bg:#10b9811a;--color-danger:#ef4444;--color-danger-bg:#ef44441a;--color-warning:#f59e0b;--color-text:#111827;--color-text-muted:#4b5563;--color-text-dim:#9ca3af;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-glow:0 0 0 2px var(--color-border);--sidebar-width:240px;--transition:.2s ease;--transition-slow:.35s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,sans-serif;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.app-layout{min-height:100vh;display:flex}.app-main{min-width:0;margin-left:var(--sidebar-width);padding:var(--sp-8);transition:margin-left var(--transition-slow);flex:1}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-logo{padding:var(--sp-6) var(--sp-5);border-bottom:1px solid var(--color-border)}.sidebar-logo h2{letter-spacing:.05em;color:var(--color-primary);font-size:15px;font-weight:800}.sidebar-logo p{color:var(--color-text-dim);margin-top:2px;font-size:11px}.sidebar-nav{padding:var(--sp-4) var(--sp-3);gap:var(--sp-1);flex-direction:column;flex:1;display:flex}.sidebar-section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim);padding:var(--sp-3) var(--sp-3) var(--sp-2);font-size:10px;font-weight:600}.sidebar-link{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);border-radius:var(--radius-md);color:var(--color-text-muted);transition:all var(--transition);text-align:left;background:0 0;border:none;width:100%;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--color-primary-glow);color:var(--color-text);transform:translate(2px)}.sidebar-link.active{background:var(--color-primary-glow);color:var(--color-primary);border-left:2px solid var(--color-primary)}.sidebar-link .icon{opacity:.7;flex-shrink:0;width:18px}.sidebar-link.active .icon{opacity:1}.sidebar-footer{padding:var(--sp-4) var(--sp-3);border-top:1px solid var(--color-border)}.user-badge{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);background:var(--color-surface-2);margin-bottom:var(--sp-3);display:flex}.user-badge-avatar{border-radius:var(--radius-full);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.user-badge-info{min-width:0}.user-badge-name{truncate:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.user-badge-role{color:var(--color-text-muted);font-size:11px}.page-header{margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-header-left h1{color:var(--color-text);font-size:24px;font-weight:700}.page-header-left p{color:var(--color-text-muted);margin-top:2px;font-size:14px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-6);transition:border-color var(--transition)}.card:hover{box-shadow:var(--shadow-sm)}.card-title{margin-bottom:var(--sp-4);color:var(--color-text);font-size:16px;font-weight:600}.stat-grid{gap:var(--sp-4);margin-bottom:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-5);transition:all var(--transition);position:relative;overflow:hidden}.stat-card:before{display:none}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-icon{border-radius:var(--radius-md);background:var(--color-primary-glow);width:40px;height:40px;margin-bottom:var(--sp-4);justify-content:center;align-items:center;font-size:20px;display:flex}.stat-card-value{color:var(--color-text);font-size:28px;font-weight:800;line-height:1}.stat-card-label{color:var(--color-text-muted);margin-top:var(--sp-2);font-size:13px}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;padding:9px 16px;font-size:14px;font-weight:500;line-height:1;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:12px 24px;font-size:15px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-secondary{background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.btn-accent{background:var(--color-accent);color:#000}.btn-accent:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.btn-success:hover:not(:disabled){background:var(--color-success);color:#fff}.form-group{gap:var(--sp-2);flex-direction:column;display:flex}.form-label{color:var(--color-text-muted);font-size:13px;font-weight:500}.form-label.required:after{content:" *";color:var(--color-danger)}.form-control{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);width:100%;color:var(--color-text);transition:all var(--transition);outline:none;padding:10px 12px;font-size:14px}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.form-control::placeholder{color:var(--color-text-dim)}.form-control:disabled{opacity:.5;cursor:not-allowed}.form-error{color:var(--color-danger);font-size:12px}.form-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.form-grid-2{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.table-container{border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{background:var(--color-surface-2);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:12px 14px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-primary-glow)}.table .actions{gap:var(--sp-2);display:flex}.badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-blue{background:var(--color-primary-glow);color:var(--color-primary)}.badge-green{background:var(--color-success-bg);color:var(--color-success)}.badge-red{background:var(--color-danger-bg);color:var(--color-danger)}.badge-amber{background:var(--color-accent-light);color:var(--color-accent)}.badge-gray{background:var(--color-surface-2);color:var(--color-text-muted)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--sp-4);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-height:90vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal-sm{max-width:420px}.modal-md{max-width:600px}.modal-lg{max-width:860px}.modal-xl{max-width:1100px}.modal-header{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:18px;font-weight:700}.modal-close{border-radius:var(--radius-md);background:var(--color-surface-2);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--color-danger-bg);color:var(--color-danger)}.modal-body{padding:var(--sp-6)}.modal-footer{gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}.search-bar{align-items:center;gap:var(--sp-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition);padding:8px 12px;display:flex}.search-bar:focus-within{border-color:var(--color-primary)}.search-bar input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.search-bar input::placeholder{color:var(--color-text-dim)}.search-bar .icon{color:var(--color-text-dim);flex-shrink:0}.totals-bar{gap:var(--sp-6);padding:var(--sp-4) var(--sp-6);background:var(--color-surface-2);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.total-item{flex-direction:column;gap:2px;display:flex}.total-item-label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.total-item-value{color:var(--color-text);font-size:16px;font-weight:700}.total-item-value.accent{color:var(--color-accent)}.total-item-value.primary{color:var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:40px;height:40px}.loading-state{justify-content:center;align-items:center;gap:var(--sp-4);padding:var(--sp-10);color:var(--color-text-muted);flex-direction:column;font-size:14px;display:flex}.empty-state{justify-content:center;align-items:center;gap:var(--sp-4);padding:var(--sp-10);color:var(--color-text-dim);text-align:center;flex-direction:column;display:flex}.empty-state-icon{opacity:.4;font-size:48px}.empty-state h3{color:var(--color-text-muted);font-size:16px;font-weight:600}.empty-state p{font-size:14px}.pagination{padding:var(--sp-4);color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.pagination-controls{gap:var(--sp-2);display:flex}.login-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:100%;max-width:400px;padding:var(--sp-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.login-logo{text-align:center;margin-bottom:var(--sp-8)}.login-logo h1{color:var(--color-primary);letter-spacing:-.02em;font-size:22px;font-weight:800}.login-logo p{color:var(--color-text-dim);margin-top:var(--sp-2);font-size:13px}@media print{.sidebar,.page-header .btn,.no-print{display:none!important}.app-main{margin-left:0;padding:0}body{color:#000;background:#fff}.card{box-shadow:none;border:1px solid #ddd}.table th{background:#f5f5f5}}@media (width<=768px){:root{--sidebar-width:0px}.app-main{padding:var(--sp-4);margin-left:0}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.form-grid,.form-grid-2{grid-template-columns:1fr}}
