@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&family=Nunito+Sans:wght@400;500;600;700&display=swap";
:root{--sky-blue:#5b8ec9;--pastel-blue:#a3c4e9;--ice-blue:#e3eef8;--pink:#f2a7b3;--pastel-green:#b8dcb3;--lavender:#c4b5e0;--apricot:#ffb347;--turquoise:#7ecac1;--peach:#ffd6a0;--dark-gray:#3d3d4a;--mid-gray:#7a7a8a;--cream:#f5f3f0;--white:#fdfcfb;--success:#b8dcb3;--error:#e8686a;--warning:#ffb347;--info:#5b8ec9;--font-heading:"Nunito", sans-serif;--font-body:"Nunito Sans", sans-serif;--shadow-sm:0 1px 3px #3b3d4a14;--shadow-md:0 4px 12px #3b3d4a1a;--shadow-lg:0 8px 30px #3b3d4a1f;--shadow-xl:0 16px 48px #3b3d4a26;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--sidebar-width:260px;--sidebar-collapsed:72px;--navbar-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--dark-gray);background-color:var(--white);min-height:100vh;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--dark-gray);line-height:1.3}h1{font-size:2rem;font-weight:700}h2{color:var(--sky-blue);font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:500}p{color:var(--dark-gray);font-size:1rem}small,.text-sm{color:var(--mid-gray);font-size:.8125rem}a{color:var(--turquoise);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--sky-blue)}.btn{font-family:var(--font-heading);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 24px;font-size:.9375rem;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--apricot);color:var(--white);box-shadow:0 4px 14px #ffb34759}.btn-primary:hover{background:#f0a030;transform:translateY(-1px);box-shadow:0 6px 20px #ffb34773}.btn-secondary{background:var(--sky-blue);color:var(--white);box-shadow:0 4px 14px #5b8ec94d}.btn-secondary:hover{background:#4a7db8;transform:translateY(-1px)}.btn-outline{color:var(--sky-blue);border:2px solid var(--pastel-blue);background:0 0}.btn-outline:hover{background:var(--ice-blue);border-color:var(--sky-blue)}.btn-danger{background:var(--error);color:var(--white)}.btn-danger:hover{background:#d45a5c}.btn-sm{padding:6px 16px;font-size:.8125rem}.btn-lg{padding:14px 32px;font-size:1.0625rem}.btn-icon{border-radius:var(--radius-sm);color:var(--mid-gray);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:inline-flex}.btn-icon:hover{background:var(--ice-blue);color:var(--sky-blue)}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--ice-blue);transition:all var(--transition-normal);overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-body{padding:24px}.card-header{border-bottom:1px solid var(--ice-blue);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.card-footer{border-top:1px solid var(--ice-blue);background:var(--cream);padding:16px 24px}.form-group{margin-bottom:20px}.form-label{font-family:var(--font-heading);color:var(--dark-gray);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{width:100%;font-family:var(--font-body);color:var(--dark-gray);background:var(--white);border:2px solid var(--pastel-blue);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:10px 16px;font-size:.9375rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--sky-blue);box-shadow:0 0 0 3px #5b8ec926}.form-input::placeholder{color:var(--mid-gray)}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--error);margin-top:4px;font-size:.8125rem}.form-hint{color:var(--mid-gray);margin-top:4px;font-size:.8125rem}.badge{font-family:var(--font-heading);border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-pink{color:#d4616f;background:#f2a7b333}.badge-green{color:#5a9b53;background:#b8dcb34d}.badge-lavender{color:#8b72b8;background:#c4b5e033}.badge-apricot{color:#c8841e;background:#ffb34733}.badge-blue{color:var(--sky-blue);background:#5b8ec926}.badge-turquoise{color:#4a9a8f;background:#7ecac133}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--ice-blue);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9375rem}.table th{text-align:left;font-family:var(--font-heading);color:var(--mid-gray);background:var(--ice-blue);text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--pastel-blue);padding:12px 16px;font-size:.8125rem;font-weight:600}.table td{border-bottom:1px solid var(--ice-blue);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#e3eef866}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;opacity:0;visibility:hidden;transition:all var(--transition-normal);background:#3d3d4a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;visibility:visible}.modal{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:560px;max-height:90vh;transition:all var(--transition-normal);overflow-y:auto;transform:translateY(20px)scale(.95)}.modal-overlay.active .modal{transform:translateY(0)scale(1)}.modal-header{border-bottom:1px solid var(--ice-blue);justify-content:space-between;align-items:center;padding:24px;display:flex}.modal-header h2{color:var(--dark-gray);font-size:1.25rem}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--ice-blue);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.navbar{height:var(--navbar-height);background:var(--white);border-bottom:1px solid var(--ice-blue);z-index:100;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo{font-family:var(--font-heading);color:var(--dark-gray);align-items:center;gap:12px;font-size:1.25rem;font-weight:700;display:flex}.navbar-logo img{width:auto;height:40px}.navbar-actions{align-items:center;gap:16px;display:flex}.navbar-user{border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:6px 12px;display:flex}.navbar-user:hover{background:var(--ice-blue)}.navbar-avatar{background:var(--pastel-blue);width:36px;height:36px;font-family:var(--font-heading);color:var(--white);border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:flex}.sidebar{width:var(--sidebar-width);height:calc(100vh - var(--navbar-height));top:var(--navbar-height);background:var(--white);border-right:1px solid var(--ice-blue);z-index:90;transition:all var(--transition-normal);padding:16px 0;position:fixed;left:0;overflow-y:auto}.sidebar-section{margin-bottom:4px;padding:8px 16px}.sidebar-section-title{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.08em;color:var(--mid-gray);margin-bottom:8px;padding:0 12px;font-size:.6875rem;font-weight:700}.sidebar-link{border-radius:var(--radius-md);color:var(--dark-gray);font-family:var(--font-body);transition:all var(--transition-fast);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:.9375rem;font-weight:500;display:flex}.sidebar-link:hover{background:var(--ice-blue);color:var(--sky-blue)}.sidebar-link.active{background:var(--ice-blue);color:var(--sky-blue);font-weight:600}.sidebar-link svg{flex-shrink:0;width:20px;height:20px}.main-content{margin-left:var(--sidebar-width);margin-top:var(--navbar-height);min-height:calc(100vh - var(--navbar-height));background:var(--cream);padding:32px}.main-content.no-sidebar{margin-left:0}.page-header{margin-bottom:32px}.page-header h1{margin-bottom:4px}.page-header p{color:var(--mid-gray)}.grid{gap:24px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--ice-blue);transition:all var(--transition-normal);align-items:flex-start;gap:16px;padding:24px;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-icon.blue{color:var(--sky-blue);background:#5b8ec926}.stat-icon.green{color:#5a9b53;background:#b8dcb34d}.stat-icon.pink{color:#d4616f;background:#f2a7b333}.stat-icon.apricot{color:#c8841e;background:#ffb34733}.stat-icon.lavender{color:#8b72b8;background:#c4b5e033}.stat-icon.turquoise{color:#4a9a8f;background:#7ecac133}.stat-info h3{color:var(--dark-gray);margin-bottom:4px;font-size:1.75rem;font-weight:700;line-height:1}.stat-info p{color:var(--mid-gray);font-size:.8125rem}.pagination{justify-content:center;align-items:center;gap:8px;margin-top:24px;display:flex}.pagination button{border:1px solid var(--pastel-blue);border-radius:var(--radius-sm);background:var(--white);color:var(--dark-gray);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);padding:8px 14px;font-size:.875rem}.pagination button:hover{background:var(--ice-blue);border-color:var(--sky-blue)}.pagination button.active{background:var(--sky-blue);color:var(--white);border-color:var(--sky-blue)}.toast-container{z-index:9999;flex-direction:column;gap:12px;display:flex;position:fixed;top:80px;right:24px}.toast{border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-lg);border-left:4px solid var(--sky-blue);align-items:center;gap:12px;min-width:320px;padding:14px 20px;font-size:.9375rem;animation:.3s slideIn;display:flex}.toast.success{border-left-color:var(--pastel-green)}.toast.error{border-left-color:var(--error)}.toast.warning{border-left-color:var(--apricot)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.spinner{border:3px solid var(--ice-blue);border-top-color:var(--sky-blue);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{justify-content:center;align-items:center;min-height:200px;display:flex}.empty-state{text-align:center;color:var(--mid-gray);padding:48px 24px}.empty-state svg{width:64px;height:64px;color:var(--pastel-blue);margin-bottom:16px}.empty-state h3{color:var(--dark-gray);margin-bottom:8px}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{z-index:200;width:280px;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-xl);transform:translate(0)}.main-content{margin-left:0;padding:20px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.navbar{padding:0 16px}.modal{width:95%;margin:0 auto}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--pastel-blue);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--sky-blue)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.text-center{text-align:center}.w-full{width:100%}@keyframes pulse{0%,to{opacity:1;box-shadow:0 4px 14px #ffb34759}50%{opacity:.85;box-shadow:0 4px 20px #ffb34799}}.modal-xl .modal{width:95%;max-width:900px}
