*{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth} body{font-family:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;color:#1f2937;background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} button{background:none;border:none;padding:0;margin:0;cursor:pointer} a{color:inherit;text-decoration:none} ul,ol{list-style:none} input,textarea,select{font-family:inherit;font-size:inherit} *:focus{outline:none} *:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px} .skip-link{position:absolute;top:-40px;left:6px;background:var(--primary-blue);color:white;padding:8px;text-decoration:none;border-radius:4px;z-index:10000} .skip-link:focus{top:6px} .live-region{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
:root{--primary-blue:#2563eb;--secondary-blue:#3b82f6;--light-blue:#dbeafe;--dark-blue:#1e40af;--accent-purple:#8b5cf6;--accent-pink:#ec4899;--success-green:#10b981;--warning-orange:#f59e0b;--error-red:#ef4444;--info-blue:#3b82f6;--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;--white:#ffffff;--black:#000000;--font-family:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--line-height-tight:1.2;--line-height-normal:1.4;--line-height-relaxed:1.6;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,0.25);--transition-fast:0.15s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080;--container-max-width:1200px;--container-padding:1.25rem;--header-height:80px;--sidebar-width:280px;--sidebar-width-collapsed:80px}
h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--gray-800);margin-bottom:var(--space-4)} h1{font-size:var(--font-size-5xl);font-weight:var(--font-weight-extrabold)} h2{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold)} h3{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold)} h4{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold)} h5{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)} h6{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)} p{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--gray-600);margin-bottom:var(--space-4)} a{color:var(--primary-blue);text-decoration:none;transition:color var(--transition-fast)} a:hover{color:var(--dark-blue)} a:focus{outline:none} a:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;border-radius:var(--radius-sm)} ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-6)} li{margin-bottom:var(--space-2);line-height:var(--line-height-relaxed)} .text-xs{font-size:var(--font-size-xs)} .text-sm{font-size:var(--font-size-sm)} .text-base{font-size:var(--font-size-base)} .text-lg{font-size:var(--font-size-lg)} .text-xl{font-size:var(--font-size-xl)} .text-2xl{font-size:var(--font-size-2xl)} .text-3xl{font-size:var(--font-size-3xl)} .text-4xl{font-size:var(--font-size-4xl)} .text-5xl{font-size:var(--font-size-5xl)} .text-6xl{font-size:var(--font-size-6xl)} .font-normal{font-weight:var(--font-weight-normal)} .font-medium{font-weight:var(--font-weight-medium)} .font-semibold{font-weight:var(--font-weight-semibold)} .font-bold{font-weight:var(--font-weight-bold)} .font-extrabold{font-weight:var(--font-weight-extrabold)} .text-left{text-align:left} .text-center{text-align:center} .text-right{text-align:right} .text-gray-50{color:var(--gray-50)} .text-gray-100{color:var(--gray-100)} .text-gray-200{color:var(--gray-200)} .text-gray-300{color:var(--gray-300)} .text-gray-400{color:var(--gray-400)} .text-gray-500{color:var(--gray-500)} .text-gray-600{color:var(--gray-600)} .text-gray-700{color:var(--gray-700)} .text-gray-800{color:var(--gray-800)} .text-gray-900{color:var(--gray-900)} .text-primary{color:var(--primary-blue)} .text-secondary{color:var(--secondary-blue)} .text-success{color:var(--success-green)} .text-warning{color:var(--warning-orange)} .text-error{color:var(--error-red)} .text-white{color:var(--white)} .leading-tight{line-height:var(--line-height-tight)} .leading-normal{line-height:var(--line-height-normal)} .leading-relaxed{line-height:var(--line-height-relaxed)} .underline{text-decoration:underline} .no-underline{text-decoration:none} .uppercase{text-transform:uppercase} .lowercase{text-transform:lowercase} .capitalize{text-transform:capitalize} .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} ::selection{background-color:var(--primary-blue);color:var(--white)} ::-moz-selection{background-color:var(--primary-blue);color:var(--white)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-decoration:none;text-align:center;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden;min-width:120px;white-space:nowrap} .btn:disabled{opacity:0.6;cursor:not-allowed;pointer-events:none} .btn:focus{outline:none} .btn:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px} .btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-width:80px} .btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg);min-width:160px} .btn-xl{padding:var(--space-5) var(--space-10);font-size:var(--font-size-xl);min-width:200px} .btn-primary{background:var(--primary-blue);color:var(--white);box-shadow:var(--shadow-md)} .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-md)} .btn-secondary{background:var(--gray-100);color:var(--gray-800);border:2px solid var(--gray-300);box-shadow:var(--shadow-sm)} .btn-secondary:hover:not(:disabled){background:var(--gray-200);border-color:var(--gray-400);color:var(--gray-900);transform:translateY(-2px);box-shadow:var(--shadow-md)} .btn-outline{background:transparent;color:var(--primary-blue);border:2px solid var(--primary-blue)} .btn-outline:hover:not(:disabled){background:var(--primary-blue);color:var(--white);transform:translateY(-2px)} .btn-ghost{background:transparent;color:var(--gray-600);border:2px solid transparent} .btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--gray-800)} .btn-success{background:var(--success-green);color:var(--white);box-shadow:var(--shadow-md)} .btn-success:hover:not(:disabled){background:#059669;transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-warning{background:var(--warning-orange);color:var(--white);box-shadow:var(--shadow-md)} .btn-warning:hover:not(:disabled){background:#d97706;transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-error{background:var(--error-red);color:var(--white);box-shadow:var(--shadow-md)} .btn-error:hover:not(:disabled){background:#dc2626;transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-danger{background:var(--error-red);color:var(--white);box-shadow:var(--shadow-md);border:2px solid var(--error-red)} .btn-danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626;transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-danger:active:not(:disabled){background:#b91c1c;border-color:#b91c1c;transform:translateY(0)} .btn-info{background:var(--info-blue);color:var(--white);border:2px solid var(--info-blue);box-shadow:var(--shadow-md)} .btn-info:hover:not(:disabled){background:#2563eb;border-color:#2563eb;transform:translateY(-2px);box-shadow:var(--shadow-lg)} .btn-loading{position:relative;color:transparent} .btn-loading::after{content:'';position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite} @keyframes spin{0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} } .btn-group{display:inline-flex;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)} .btn-group .btn{border-radius:0;border-right:1px solid rgba(255,255,255,0.2);min-width:auto} .btn-group .btn:first-child{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)} .btn-group .btn:last-child{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-right:none} .btn-full{width:100%;min-width:auto} .btn-icon{padding:var(--space-2);min-width:auto;width:40px;height:40px;border-radius:var(--radius-md)} .btn-icon.btn-sm{width:32px;height:32px;padding:var(--space-1)} .btn-icon.btn-lg{width:48px;height:48px;padding:var(--space-3)} .btn-fab{position:fixed;bottom:var(--space-6);right:var(--space-6);width:56px;height:56px;border-radius:var(--radius-full);box-shadow:var(--shadow-xl);z-index:var(--z-fixed)} .btn-fab:hover{transform:scale(1.1);box-shadow:var(--shadow-2xl)}
.form-group{margin-bottom:var(--space-6)} .form-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-700);margin-bottom:var(--space-2)} .form-label.required::after{content:' *';color:var(--error-red)} .form-input,.form-textarea,.form-select{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);background-color:var(--white);color:var(--gray-800);transition:all var(--transition-fast)} .form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.1)} .form-input:invalid,.form-textarea:invalid,.form-select:invalid{border-color:var(--error-red)} .form-input:valid,.form-textarea:valid,.form-select:valid{border-color:var(--success-green)} .form-textarea{resize:vertical;min-height:120px} .form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--space-10);appearance:none} .form-input-sm,.form-textarea-sm,.form-select-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)} .form-input-lg,.form-textarea-lg,.form-select-lg{padding:var(--space-4) var(--space-5);font-size:var(--font-size-lg)} .form-input:disabled,.form-textarea:disabled,.form-select:disabled{background-color:var(--gray-100);color:var(--gray-500);cursor:not-allowed} .form-input::placeholder,.form-textarea::placeholder{color:var(--gray-400)} .form-checkbox,.form-radio{display:flex;align-items:center;gap:var(--space-2);cursor:pointer} .form-checkbox input[type="checkbox"],.form-radio input[type="radio"]{width:18px;height:18px;margin:0;cursor:pointer} .form-checkbox input[type="checkbox"]{border-radius:var(--radius-sm)} .form-radio input[type="radio"]{border-radius:var(--radius-full)} .checkbox-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--gray-700)} .checkbox-label input[type="checkbox"]{position:absolute;opacity:0;cursor:pointer} .checkmark{width:20px;height:20px;background-color:var(--white);border:2px solid var(--gray-300);border-radius:var(--radius-sm);position:relative;transition:all var(--transition-fast)} .checkbox-label input[type="checkbox"]:checked + .checkmark{background-color:var(--primary-blue);border-color:var(--primary-blue)} .checkbox-label input[type="checkbox"]:checked + .checkmark::after{content:'';position:absolute;left:6px;top:2px;width:6px;height:10px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg)} .checkbox-label:hover .checkmark{border-color:var(--primary-blue)} .form-help{font-size:var(--font-size-sm);color:var(--gray-500);margin-top:var(--space-1)} .form-error{font-size:var(--font-size-sm);color:var(--error-red);margin-top:var(--space-1)} .form-success{font-size:var(--font-size-sm);color:var(--success-green);margin-top:var(--space-1)} .form-group.error .form-input,.form-group.error .form-textarea,.form-group.error .form-select{border-color:var(--error-red)} .form-group.error .form-input:focus,.form-group.error .form-textarea:focus,.form-group.error .form-select:focus{box-shadow:0 0 0 3px rgba(239,68,68,0.1)} .form-group.success .form-input,.form-group.success .form-textarea,.form-group.success .form-select{border-color:var(--success-green)} .form-group.success .form-input:focus,.form-group.success .form-textarea:focus,.form-group.success .form-select:focus{box-shadow:0 0 0 3px rgba(16,185,129,0.1)} .form-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-6)} .form-row .form-group{flex:1;margin-bottom:0} .form-inline{display:flex;align-items:end;gap:var(--space-4)} .form-inline .form-group{margin-bottom:0} .form-search{position:relative} .form-search .form-input{padding-left:var(--space-10)} .form-search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none} .form-file{position:relative;display:inline-block;cursor:pointer} .form-file input[type="file"]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer} .form-file-label{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:var(--gray-100);border:2px dashed var(--gray-300);border-radius:var(--radius-md);color:var(--gray-600);transition:all var(--transition-fast)} .form-file:hover .form-file-label{background-color:var(--gray-200);border-color:var(--gray-400)} .form-actions{display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--gray-200)} .form-actions .btn{min-width:120px} @media (max-width:768px){.form-row{flex-direction:column;gap:var(--space-4)} .form-inline{flex-direction:column;align-items:stretch} .form-actions{flex-direction:column} .form-actions .btn{width:100%} }
.header{background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow-sm);position:fixed;top:0;left:0;right:0;width:100%;z-index:var(--z-fixed);transition:all var(--transition-normal)} .navbar{padding:var(--space-4) 0;display:flex;align-items:center;justify-content:space-between} .nav-container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);display:flex;justify-content:space-between;align-items:center;position:relative;min-height:var(--header-height)} .logo-link{display:flex;align-items:center;text-decoration:none;color:var(--white);transition:color var(--transition-normal)} .logo-link:hover{color:var(--light-blue)} .logo-text{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--primary-blue);letter-spacing:-0.5px;background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .nav-menu{display:flex;list-style:none;gap:var(--space-6);align-items:center;margin:0;padding:0} .nav-link{color:var(--gray-700);text-decoration:none;font-weight:var(--font-weight-medium);transition:all var(--transition-normal);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:flex-start;line-height:var(--line-height-tight);position:relative} .nav-link:hover{color:var(--primary-blue);background-color:var(--gray-100);transform:translateY(-1px)} .nav-link.active{color:var(--primary-blue);background-color:var(--light-blue)} .nav-item.dropdown{position:relative} .dropdown-toggle{cursor:pointer} .dropdown-arrow{font-size:0.7rem;margin-left:0.25rem;transition:transform var(--transition-normal);display:inline-block} .dropdown.active .dropdown-arrow{transform:rotate(180deg)} .dropdown-menu{position:absolute;top:100%;left:0;margin-top:var(--space-2);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);min-width:220px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-normal);z-index:var(--z-dropdown);padding:var(--space-2) 0;list-style:none} .dropdown.active .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)} .dropdown-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--gray-700);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);border-left:3px solid transparent} .dropdown-item:hover{background-color:var(--gray-50);color:var(--primary-blue);border-left-color:var(--primary-blue);padding-left:calc(var(--space-4) - 3px)} .dropdown-icon{font-size:var(--font-size-lg);width:20px;text-align:center;flex-shrink:0} .hamburger{display:none;flex-direction:column;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)} .hamburger:hover{background-color:var(--gray-100)} .hamburger .bar{width:25px;height:3px;background-color:var(--gray-700);margin:3px 0;transition:var(--transition-normal);border-radius:var(--radius-sm)} .hamburger.active .bar:nth-child(1){transform:rotate(-45deg) translate(-5px,6px)} .hamburger.active .bar:nth-child(2){opacity:0} .hamburger.active .bar:nth-child(3){transform:rotate(45deg) translate(-5px,-6px)} @media (max-width:768px){.hamburger{display:flex} .nav-menu{position:fixed;top:var(--header-height);left:-100%;width:100%;height:calc(100vh - var(--header-height));background:rgba(255,255,255,0.98);backdrop-filter:blur(10px);flex-direction:column;justify-content:flex-start;align-items:center;padding:var(--space-8) 0;transition:left var(--transition-normal);box-shadow:var(--shadow-lg)} .nav-menu.active{left:0} .nav-link{padding:var(--space-4) var(--space-6);font-size:var(--font-size-lg);width:100%;text-align:center;border-radius:var(--radius-lg);margin-bottom:var(--space-2)} .nav-link:hover{background-color:var(--gray-100);transform:none} .dropdown{width:100%} .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:transparent;margin-top:0;padding:var(--space-2) 0 var(--space-2) var(--space-6);display:none} .dropdown.active .dropdown-menu{display:block} .dropdown-item{padding:var(--space-2) var(--space-4);font-size:var(--font-size-base);border-left:none;border-bottom:1px solid var(--gray-200)} .dropdown-item:hover{padding-left:var(--space-4);border-left:none;border-bottom-color:var(--gray-300)} .dropdown-arrow{float:right;margin-top:0.25rem} } .header.scrolled{background:rgba(255,255,255,0.98);box-shadow:var(--shadow-md)} .header.dark{background:rgba(15,23,42,0.95);border-bottom-color:var(--gray-700)} .header.dark .nav-link{color:var(--gray-300)} .header.dark .nav-link:hover{color:var(--white);background-color:var(--gray-700)} .header.dark .hamburger .bar{background-color:var(--gray-300)} .header.transparent{background:transparent;border-bottom:none;box-shadow:none} .header.transparent .nav-link{color:var(--white)} .header.transparent .nav-link:hover{color:var(--light-blue);background-color:rgba(255,255,255,0.1)} .header.transparent .hamburger .bar{background-color:var(--white)} .header.compact .navbar{padding:var(--space-2) 0} .header.compact .nav-container{min-height:60px} .header.compact .logo-text{font-size:var(--font-size-xl)} .header-search{display:flex;align-items:center;gap:var(--space-4);flex:1;max-width:400px;margin:0 var(--space-8)} .header-search .form-input{background-color:var(--gray-100);border:1px solid var(--gray-200);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)} .header-search .form-input:focus{background-color:var(--white);border-color:var(--primary-blue)} .header-actions{display:flex;align-items:center;gap:var(--space-3)} .header-actions .btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-width:auto} .header-notifications{position:relative} .notification-badge{position:absolute;top:-8px;right:-8px;background:var(--error-red);color:var(--white);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;height:18px;display:flex;align-items:center;justify-content:center} .header-user{position:relative} .user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--primary-blue);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)} .user-avatar:hover{transform:scale(1.05);box-shadow:var(--shadow-md)} .user-menu{position:absolute;top:100%;right:0;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:200px;padding:var(--space-2);margin-top:var(--space-2);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-fast);z-index:var(--z-dropdown)} .user-menu.active{opacity:1;visibility:visible;transform:translateY(0)} .user-menu-item{display:block;padding:var(--space-3) var(--space-4);color:var(--gray-700);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast)} .user-menu-item:hover{background-color:var(--gray-100);color:var(--gray-900)} .user-menu-divider{height:1px;background-color:var(--gray-200);margin:var(--space-2) 0} @media (prefers-color-scheme:dark){.header{background:rgba(15,23,42,0.95);border-bottom-color:var(--gray-700)} .header.scrolled{background:rgba(15,23,42,0.98);box-shadow:0 4px 6px rgba(0,0,0,0.3)} .nav-link{color:var(--gray-300)} .nav-link:hover{color:var(--white);background-color:var(--gray-800)} .nav-link.active{color:var(--white);background-color:var(--gray-800)} .hamburger .bar{background-color:var(--gray-300)} .hamburger:hover{background-color:var(--gray-800)} @media (max-width:768px){.nav-menu{background:rgba(15,23,42,0.98)} .nav-link{color:var(--gray-300)} .nav-link:hover{background-color:var(--gray-800);color:var(--white)} .dropdown-menu{background:var(--gray-800);border-color:var(--gray-700)} .dropdown-item{color:var(--gray-300)} .dropdown-item:hover{background-color:var(--gray-700);color:var(--white);border-left-color:var(--primary-blue)} } .header-search .form-input{background-color:var(--gray-800);border-color:var(--gray-700);color:var(--gray-100)} .header-search .form-input::placeholder{color:var(--gray-500)} .header-search .form-input:focus{background-color:var(--gray-700);border-color:var(--primary-blue)} .user-menu{background:var(--gray-800);border-color:var(--gray-700)} .user-menu-item{color:var(--gray-300)} .user-menu-item:hover{background-color:var(--gray-700);color:var(--white)} .user-menu-divider{background-color:var(--gray-700)} .notification-badge{background:var(--error-red)} } .language-selector{position:relative} .language-selector .nav-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)} .lang-flag{font-size:var(--font-size-lg);line-height:1} .lang-code{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700);min-width:30px;text-align:center} .language-menu{min-width:160px;right:0;left:auto} .language-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4)} .lang-name{flex:1;font-weight:var(--font-weight-medium)} .lang-code-small{font-size:var(--font-size-xs);color:var(--gray-500);font-weight:var(--font-weight-semibold);margin-left:var(--space-2)} .language-item:hover .lang-code-small{color:var(--primary-blue)} @media (prefers-color-scheme:dark){.lang-code{color:var(--gray-300)} .language-menu{background:var(--gray-800);border-color:var(--gray-700)} .language-item{color:var(--gray-300)} .language-item:hover{background-color:var(--gray-700);color:var(--white)} .lang-code-small{color:var(--gray-500)} .language-item:hover .lang-code-small{color:var(--primary-blue)} } @media (max-width:768px){.language-selector{width:100%} .language-selector .nav-link{width:100%;justify-content:space-between;padding:var(--space-4) var(--space-6)} .language-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:transparent;margin-top:0;padding:var(--space-2) 0 var(--space-2) var(--space-6);display:none} .language-selector.active .language-menu{display:block} .language-item{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--gray-200)} }
.footer{background:var(--gray-900);color:var(--gray-300);padding:var(--space-16) 0 var(--space-8);margin-top:auto} .footer-container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)} .footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-8);margin-bottom:var(--space-12)} .footer-section h3{color:var(--white);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)} .footer-section h4{color:var(--white);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)} .footer-section p{color:var(--gray-400);line-height:var(--line-height-relaxed);margin-bottom:var(--space-4)} .footer-section ul{list-style:none;padding:0;margin:0} .footer-section ul li{margin-bottom:var(--space-2)} .footer-section ul li a{color:var(--gray-400);text-decoration:none;transition:color var(--transition-fast);display:flex;align-items:center;gap:var(--space-2)} .footer-section ul li a:hover{color:var(--white)} .footer-section ul li a::before{content:'→';opacity:0;transition:opacity var(--transition-fast)} .footer-section ul li a:hover::before{opacity:1} .security-badge{margin-top:var(--space-4)} .security-badge img{max-width:100%;height:auto;border-radius:var(--radius-md);transition:transform var(--transition-fast)} .security-badge img:hover{transform:scale(1.05)} .footer-bottom{border-top:1px solid var(--gray-700);padding-top:var(--space-6);text-align:center} .footer-bottom p{color:var(--gray-500);font-size:var(--font-size-sm);margin:0} .footer-link{color:var(--gray-400);text-decoration:none;transition:color var(--transition-fast)} .footer-link:hover{color:var(--white)} .footer-social{display:flex;gap:var(--space-4);margin-top:var(--space-4)} .footer-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:var(--gray-800);color:var(--gray-400);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)} .footer-social a:hover{background-color:var(--primary-blue);color:var(--white);transform:translateY(-2px)} .footer-newsletter{background:var(--gray-800);padding:var(--space-6);border-radius:var(--radius-lg);margin-top:var(--space-4)} .footer-newsletter h4{color:var(--white);margin-bottom:var(--space-3)} .footer-newsletter p{color:var(--gray-400);font-size:var(--font-size-sm);margin-bottom:var(--space-4)} .footer-newsletter-form{display:flex;gap:var(--space-2)} .footer-newsletter-form .form-input{flex:1;background-color:var(--gray-700);border:1px solid var(--gray-600);color:var(--white);padding:var(--space-3);font-size:var(--font-size-sm)} .footer-newsletter-form .form-input::placeholder{color:var(--gray-400)} .footer-newsletter-form .form-input:focus{border-color:var(--primary-blue);background-color:var(--gray-600)} .footer-newsletter-form .btn{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);min-width:auto} .footer-contact{display:flex;flex-direction:column;gap:var(--space-3)} .footer-contact-item{display:flex;align-items:center;gap:var(--space-3);color:var(--gray-400);font-size:var(--font-size-sm)} .footer-contact-item .icon{width:20px;height:20px;color:var(--primary-blue);flex-shrink:0} .footer-back-to-top{position:fixed;bottom:var(--space-6);right:var(--space-6);width:50px;height:50px;background:var(--primary-blue);color:var(--white);border:none;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-lg);z-index:var(--z-fixed);opacity:0;visibility:hidden;transform:translateY(20px)} .footer-back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)} .footer-back-to-top:hover{background:var(--dark-blue);transform:translateY(-2px);box-shadow:var(--shadow-xl)} @media (max-width:768px){.footer{padding:var(--space-12) 0 var(--space-6)} .footer-content{grid-template-columns:1fr;gap:var(--space-6);margin-bottom:var(--space-8)} .footer-newsletter-form{flex-direction:column} .footer-social{justify-content:center} .footer-back-to-top{bottom:var(--space-4);right:var(--space-4);width:45px;height:45px} } @media (max-width:480px){.footer-container{padding:0 var(--space-4)} .footer-section h3,.footer-section h4{font-size:var(--font-size-base)} .footer-social a{width:35px;height:35px} } @media (prefers-color-scheme:dark){.footer{background:var(--gray-950);border-top:1px solid var(--gray-800)} .footer-section h3,.footer-section h4{color:var(--gray-100)} .footer-section p{color:var(--gray-400)} .footer-section ul li a{color:var(--gray-400)} .footer-section ul li a:hover{color:var(--white)} .footer-bottom{border-top-color:var(--gray-800)} .footer-bottom p{color:var(--gray-500)} .footer-link{color:var(--gray-400)} .footer-link:hover{color:var(--white)} .footer-social a{background-color:var(--gray-800);color:var(--gray-300)} .footer-social a:hover{background-color:var(--primary-blue);color:var(--white)} .footer-newsletter{background:var(--gray-800)} .footer-newsletter h4{color:var(--gray-100)} .footer-newsletter p{color:var(--gray-400)} .footer-newsletter-form .form-input{background-color:var(--gray-900);border-color:var(--gray-700);color:var(--gray-100)} .footer-newsletter-form .form-input::placeholder{color:var(--gray-500)} .footer-newsletter-form .form-input:focus{border-color:var(--primary-blue);background-color:var(--gray-800)} .footer-contact-item{color:var(--gray-400)} .footer-contact-item .icon{color:var(--primary-blue)} .footer-back-to-top{background:var(--primary-blue)} .footer-back-to-top:hover{background:var(--dark-blue)} }
.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);opacity:0;visibility:hidden;transition:all var(--transition-normal)} .modal.active{opacity:1;visibility:visible} .modal-content{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-width:90vw;max-height:90vh;overflow:hidden;transform:scale(0.9) translateY(20px);transition:all var(--transition-normal);position:relative} .modal.active .modal-content{transform:scale(1) translateY(0)} .modal-sm .modal-content{width:400px} .modal-md .modal-content{width:600px} .modal-lg .modal-content{width:800px} .modal-xl .modal-content{width:1000px} .modal-full .modal-content{width:95vw;height:95vh;max-width:none;max-height:none} .modal-header{padding:var(--space-6);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;background:var(--gray-50)} .modal-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--gray-800)} .modal-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--gray-400);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:32px;height:32px} .modal-close:hover{background:var(--gray-200);color:var(--gray-600)} .modal-body{padding:var(--space-6);overflow-y:auto;max-height:60vh} .modal-body p{margin-bottom:var(--space-4);color:var(--gray-600);line-height:var(--line-height-relaxed)} .modal-footer{padding:var(--space-6);border-top:1px solid var(--gray-200);display:flex;gap:var(--space-3);justify-content:flex-end;background:var(--gray-50)} .modal-footer .btn{min-width:100px} .modal-confirm .modal-content{width:400px} .modal-confirm .modal-header{background:var(--warning-orange);color:var(--white);border-bottom:none} .modal-confirm .modal-header h2{color:var(--white)} .modal-confirm .modal-close{color:var(--white)} .modal-confirm .modal-close:hover{background:rgba(255,255,255,0.2);color:var(--white)} .modal-error .modal-header{background:var(--error-red);color:var(--white);border-bottom:none} .modal-error .modal-header h2{color:var(--white)} .modal-error .modal-close{color:var(--white)} .modal-error .modal-close:hover{background:rgba(255,255,255,0.2);color:var(--white)} .modal-success .modal-header{background:var(--success-green);color:var(--white);border-bottom:none} .modal-success .modal-header h2{color:var(--white)} .modal-success .modal-close{color:var(--white)} .modal-success .modal-close:hover{background:rgba(255,255,255,0.2);color:var(--white)} .modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center} .modal-loading .spinner{width:40px;height:40px;border:4px solid var(--gray-200);border-top:4px solid var(--primary-blue);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-4)} .modal-loading p{color:var(--gray-600);margin:0} .modal-form .modal-body{padding:var(--space-6)} .modal-form .form-group{margin-bottom:var(--space-4)} .modal-form .form-actions{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--gray-200)} .modal-image .modal-content{background:transparent;box-shadow:none;max-width:90vw;max-height:90vh} .modal-image .modal-body{padding:0;display:flex;align-items:center;justify-content:center} .modal-image img{max-width:100%;max-height:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)} .modal-video .modal-content{background:var(--black);max-width:90vw;max-height:90vh} .modal-video .modal-body{padding:0;position:relative;padding-bottom:56.25%;height:0;overflow:hidden} .modal-video iframe,.modal-video video{position:absolute;top:0;left:0;width:100%;height:100%;border:none} .modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:var(--z-modal-backdrop)} .modal-fade-in{animation:modalFadeIn var(--transition-normal) ease-out} .modal-fade-out{animation:modalFadeOut var(--transition-normal) ease-in} .modal-slide-in{animation:modalSlideIn var(--transition-normal) ease-out} .modal-slide-out{animation:modalSlideOut var(--transition-normal) ease-in} @keyframes modalFadeIn{from{opacity:0} to{opacity:1} } @keyframes modalFadeOut{from{opacity:1} to{opacity:0} } @keyframes modalSlideIn{from{transform:translateY(-50px);opacity:0} to{transform:translateY(0);opacity:1} } @keyframes modalSlideOut{from{transform:translateY(0);opacity:1} to{transform:translateY(-50px);opacity:0} } @media (max-width:768px){.modal-content{margin:var(--space-4);max-width:calc(100vw - var(--space-8));max-height:calc(100vh - var(--space-8))} .modal-sm .modal-content,.modal-md .modal-content,.modal-lg .modal-content,.modal-xl .modal-content{width:auto} .modal-header,.modal-body,.modal-footer{padding:var(--space-4)} .modal-footer{flex-direction:column} .modal-footer .btn{width:100%} } @media (max-width:480px){.modal-content{margin:var(--space-2);max-width:calc(100vw - var(--space-4));max-height:calc(100vh - var(--space-4));border-radius:var(--radius-lg)} .modal-header,.modal-body,.modal-footer{padding:var(--space-3)} }
.card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--gray-200);overflow:hidden;transition:all var(--transition-normal);position:relative} .card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)} .card-header{padding:var(--space-6);border-bottom:1px solid var(--gray-200);background:var(--gray-50);display:flex;align-items:center;justify-content:space-between} .card-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800)} .card-header .card-icon{font-size:var(--font-size-xl);color:var(--primary-blue)} .card-body{padding:var(--space-6)} .card-body p{margin-bottom:var(--space-4);color:var(--gray-600);line-height:var(--line-height-relaxed)} .card-body p:last-child{margin-bottom:0} .card-footer{padding:var(--space-6);border-top:1px solid var(--gray-200);background:var(--gray-50);display:flex;gap:var(--space-3);justify-content:flex-end} .card-footer .btn{min-width:100px} .card-primary{border-left:4px solid var(--primary-blue)} .card-primary .card-header{background:var(--primary-blue);color:var(--white);border-bottom:none} .card-primary .card-header h3{color:var(--white)} .card-primary .card-header .card-icon{color:var(--white)} .card-success{border-left:4px solid var(--success-green)} .card-success .card-header{background:var(--success-green);color:var(--white);border-bottom:none} .card-success .card-header h3{color:var(--white)} .card-success .card-header .card-icon{color:var(--white)} .card-warning{border-left:4px solid var(--warning-orange)} .card-warning .card-header{background:var(--warning-orange);color:var(--white);border-bottom:none} .card-warning .card-header h3{color:var(--white)} .card-warning .card-header .card-icon{color:var(--white)} .card-error{border-left:4px solid var(--error-red)} .card-error .card-header{background:var(--error-red);color:var(--white);border-bottom:none} .card-error .card-header h3{color:var(--white)} .card-error .card-header .card-icon{color:var(--white)} .card-sm{max-width:300px} .card-sm .card-header,.card-sm .card-body,.card-sm .card-footer{padding:var(--space-4)} .card-md{max-width:400px} .card-lg{max-width:600px} .card-xl{max-width:800px} .card-image{position:relative;overflow:hidden} .card-image img{width:100%;height:200px;object-fit:cover;transition:transform var(--transition-normal)} .card:hover .card-image img{transform:scale(1.05)} .card-image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(37,99,235,0.8),rgba(139,92,246,0.8));display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-normal)} .card:hover .card-image-overlay{opacity:1} .card-image-overlay .btn{background:var(--white);color:var(--primary-blue)} .card-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-4);padding:var(--space-6);background:var(--gray-50);border-top:1px solid var(--gray-200)} .card-stat{text-align:center} .card-stat-number{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--primary-blue);display:block} .card-stat-label{font-size:var(--font-size-sm);color:var(--gray-600);margin-top:var(--space-1)} .card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)} .card-actions .btn{flex:1;min-width:auto;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)} .card-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--gray-500)} .card-loading .spinner{width:24px;height:24px;border:2px solid var(--gray-200);border-top:2px solid var(--primary-blue);border-radius:50%;animation:spin 1s linear infinite;margin-right:var(--space-3)} .card-empty{text-align:center;padding:var(--space-8);color:var(--gray-500)} .card-empty .icon{font-size:var(--font-size-4xl);margin-bottom:var(--space-4);opacity:0.5} .card-empty h3{margin-bottom:var(--space-2);color:var(--gray-600)} .card-empty p{margin-bottom:var(--space-4);color:var(--gray-500)} .card-grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))} .card-grid-2{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))} .card-grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))} .card-grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))} .card-list{display:flex;flex-direction:column;gap:var(--space-4)} .card-list .card{display:flex;flex-direction:row;align-items:center} .card-list .card-image{width:120px;height:120px;flex-shrink:0} .card-list .card-image img{height:100%;object-fit:cover} .card-list .card-body{flex:1;padding:var(--space-4)} .card-list .card-actions{margin-top:0;margin-left:var(--space-4)} .card-interactive{cursor:pointer;transition:all var(--transition-normal)} .card-interactive:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)} .card-interactive:active{transform:translateY(-2px)} .card-compact .card-header,.card-compact .card-body,.card-compact .card-footer{padding:var(--space-4)} .card-compact .card-header h3{font-size:var(--font-size-base)} .card-bordered{border:2px solid var(--gray-200);box-shadow:none} .card-bordered:hover{border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.1)} .card-shadowless{box-shadow:none;border:1px solid var(--gray-200)} .card-shadowless:hover{box-shadow:var(--shadow-sm)} @media (max-width:768px){.card-grid{grid-template-columns:1fr;gap:var(--space-4)} .card-list .card{flex-direction:column;text-align:center} .card-list .card-image{width:100%;height:200px} .card-list .card-actions{margin-left:0;margin-top:var(--space-4)} .card-header,.card-body,.card-footer{padding:var(--space-4)} .card-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-3);padding:var(--space-4)} } @media (max-width:480px){.card-header,.card-body,.card-footer{padding:var(--space-3)} .card-stats{grid-template-columns:1fr} .card-actions{flex-direction:column} .card-actions .btn{width:100%} }
.hero{background:linear-gradient(135deg,var(--primary-blue) 0%,var(--accent-purple) 50%,var(--accent-pink) 100%);color:var(--white);padding:var(--space-32) 0 var(--space-24);text-align:center;position:relative;overflow:hidden} .hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="white" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:0.3} .hero .container{position:relative;z-index:1} .hero-title{font-size:var(--font-size-5xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-4);color:var(--white);background:linear-gradient(135deg,#ffffff 0%,#f1f5f9 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--line-height-tight)} .hero-benefit{font-size:1.5rem;font-weight:600;color:#fbbf24;margin-bottom:1rem;text-align:center;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .hero-description{font-size:var(--font-size-xl);margin-bottom:var(--space-8);opacity:0.9;max-width:600px;margin-left:auto;margin-right:auto;color:var(--white);line-height:var(--line-height-relaxed)} .hero-buttons{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-8)} .hero-buttons .btn{min-width:200px;padding:var(--space-4) var(--space-6);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)} .btn-outline{background:transparent;color:#2563eb;border:2px solid #2563eb} .btn-outline:hover{background:#2563eb;color:white;transform:translateY(-1px)} .section{padding:var(--space-20) 0;background:var(--white)} .features-section{padding:var(--space-20) 0;background:var(--white)} .section-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-4);color:var(--gray-800);background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .section-description{font-size:var(--font-size-xl);text-align:center;color:var(--gray-600);margin-bottom:var(--space-12);max-width:600px;margin-left:auto;margin-right:auto;line-height:var(--line-height-relaxed)} .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-8);margin-top:var(--space-12)} .feature-card{background:var(--white);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--gray-200);text-align:center;transition:all var(--transition-normal);position:relative;overflow:hidden} .feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple))} .feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)} .feature-icon{font-size:var(--font-size-5xl);margin-bottom:var(--space-4);display:block;color:var(--primary-blue)} .feature-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-4)} .feature-description{color:var(--gray-600);line-height:var(--line-height-relaxed)} .features-cta{text-align:center;padding:var(--space-20) 0;background:linear-gradient(135deg,var(--primary-blue) 0%,var(--accent-purple) 50%,var(--accent-pink) 100%);color:var(--white);position:relative;overflow:hidden} .features-cta::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="white" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:0.3} .features-cta .container{position:relative;z-index:1} .features-cta h3{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-4);color:var(--white)} .features-cta p{font-size:var(--font-size-xl);color:var(--white);margin-bottom:var(--space-8);opacity:0.9;max-width:600px;margin-left:auto;margin-right:auto} .cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap} .cta-buttons .btn{min-width:200px} .security-partners{margin-top:1rem} .security-partners h4{font-size:0.875rem;font-weight:600;color:#6b7280;margin-bottom:0.5rem} .partner-logos{display:flex;gap:1rem;flex-wrap:wrap} .partner-logo{transition:opacity 0.2s} .partner-logo:hover{opacity:0.8} @media (max-width:768px){.hero{padding:var(--space-20) 0 var(--space-16)} .hero-title{font-size:var(--font-size-4xl)} .hero-benefit{font-size:1.25rem} .hero-description{font-size:var(--font-size-lg)} .hero-buttons{flex-direction:column;align-items:center} .hero-buttons .btn{width:100%;max-width:300px} .features-section{padding:var(--space-16) 0} .features-grid{grid-template-columns:1fr;gap:var(--space-6)} .features-cta{padding:var(--space-16) 0} .features-cta h3{font-size:var(--font-size-3xl)} .features-cta p{font-size:var(--font-size-lg)} .cta-buttons{flex-direction:column;align-items:center} .cta-buttons .btn{width:100%;max-width:300px} } @media (max-width:480px){.hero-title{font-size:var(--font-size-3xl)} .hero-benefit{font-size:1.125rem} .hero-description{font-size:var(--font-size-base)} .feature-card{padding:var(--space-6)} .features-cta{padding:var(--space-4)} .features-cta h3{font-size:var(--font-size-lg)} } @media (prefers-color-scheme:dark){.section{background:var(--gray-900)} .features-section{background:var(--gray-900)} .section-title{color:var(--gray-100);background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .section-description{color:var(--gray-400)} .feature-card{background:var(--gray-800);border-color:var(--gray-700)} .feature-title{color:var(--gray-100)} .feature-description{color:var(--gray-300)} .features-cta{background:linear-gradient(135deg,var(--primary-blue) 0%,var(--accent-purple) 50%,var(--accent-pink) 100%)} .features-cta h3{color:var(--white)} .features-cta p{color:var(--white)} }
.dashboard-body{background:var(--gray-50);font-family:var(--font-family);margin:0;padding:0;min-height:100vh} .dashboard-container{display:flex;min-height:100vh;position:relative} .dashboard-sidebar{width:var(--sidebar-width);background:var(--white);border-right:1px solid var(--gray-200);box-shadow:var(--shadow-sm);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:var(--z-fixed);transition:transform var(--transition-normal);display:flex;flex-direction:column} .dashboard-sidebar::-webkit-scrollbar{width:4px} .dashboard-sidebar::-webkit-scrollbar-track{background:var(--gray-100)} .dashboard-sidebar::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)} .sidebar-header{padding:var(--space-6);border-bottom:1px solid var(--gray-200);background:var(--gray-50)} .sidebar-logo{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)} .sidebar-logo h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--primary-blue);margin:0} .beta-badge{background:var(--warning-orange);color:var(--white);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)} .sidebar-header p{color:var(--gray-600);font-size:var(--font-size-sm);margin:0} .sidebar-toggle{display:none;background:none;border:none;color:var(--gray-600);font-size:var(--font-size-lg);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast)} .sidebar-toggle:hover{background:var(--gray-200);color:var(--gray-800)} .mobile-menu-toggle{display:none;position:fixed;top:var(--space-4);left:var(--space-4);z-index:calc(var(--z-fixed) + 1);background:var(--white);border:1px solid var(--gray-200);color:var(--gray-700);font-size:var(--font-size-xl);cursor:pointer;padding:var(--space-3);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:all var(--transition-fast);width:48px;height:48px;align-items:center;justify-content:center} .mobile-menu-toggle:hover{background:var(--gray-50);color:var(--gray-900);box-shadow:var(--shadow-lg)} .mobile-menu-toggle:active{transform:scale(0.95)} .mobile-menu-toggle .toggle-icon{font-size:24px;line-height:1} .sidebar-nav{flex:1;padding:var(--space-4) 0} .sidebar-nav ul{list-style:none;margin:0;padding:0} .sidebar-nav li{margin:0} .sidebar-nav .nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);color:var(--gray-600);text-decoration:none;font-weight:var(--font-weight-medium);transition:all var(--transition-fast);border-left:3px solid transparent} .sidebar-nav .nav-link:hover{background:var(--gray-100);color:var(--gray-800);border-left-color:var(--gray-300)} .sidebar-nav .nav-link.active{background:var(--light-blue);color:var(--primary-blue);border-left-color:var(--primary-blue)} .sidebar-nav .nav-link .icon{font-size:var(--font-size-lg);width:20px;text-align:center} .sidebar-nav .nav-link .nav-warning-icon{margin-left:auto;font-size:1.15rem;color:#c9a227;width:auto} .sidebar-nav .nav-link .nav-warning-icon[hidden]{display:none !important} .sidebar-language-selector{padding:var(--space-4) var(--space-6);border-top:1px solid var(--gray-200);background:var(--white)} .language-selector-dropdown{position:relative} .language-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--gray-700);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);border:1px solid var(--gray-200);background:var(--gray-50);width:100%;justify-content:space-between} .language-toggle:hover{background:var(--gray-100);color:var(--gray-800);border-color:var(--gray-300)} .language-toggle .lang-flag{font-size:var(--font-size-lg);line-height:1} .language-toggle .lang-code{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700);flex:1;text-align:left} .language-toggle .dropdown-arrow{font-size:0.7rem;transition:transform var(--transition-normal);display:inline-block;color:var(--gray-500)} .language-selector-dropdown.active .dropdown-arrow{transform:rotate(180deg)} .sidebar-language-selector .language-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:var(--space-2);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);opacity:0;visibility:hidden;transform:translateY(10px);transition:all var(--transition-normal);z-index:var(--z-dropdown);padding:var(--space-2) 0;list-style:none} .language-selector-dropdown.active .language-menu{opacity:1;visibility:visible;transform:translateY(0)} .sidebar-language-selector .language-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);color:var(--gray-700);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);border-left:3px solid transparent} .sidebar-language-selector .language-item:hover{background-color:var(--gray-50);color:var(--primary-blue);border-left-color:var(--primary-blue);padding-left:calc(var(--space-4) - 3px)} .sidebar-language-selector .lang-name{flex:1;font-weight:var(--font-weight-medium)} .sidebar-language-selector .lang-code-small{font-size:var(--font-size-xs);color:var(--gray-500);font-weight:var(--font-weight-semibold);margin-left:var(--space-2)} .sidebar-language-selector .language-item:hover .lang-code-small{color:var(--primary-blue)} .sidebar-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--gray-200);background:var(--white);display:flex;flex-direction:column;gap:var(--space-3);margin-top:auto} .sidebar-footer .btn{width:100%;justify-content:center;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm)} .sidebar-footer .btn-danger{background:var(--error-red);color:var(--white);border:2px solid var(--error-red);box-shadow:var(--shadow-md)} .sidebar-footer .btn-danger:hover{background:#dc2626;border-color:#dc2626;box-shadow:var(--shadow-lg)} .dashboard-main{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column} .dashboard-content{flex:1;padding:var(--space-6);max-width:100%;overflow-x:auto} .page-header{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);margin-bottom:var(--space-6)} .page-header h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--gray-800);margin:0 0 var(--space-2) 0} .page-header p{color:var(--gray-600);margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg)} .user-info{display:flex;align-items:center;gap:var(--space-2);color:var(--gray-600);font-size:var(--font-size-sm)} .dashboard-section{display:none;animation:fadeIn var(--transition-normal) ease-in-out} .dashboard-section.active{display:block} @keyframes fadeIn{from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} } .overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6);margin-bottom:var(--space-8)} .overview-card{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);transition:all var(--transition-normal)} .overview-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)} .overview-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding:0;background:none;border:none} .overview-card .card-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin:0} .overview-card .card-icon{font-size:var(--font-size-2xl);color:var(--primary-blue)} .overview-card .card-content{padding:0} .stat-number{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--primary-blue);margin-bottom:var(--space-1)} .stat-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-1)} .stat-label{font-size:var(--font-size-sm);color:var(--gray-600);margin-bottom:var(--space-2)} .usage-bar{width:100%;height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-2)} .usage-fill{height:100%;background:var(--primary-blue);border-radius:var(--radius-full);transition:width var(--transition-normal)} .overview-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap} .sites-container{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden} .sites-header{padding:var(--space-6);border-bottom:1px solid var(--gray-200);background:var(--gray-50);display:flex;justify-content:space-between;align-items:center} .sites-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin:0} .sites-grid{padding:var(--space-6);display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6)} .bots-container{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden} .bots-header{padding:var(--space-6);border-bottom:1px solid var(--gray-200);background:var(--gray-50);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4)} .bots-filters{display:flex;gap:var(--space-3);flex-wrap:wrap} .filter-select{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);background:var(--white);color:var(--gray-700);font-size:var(--font-size-sm);min-width:120px} .bots-actions{display:flex;gap:var(--space-3)} .bots-table-container{overflow-x:auto;position:relative} .bots-table-container::-webkit-scrollbar{height:8px} .bots-table-container::-webkit-scrollbar-track{background:var(--gray-100);border-radius:var(--radius-sm)} .bots-table-container::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:var(--radius-sm)} .bots-table-container::-webkit-scrollbar-thumb:hover{background:var(--gray-500)} .bots-table{width:100%;border-collapse:collapse} .bots-table th,.bots-table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--gray-200)} .bots-table th{background:var(--gray-50);font-weight:var(--font-weight-semibold);color:var(--gray-800);font-size:var(--font-size-sm)} .bots-table td{color:var(--gray-700);font-size:var(--font-size-sm)} .bots-table tbody tr:hover{background:var(--gray-50)} .analytics-type-selector{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);justify-content:center;padding:var(--space-4);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .analytics-type-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:2px solid var(--gray-300);background:var(--white);border-radius:var(--radius-md);cursor:pointer;transition:all 0.2s ease;font-size:1rem;font-weight:500;color:var(--gray-700);flex:1;justify-content:center;max-width:250px} .analytics-type-btn:hover{border-color:var(--primary-blue);background:var(--light-blue);color:var(--primary-blue);transform:translateY(-2px);box-shadow:var(--shadow-md)} .analytics-type-btn.active{border-color:var(--primary-blue);background:var(--primary-blue);color:var(--white);box-shadow:var(--shadow-md)} .analytics-type-btn.active:hover{background:var(--blue-700);border-color:var(--blue-700)} .analytics-type-btn .btn-icon{font-size:1.25rem} .analytics-type-btn .btn-text{font-weight:600} .analytics-container{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-6);margin-bottom:var(--space-8)} .analytics-chart{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .analytics-chart h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-4)} .chart-container{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);position:relative;min-width:0;height:auto;overflow:visible} .chart-container h3{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin:0 0 var(--space-4);text-align:left;word-wrap:break-word;overflow-wrap:break-word;max-width:100%} .chart-canvas-wrap{position:relative;width:100%;height:260px;min-height:220px} .chart-canvas-wrap canvas{width:100% !important;height:100% !important;display:block;max-width:100%} .chart-placeholder{color:var(--gray-500);font-size:var(--font-size-lg)} .analytics-stats{display:flex;flex-direction:column;gap:var(--space-4)} .stat-card{background:var(--white);padding:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .stat-card h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-600);margin-bottom:var(--space-2)} .stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--primary-blue)} .analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)} .analytics-card{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .analytics-card h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-4)} .analytics-metric{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--gray-100)} .analytics-metric:last-child{border-bottom:none} .metric-label{color:var(--gray-600);font-size:var(--font-size-sm)} .metric-value{color:var(--gray-800);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)} .settings-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-6)} .settings-card{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .settings-card h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-6)} .settings-card .form-group{margin-bottom:var(--space-6)} .settings-card .form-label,.settings-card label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--gray-700);margin-bottom:var(--space-2)} .settings-card .form-input,.settings-card input[type="text"],.settings-card input[type="email"],.settings-card input[type="password"],.settings-card input[type="url"]{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);background-color:var(--white);color:var(--gray-800);transition:all var(--transition-fast);box-sizing:border-box} .settings-card .form-input:focus,.settings-card input[type="text"]:focus,.settings-card input[type="email"]:focus,.settings-card input[type="password"]:focus,.settings-card input[type="url"]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.1)} .settings-card .form-input:hover,.settings-card input[type="text"]:hover,.settings-card input[type="email"]:hover,.settings-card input[type="password"]:hover,.settings-card input[type="url"]:hover{border-color:var(--gray-400)} .settings-card .form-input::placeholder,.settings-card input[type="text"]::placeholder,.settings-card input[type="email"]::placeholder,.settings-card input[type="password"]::placeholder,.settings-card input[type="url"]::placeholder{color:var(--gray-400);opacity:1} .billing-container{display:flex;flex-direction:column;gap:var(--space-8)} .billing-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)} .billing-card{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .billing-card h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-4)} .plan-info{margin-bottom:var(--space-4)} .plan-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--primary-blue);margin-bottom:var(--space-1)} .plan-price{font-size:var(--font-size-lg);color:var(--gray-600)} .invoice-info{margin-bottom:var(--space-4)} .invoice-date{font-size:var(--font-size-sm);color:var(--gray-600);margin-bottom:var(--space-1)} .invoice-amount{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--gray-800)} .billing-history{background:var(--white);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .billing-history h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--gray-800);margin-bottom:var(--space-4)} .invoice-list{display:flex;flex-direction:column;gap:var(--space-3)} .sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:calc(var(--z-fixed) - 1);opacity:0;visibility:hidden;transition:all var(--transition-normal)} .sidebar-overlay.active{opacity:1;visibility:visible} .traffic-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)} .overview-card.highlight-card{background:var(--sahara-gold,var(--primary-blue));border-color:var(--sahara-gold,var(--primary-blue));color:var(--white)} .overview-card.highlight-card .card-header h3,.overview-card.highlight-card .stat-number,.overview-card.highlight-card .stat-label{color:var(--white)} .overview-card.highlight-card .card-icon{color:var(--white);opacity:0.9} .overview-card.highlight-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)} .traffic-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-6);margin-bottom:var(--space-6)} .traffic-details{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);margin-bottom:var(--space-6)} .traffic-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;align-items:center} .traffic-filters .form-select{min-width:150px} .traffic-table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--gray-200);position:relative} .traffic-table-container::-webkit-scrollbar{height:8px} .traffic-table-container::-webkit-scrollbar-track{background:var(--gray-100);border-radius:var(--radius-sm)} .traffic-table-container::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:var(--radius-sm)} .traffic-table-container::-webkit-scrollbar-thumb:hover{background:var(--gray-500)} .traffic-table{width:100%;border-collapse:collapse;font-size:0.875rem} .traffic-table th{background:var(--gray-50);padding:var(--space-3);text-align:left;font-weight:600;color:var(--gray-700);border-bottom:1px solid var(--gray-200);white-space:nowrap} .traffic-table td{padding:var(--space-3);border-bottom:1px solid var(--gray-100);color:var(--gray-600);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .traffic-table tr:hover{background:var(--gray-50)} .realtime-traffic{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)} .realtime-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)} .realtime-card{text-align:center;padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-md);border:1px solid var(--gray-200)} .realtime-number{font-size:2rem;font-weight:700;color:var(--primary-blue);margin-bottom:var(--space-2)} .realtime-label{font-size:0.875rem;color:var(--gray-600);font-weight:500} .visitor-type-badge{display:inline-flex;align-items:center;gap:0.25rem;padding:0.25rem 0.5rem;border-radius:var(--radius-sm);font-size:0.75rem;font-weight:500} .visitor-type-badge.user{background:var(--green-100);color:var(--green-800);border:1px solid var(--green-200)} .visitor-type-badge.bot{background:var(--yellow-100);color:var(--yellow-800);border:1px solid var(--yellow-200)} .visitor-type-badge.direct{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd} .visitor-type-badge.organic{background:#f3e8ff;color:#6b21a8;border:1px solid #c084fc} @media (max-width:768px){.traffic-overview{grid-template-columns:1fr;gap:var(--space-3)} .traffic-charts{grid-template-columns:1fr;gap:var(--space-4)} .chart-container{padding:var(--space-4)} .chart-canvas-wrap{height:220px} .traffic-filters{flex-direction:column;align-items:stretch;gap:var(--space-2)} .traffic-filters .form-select{width:100%;min-width:auto} .traffic-filters .btn{width:100%} .traffic-details{padding:var(--space-4)} .traffic-details h3{font-size:var(--font-size-lg);margin-bottom:var(--space-3)} .traffic-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md)} .traffic-table{min-width:800px;font-size:var(--font-size-xs)} .traffic-table th{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);position:sticky;top:0;z-index:10} .traffic-table td{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);max-width:150px} .realtime-stats{grid-template-columns:1fr;gap:var(--space-3)} .realtime-traffic{padding:var(--space-4)} .realtime-card{padding:var(--space-3)} .realtime-number{font-size:1.5rem} } .dashboard-content .btn-secondary{background:var(--gray-100);color:var(--gray-800);border:2px solid var(--gray-300);box-shadow:var(--shadow-sm)} .dashboard-content .btn-secondary:hover:not(:disabled){background:var(--gray-200);border-color:var(--gray-400);color:var(--gray-900);transform:translateY(-2px);box-shadow:var(--shadow-md)} .dashboard-content .btn-info{background:var(--info-blue);color:var(--white);border:2px solid var(--info-blue);box-shadow:var(--shadow-md)} .dashboard-content .btn-info:hover:not(:disabled){background:#2563eb;border-color:#2563eb;transform:translateY(-2px);box-shadow:var(--shadow-lg)} @media (max-width:768px){.dashboard-sidebar{transform:translateX(-100%);z-index:calc(var(--z-fixed) + 2)} .dashboard-sidebar.active{transform:translateX(0)} .sidebar-overlay{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:calc(var(--z-fixed) + 1);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)} .sidebar-overlay.active{opacity:1;visibility:visible} .dashboard-main{margin-left:0;padding-top:0} .mobile-menu-toggle{display:flex} .sidebar-toggle{display:block} .dashboard-content{padding:var(--space-4);padding-top:calc(var(--space-4) + 64px)} .page-header{padding:var(--space-4);padding-top:var(--space-2);margin-bottom:var(--space-4)} .page-header h1{font-size:var(--font-size-xl)} .page-header p{font-size:var(--font-size-sm);margin-bottom:var(--space-3)} .user-info{font-size:var(--font-size-xs);margin-top:var(--space-2)} .overview-grid{grid-template-columns:1fr;gap:var(--space-4)} .sites-grid{grid-template-columns:1fr;gap:var(--space-4)} .bots-header{flex-direction:column;align-items:stretch;padding:var(--space-4)} .bots-filters{flex-direction:column;width:100%;gap:var(--space-2)} .bots-filters .filter-select{width:100%;min-width:auto} .bots-actions{width:100%;justify-content:stretch;flex-direction:column;gap:var(--space-2)} .bots-actions .btn{width:100%} .bots-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch} .bots-table{min-width:600px;font-size:var(--font-size-xs)} .bots-table th,.bots-table td{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);white-space:nowrap} .bots-table th{font-size:var(--font-size-xs);position:sticky;top:0;z-index:10} .bots-table-mobile{display:none} .analytics-container{grid-template-columns:1fr} .analytics-grid{grid-template-columns:1fr} .settings-container{grid-template-columns:1fr} .billing-summary{grid-template-columns:1fr} .overview-actions{flex-direction:column} .overview-actions .btn{width:100%} } @media (max-width:480px){.dashboard-content{padding:var(--space-3)} .page-header{padding:var(--space-4)} .page-header h1{font-size:var(--font-size-2xl)} .overview-card,.sites-header,.bots-header,.analytics-chart,.analytics-card,.settings-card,.billing-card,.billing-history{padding:var(--space-4)} .bots-header{padding:var(--space-3)} .bots-filters{gap:var(--space-2)} .bots-table-container{margin:0 calc(-1 * var(--space-3))} .bots-table{min-width:500px} .bots-table th,.bots-table td{padding:var(--space-2);font-size:0.7rem} .traffic-overview{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))} .traffic-overview .overview-card{padding:var(--space-3)} .overview-card.highlight-card{grid-column:1 / -1} .traffic-table-container{margin:0;overflow-x:auto;-webkit-overflow-scrolling:touch} .traffic-table{min-width:700px;font-size:0.7rem} .traffic-table th,.traffic-table td{padding:var(--space-2);font-size:0.7rem;max-width:120px} .chart-container{padding:var(--space-3)} .traffic-details{padding:var(--space-3)} .traffic-details h3{font-size:var(--font-size-base)} .realtime-number{font-size:1.25rem} .page-header h1{font-size:var(--font-size-xl)} .page-header p{font-size:var(--font-size-sm)} } @media (prefers-color-scheme:dark){.overview-card.highlight-card{background:var(--primary-blue);border-color:var(--primary-blue)} .overview-card.highlight-card:hover{box-shadow:0 10px 25px rgba(212,175,55,0.3)} } .pagination-container{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4);padding:var(--space-4);background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:var(--space-2)} .pagination-info{color:var(--gray-600);font-size:var(--text-sm);font-weight:500} .pagination-buttons{display:flex;gap:var(--space-1);align-items:center} .pagination-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast);min-width:36px;text-align:center} .pagination-btn:hover:not(.disabled):not(.active){background:var(--gray-50);border-color:var(--gray-400);color:var(--gray-900)} .pagination-btn.active{background:var(--primary-600);color:var(--white);border-color:var(--primary-600)} .pagination-btn.disabled{opacity:0.5;cursor:not-allowed} .pagination-ellipsis{padding:var(--space-2);color:var(--gray-500);font-weight:500} @media (max-width:768px){.pagination-container{flex-direction:column;align-items:stretch} .pagination-info{text-align:center;margin-bottom:var(--space-2)} .pagination-buttons{justify-content:center;flex-wrap:wrap} }
.auth-body{background:var(--surface,#f7fafd);min-height:100vh;font-family:var(--font-body,"Manrope",system-ui,sans-serif);color:var(--on-surface,#1f1b13)} body.sentinel-body.auth-body{background:var(--surface,#f7fafd);display:block;min-height:100vh} .auth-container{width:100%;max-width:28rem;margin:0 auto;position:relative;padding:7rem 1.5rem 3rem} body.sentinel-body .auth-container{display:block;max-width:28rem;padding:7rem 1.5rem 3rem} .auth-card{background:var(--surface-container-lowest,#ffffff);border-radius:1rem;box-shadow:0 10px 40px -10px rgba(45,41,34,0.08);border:1px solid color-mix(in srgb,var(--outline-variant,#d0c5af) 50%,transparent);overflow:hidden} .auth-header{text-align:center;padding:2rem 1.5rem 1.25rem;background:var(--surface-container,#f5eddf);color:var(--dune-shadow,#2D2922);position:relative} .auth-header::before{display:none} .auth-logo{text-decoration:none;color:var(--dune-shadow,#2D2922);position:relative;z-index:1} .auth-logo h1{font-family:var(--font-display,"Manrope",system-ui,sans-serif);font-size:1.75rem;font-weight:700;margin:0 0 1rem;color:var(--dune-shadow,#2D2922);background:none;-webkit-text-fill-color:unset} .auth-header h2{font-family:var(--font-body,"Manrope",system-ui,sans-serif);font-size:1.25rem;font-weight:600;margin:0 0 0.5rem;color:var(--dune-shadow,#2D2922)} .auth-header p{font-size:0.95rem;margin:0;color:var(--on-surface-variant,#4d4635);opacity:1} .auth-form{padding:1.5rem} .auth-form .form-group{margin-bottom:1.25rem} .auth-form .form-group small,.auth-form .password-strength-text,.auth-form .form-help{display:block;margin-top:0.5rem;font-size:0.75rem;color:var(--on-surface-variant,#4d4635)} .auth-form label,.auth-form .form-label{display:block;font-size:0.875rem;font-weight:600;color:var(--dune-shadow,#2D2922);margin-bottom:0.5rem} .auth-form input[type="text"],.auth-form input[type="email"],.auth-form input[type="password"],.auth-form input[type="url"],.auth-form select,.auth-form .form-input{width:100%;padding:0.75rem 1rem;border:1px solid var(--outline-variant,#d0c5af);border-radius:0.5rem;font-size:1rem;font-family:inherit;background-color:var(--surface,#fff8f0);color:var(--on-surface,#1f1b13);transition:border-color 0.2s,box-shadow 0.2s;box-sizing:border-box;-webkit-appearance:none;appearance:none} .auth-form input:focus,.auth-form select:focus,.auth-form .form-input:focus{outline:none;border-color:var(--primary,#0037b0);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary,#0037b0) 25%,transparent);background-color:var(--surface-container-lowest,#ffffff)} .auth-form input:hover,.auth-form select:hover,.auth-form .form-input:hover{border-color:var(--outline,#7f7663)} .auth-form input::placeholder,.auth-form .form-input::placeholder{color:color-mix(in srgb,var(--on-surface-variant,#4d4635) 70%,transparent);opacity:1} .auth-form select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%237f7663' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 0.75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;cursor:pointer} .auth-form select:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%230037b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e")} .auth-form .checkbox-group{display:flex;align-items:flex-start;gap:0.75rem;margin-bottom:1.5rem} .auth-form .register-notice{font-size:0.875rem;color:var(--on-surface-variant,#4d4635);line-height:1.5;margin:0 0 1.25rem} .auth-form .checkbox-label{display:flex;align-items:flex-start;gap:0.5rem;cursor:pointer;font-size:0.875rem;color:var(--on-surface-variant,#4d4635);line-height:1.5} .auth-form .checkbox-label input[type="checkbox"]{width:18px;height:18px;margin:0.15rem 0 0;cursor:pointer;accent-color:var(--primary,#0037b0);flex-shrink:0} .auth-form .btn,.auth-form .btn-primary,.auth-form .btn-full,body.sentinel-body .auth-form .btn-primary,body.sentinel-body .auth-form .btn-full{width:100%;padding:0.85rem 1.25rem;background:var(--primary,#0037b0);color:#fff;border:none;border-radius:var(--radius-sm,0.125rem);font-size:0.875rem;font-weight:600;letter-spacing:0.05em;cursor:pointer;transition:transform 0.2s,box-shadow 0.2s;box-shadow:0 4px 14px rgba(212,175,55,0.35);font-family:inherit} .auth-form .btn-full:hover,.auth-form .btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(212,175,55,0.4)} .auth-form .btn-full:active,.auth-form .btn-primary:active{transform:translateY(0)} .auth-form .btn-full:disabled,.auth-form .btn-primary:disabled{opacity:0.6;cursor:not-allowed;transform:none} .auth-footer{padding:1.25rem 1.5rem 1.5rem;text-align:center;background:var(--surface-container-low,#fbf3e5);border-top:1px solid color-mix(in srgb,var(--outline-variant,#d0c5af) 50%,transparent)} .auth-footer p{margin:0 0 0.75rem;color:var(--on-surface-variant,#4d4635);font-size:0.875rem} .auth-footer p:last-child{margin-bottom:0} .auth-message{display:none;margin:0 0 1.25rem;padding:0.75rem 1rem;border-radius:0.5rem;font-size:0.875rem;font-weight:500;line-height:1.4} .auth-message--error{background:color-mix(in srgb,#ba1a1a 8%,var(--surface-container-lowest,#ffffff));border:1px solid color-mix(in srgb,#ba1a1a 30%,transparent);color:#ba1a1a} .auth-message--success{background:color-mix(in srgb,#10b981 8%,var(--surface-container-lowest,#ffffff));border:1px solid color-mix(in srgb,#10b981 30%,transparent);color:#047857} .auth-link{color:var(--primary,#0037b0);text-decoration:none;font-weight:600;transition:color 0.2s} .auth-link:hover{color:var(--dune-shadow,#2D2922);text-decoration:underline} .loading-overlay{position:fixed;inset:0;background:rgba(45,41,34,0.35);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity 0.2s,visibility 0.2s} .loading-overlay.active{opacity:1;visibility:visible} .loading-content{background:var(--surface-container-lowest,#ffffff);padding:2rem;border-radius:1rem;text-align:center;box-shadow:0 10px 40px -10px rgba(45,41,34,0.15);max-width:300px;width:90%;border:1px solid var(--outline-variant,#d0c5af)} .loading-spinner{width:40px;height:40px;border:3px solid var(--surface-variant,#eae1d4);border-top:3px solid var(--primary,#0037b0);border-radius:50%;animation:auth-spin 1s linear infinite;margin:0 auto 1rem} .loading-content p{color:var(--on-surface-variant,#4d4635);font-size:1rem;margin:0} @keyframes auth-spin{to{transform:rotate(360deg)} } .toast{position:fixed;top:1.5rem;right:1.5rem;background:var(--surface-container-lowest,#ffffff);border-radius:0.75rem;box-shadow:0 10px 40px -10px rgba(45,41,34,0.15);border:1px solid var(--outline-variant,#d0c5af);padding:1rem;max-width:400px;z-index:1100;transform:translateX(120%);transition:transform 0.25s;display:flex;align-items:center;gap:0.75rem} .toast.show{transform:translateX(0)} .toast-success{border-left:4px solid #10b981} .toast-error{border-left:4px solid #ba1a1a} .toast-info{border-left:4px solid var(--primary,#0037b0)} .toast-warning{border-left:4px solid #f59e0b} .toast-message{color:var(--on-surface,#1f1b13);font-size:0.875rem;font-weight:500;flex:1} .form-group.error .form-input{border-color:#ba1a1a} .form-error{color:#ba1a1a;font-size:0.875rem;margin-top:0.25rem} .form-success{color:#10b981;font-size:0.875rem;margin-top:0.25rem} .password-strength-bar{height:4px;background:var(--surface-variant,#eae1d4);border-radius:var(--radius-sm,0.125rem);overflow:hidden;margin:0.5rem 0 0.25rem} .password-strength-fill{height:100%;transition:width 0.2s,background 0.2s} .password-strength-fill.weak{width:25%;background:#ba1a1a} .password-strength-fill.fair{width:50%;background:#f59e0b} .password-strength-fill.good{width:75%;background:var(--primary,#0037b0)} .password-strength-fill.strong{width:100%;background:#10b981} @media (max-width:480px){.auth-container,body.sentinel-body .auth-container{padding:6.5rem 1rem 2rem;max-width:100%} .auth-header{padding:1.5rem 1rem 1rem} .auth-form,.auth-footer{padding:1rem} .toast{left:1rem;right:1rem;max-width:none} }
.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.9);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(2px)} .loading-content{text-align:center;padding:2rem;background:white;border-radius:0.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1)} .loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem} @keyframes spin{0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} } .error-state{text-align:center;padding:3rem 2rem;color:#6b7280} .error-icon{font-size:3rem;margin-bottom:1rem} .error-state h3{color:#374151;margin-bottom:0.5rem} .error-state p{margin-bottom:1.5rem} @keyframes fadeIn{from{opacity:0} to{opacity:1} } @keyframes fadeOut{from{opacity:1} to{opacity:0} } @keyframes fadeInUp{from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} } @keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)} } @keyframes fadeInLeft{from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} } @keyframes fadeInRight{from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} } @keyframes slideInUp{from{transform:translateY(100%)} to{transform:translateY(0)} } @keyframes slideInDown{from{transform:translateY(-100%)} to{transform:translateY(0)} } @keyframes slideInLeft{from{transform:translateX(-100%)} to{transform:translateX(0)} } @keyframes slideInRight{from{transform:translateX(100%)} to{transform:translateX(0)} } @keyframes slideOutUp{from{transform:translateY(0)} to{transform:translateY(-100%)} } @keyframes slideOutDown{from{transform:translateY(0)} to{transform:translateY(100%)} } @keyframes slideOutLeft{from{transform:translateX(0)} to{transform:translateX(-100%)} } @keyframes slideOutRight{from{transform:translateX(0)} to{transform:translateX(100%)} } @keyframes scaleIn{from{opacity:0;transform:scale(0.8)} to{opacity:1;transform:scale(1)} } @keyframes scaleOut{from{opacity:1;transform:scale(1)} to{opacity:0;transform:scale(0.8)} } @keyframes scaleInUp{from{opacity:0;transform:scale(0.8) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} } @keyframes scaleInDown{from{opacity:0;transform:scale(0.8) translateY(-20px)} to{opacity:1;transform:scale(1) translateY(0)} } @keyframes spin{from{transform:rotate(0deg)} to{transform:rotate(360deg)} } @keyframes spinReverse{from{transform:rotate(360deg)} to{transform:rotate(0deg)} } @keyframes rotateIn{from{opacity:0;transform:rotate(-200deg)} to{opacity:1;transform:rotate(0deg)} } @keyframes rotateOut{from{opacity:1;transform:rotate(0deg)} to{opacity:0;transform:rotate(200deg)} } @keyframes bounce{0%,20%,53%,80%,100%{transform:translateY(0)} 40%,43%{transform:translateY(-30px)} 70%{transform:translateY(-15px)} 90%{transform:translateY(-4px)} } @keyframes bounceIn{0%{opacity:0;transform:scale(0.3)} 50%{opacity:1;transform:scale(1.05)} 70%{transform:scale(0.9)} 100%{opacity:1;transform:scale(1)} } @keyframes bounceOut{0%{transform:scale(1)} 25%{transform:scale(0.95)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0;transform:scale(0.3)} } @keyframes pulse{0%{transform:scale(1)} 50%{transform:scale(1.05)} 100%{transform:scale(1)} } @keyframes pulseIn{0%{opacity:0;transform:scale(0.8)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:1;transform:scale(1)} } @keyframes pulseOut{0%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.05)} 100%{opacity:0;transform:scale(0.8)} } @keyframes shake{0%,100%{transform:translateX(0)} 10%,30%,50%,70%,90%{transform:translateX(-10px)} 20%,40%,60%,80%{transform:translateX(10px)} } @keyframes wiggle{0%,7%{transform:rotateZ(0)} 15%{transform:rotateZ(-15deg)} 20%{transform:rotateZ(10deg)} 25%{transform:rotateZ(-10deg)} 30%{transform:rotateZ(6deg)} 35%{transform:rotateZ(-4deg)} 40%,100%{transform:rotateZ(0)} } @keyframes heartbeat{0%{transform:scale(1)} 14%{transform:scale(1.3)} 28%{transform:scale(1)} 42%{transform:scale(1.3)} 70%{transform:scale(1)} } @keyframes loadingDots{0%,20%{color:rgba(0,0,0,0);text-shadow:0.25em 0 0 rgba(0,0,0,0),0.5em 0 0 rgba(0,0,0,0)} 40%{color:black;text-shadow:0.25em 0 0 rgba(0,0,0,0),0.5em 0 0 rgba(0,0,0,0)} 60%{text-shadow:0.25em 0 0 black,0.5em 0 0 rgba(0,0,0,0)} 80%,100%{text-shadow:0.25em 0 0 black,0.5em 0 0 black} } @keyframes loadingBar{0%{transform:scaleX(0);transform-origin:left} 50%{transform:scaleX(1);transform-origin:left} 51%{transform-origin:right} 100%{transform:scaleX(0);transform-origin:right} } .animate-fade-in{animation:fadeIn var(--transition-normal) ease-out} .animate-fade-out{animation:fadeOut var(--transition-normal) ease-in} .animate-fade-in-up{animation:fadeInUp var(--transition-normal) ease-out} .animate-fade-in-down{animation:fadeInDown var(--transition-normal) ease-out} .animate-fade-in-left{animation:fadeInLeft var(--transition-normal) ease-out} .animate-fade-in-right{animation:fadeInRight var(--transition-normal) ease-out} .animate-slide-in-up{animation:slideInUp var(--transition-normal) ease-out} .animate-slide-in-down{animation:slideInDown var(--transition-normal) ease-out} .animate-slide-in-left{animation:slideInLeft var(--transition-normal) ease-out} .animate-slide-in-right{animation:slideInRight var(--transition-normal) ease-out} .animate-scale-in{animation:scaleIn var(--transition-normal) ease-out} .animate-scale-out{animation:scaleOut var(--transition-normal) ease-in} .animate-scale-in-up{animation:scaleInUp var(--transition-normal) ease-out} .animate-scale-in-down{animation:scaleInDown var(--transition-normal) ease-out} .animate-spin{animation:spin 1s linear infinite} .animate-spin-reverse{animation:spinReverse 1s linear infinite} .animate-rotate-in{animation:rotateIn var(--transition-normal) ease-out} .animate-rotate-out{animation:rotateOut var(--transition-normal) ease-in} .animate-bounce{animation:bounce 1s ease-in-out} .animate-bounce-in{animation:bounceIn var(--transition-normal) ease-out} .animate-bounce-out{animation:bounceOut var(--transition-normal) ease-in} .animate-pulse{animation:pulse 2s ease-in-out infinite} .animate-pulse-in{animation:pulseIn var(--transition-normal) ease-out} .animate-pulse-out{animation:pulseOut var(--transition-normal) ease-in} .animate-shake{animation:shake 0.5s ease-in-out} .animate-wiggle{animation:wiggle 1s ease-in-out} .animate-heartbeat{animation:heartbeat 1.5s ease-in-out infinite} .animate-loading-dots{animation:loadingDots 1.4s ease-in-out infinite} .animate-loading-bar{animation:loadingBar 2s ease-in-out infinite} .animate-delay-100{animation-delay:0.1s} .animate-delay-200{animation-delay:0.2s} .animate-delay-300{animation-delay:0.3s} .animate-delay-500{animation-delay:0.5s} .animate-delay-700{animation-delay:0.7s} .animate-delay-1000{animation-delay:1s} .animate-duration-75{animation-duration:75ms} .animate-duration-100{animation-duration:100ms} .animate-duration-150{animation-duration:150ms} .animate-duration-200{animation-duration:200ms} .animate-duration-300{animation-duration:300ms} .animate-duration-500{animation-duration:500ms} .animate-duration-700{animation-duration:700ms} .animate-duration-1000{animation-duration:1000ms} .animate-fill-none{animation-fill-mode:none} .animate-fill-forwards{animation-fill-mode:forwards} .animate-fill-backwards{animation-fill-mode:backwards} .animate-fill-both{animation-fill-mode:both} .animate-once{animation-iteration-count:1} .animate-twice{animation-iteration-count:2} .animate-infinite{animation-iteration-count:infinite} .hover-animate-scale:hover{transform:scale(1.05);transition:transform var(--transition-fast)} .hover-animate-rotate:hover{transform:rotate(5deg);transition:transform var(--transition-fast)} .hover-animate-bounce:hover{animation:bounce 0.6s ease-in-out} .hover-animate-pulse:hover{animation:pulse 1s ease-in-out infinite} .hover-animate-wiggle:hover{animation:wiggle 1s ease-in-out} @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important} .animate-spin,.animate-pulse,.animate-bounce,.animate-heartbeat,.animate-loading-dots,.animate-loading-bar{animation:none !important} }
@container (min-width:320px){.container-sm{max-width:320px} } @container (min-width:640px){.container-md{max-width:640px} } @container (min-width:768px){.container-lg{max-width:768px} } @container (min-width:1024px){.container-xl{max-width:1024px} } @container (min-width:1280px){.container-2xl{max-width:1280px} } @media (min-width:320px){.xs\:block{display:block} .xs\:inline-block{display:inline-block} .xs\:inline{display:inline} .xs\:flex{display:flex} .xs\:inline-flex{display:inline-flex} .xs\:grid{display:grid} .xs\:hidden{display:none} } @media (min-width:640px){.sm\:block{display:block} .sm\:inline-block{display:inline-block} .sm\:inline{display:inline} .sm\:flex{display:flex} .sm\:inline-flex{display:inline-flex} .sm\:grid{display:grid} .sm\:hidden{display:none} .sm\:text-xs{font-size:var(--font-size-xs)} .sm\:text-sm{font-size:var(--font-size-sm)} .sm\:text-base{font-size:var(--font-size-base)} .sm\:text-lg{font-size:var(--font-size-lg)} .sm\:text-xl{font-size:var(--font-size-xl)} .sm\:text-2xl{font-size:var(--font-size-2xl)} .sm\:text-3xl{font-size:var(--font-size-3xl)} .sm\:text-4xl{font-size:var(--font-size-4xl)} .sm\:p-1{padding:var(--space-1)} .sm\:p-2{padding:var(--space-2)} .sm\:p-3{padding:var(--space-3)} .sm\:p-4{padding:var(--space-4)} .sm\:p-5{padding:var(--space-5)} .sm\:p-6{padding:var(--space-6)} .sm\:p-8{padding:var(--space-8)} .sm\:m-1{margin:var(--space-1)} .sm\:m-2{margin:var(--space-2)} .sm\:m-3{margin:var(--space-3)} .sm\:m-4{margin:var(--space-4)} .sm\:m-5{margin:var(--space-5)} .sm\:m-6{margin:var(--space-6)} .sm\:m-8{margin:var(--space-8)} } @media (min-width:768px){.md\:block{display:block} .md\:inline-block{display:inline-block} .md\:inline{display:inline} .md\:flex{display:flex} .md\:inline-flex{display:inline-flex} .md\:grid{display:grid} .md\:hidden{display:none} .md\:text-xs{font-size:var(--font-size-xs)} .md\:text-sm{font-size:var(--font-size-sm)} .md\:text-base{font-size:var(--font-size-base)} .md\:text-lg{font-size:var(--font-size-lg)} .md\:text-xl{font-size:var(--font-size-xl)} .md\:text-2xl{font-size:var(--font-size-2xl)} .md\:text-3xl{font-size:var(--font-size-3xl)} .md\:text-4xl{font-size:var(--font-size-4xl)} .md\:text-5xl{font-size:var(--font-size-5xl)} .md\:p-1{padding:var(--space-1)} .md\:p-2{padding:var(--space-2)} .md\:p-3{padding:var(--space-3)} .md\:p-4{padding:var(--space-4)} .md\:p-5{padding:var(--space-5)} .md\:p-6{padding:var(--space-6)} .md\:p-8{padding:var(--space-8)} .md\:p-10{padding:var(--space-10)} .md\:p-12{padding:var(--space-12)} .md\:m-1{margin:var(--space-1)} .md\:m-2{margin:var(--space-2)} .md\:m-3{margin:var(--space-3)} .md\:m-4{margin:var(--space-4)} .md\:m-5{margin:var(--space-5)} .md\:m-6{margin:var(--space-6)} .md\:m-8{margin:var(--space-8)} .md\:m-10{margin:var(--space-10)} .md\:m-12{margin:var(--space-12)} .md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))} .md\:flex-row{flex-direction:row} .md\:flex-col{flex-direction:column} .md\:justify-start{justify-content:flex-start} .md\:justify-center{justify-content:center} .md\:justify-end{justify-content:flex-end} .md\:justify-between{justify-content:space-between} .md\:items-start{align-items:flex-start} .md\:items-center{align-items:center} .md\:items-end{align-items:flex-end} } @media (min-width:1024px){.lg\:block{display:block} .lg\:inline-block{display:inline-block} .lg\:inline{display:inline} .lg\:flex{display:flex} .lg\:inline-flex{display:inline-flex} .lg\:grid{display:grid} .lg\:hidden{display:none} .lg\:text-xs{font-size:var(--font-size-xs)} .lg\:text-sm{font-size:var(--font-size-sm)} .lg\:text-base{font-size:var(--font-size-base)} .lg\:text-lg{font-size:var(--font-size-lg)} .lg\:text-xl{font-size:var(--font-size-xl)} .lg\:text-2xl{font-size:var(--font-size-2xl)} .lg\:text-3xl{font-size:var(--font-size-3xl)} .lg\:text-4xl{font-size:var(--font-size-4xl)} .lg\:text-5xl{font-size:var(--font-size-5xl)} .lg\:text-6xl{font-size:var(--font-size-6xl)} .lg\:p-1{padding:var(--space-1)} .lg\:p-2{padding:var(--space-2)} .lg\:p-3{padding:var(--space-3)} .lg\:p-4{padding:var(--space-4)} .lg\:p-5{padding:var(--space-5)} .lg\:p-6{padding:var(--space-6)} .lg\:p-8{padding:var(--space-8)} .lg\:p-10{padding:var(--space-10)} .lg\:p-12{padding:var(--space-12)} .lg\:p-16{padding:var(--space-16)} .lg\:p-20{padding:var(--space-20)} .lg\:m-1{margin:var(--space-1)} .lg\:m-2{margin:var(--space-2)} .lg\:m-3{margin:var(--space-3)} .lg\:m-4{margin:var(--space-4)} .lg\:m-5{margin:var(--space-5)} .lg\:m-6{margin:var(--space-6)} .lg\:m-8{margin:var(--space-8)} .lg\:m-10{margin:var(--space-10)} .lg\:m-12{margin:var(--space-12)} .lg\:m-16{margin:var(--space-16)} .lg\:m-20{margin:var(--space-20)} .lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))} .lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))} .lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))} .lg\:flex-row{flex-direction:row} .lg\:flex-col{flex-direction:column} .lg\:justify-start{justify-content:flex-start} .lg\:justify-center{justify-content:center} .lg\:justify-end{justify-content:flex-end} .lg\:justify-between{justify-content:space-between} .lg\:items-start{align-items:flex-start} .lg\:items-center{align-items:center} .lg\:items-end{align-items:flex-end} } @media (min-width:1280px){.xl\:block{display:block} .xl\:inline-block{display:inline-block} .xl\:inline{display:inline} .xl\:flex{display:flex} .xl\:inline-flex{display:inline-flex} .xl\:grid{display:grid} .xl\:hidden{display:none} .xl\:text-xs{font-size:var(--font-size-xs)} .xl\:text-sm{font-size:var(--font-size-sm)} .xl\:text-base{font-size:var(--font-size-base)} .xl\:text-lg{font-size:var(--font-size-lg)} .xl\:text-xl{font-size:var(--font-size-xl)} .xl\:text-2xl{font-size:var(--font-size-2xl)} .xl\:text-3xl{font-size:var(--font-size-3xl)} .xl\:text-4xl{font-size:var(--font-size-4xl)} .xl\:text-5xl{font-size:var(--font-size-5xl)} .xl\:text-6xl{font-size:var(--font-size-6xl)} .xl\:p-1{padding:var(--space-1)} .xl\:p-2{padding:var(--space-2)} .xl\:p-3{padding:var(--space-3)} .xl\:p-4{padding:var(--space-4)} .xl\:p-5{padding:var(--space-5)} .xl\:p-6{padding:var(--space-6)} .xl\:p-8{padding:var(--space-8)} .xl\:p-10{padding:var(--space-10)} .xl\:p-12{padding:var(--space-12)} .xl\:p-16{padding:var(--space-16)} .xl\:p-20{padding:var(--space-20)} .xl\:p-24{padding:var(--space-24)} .xl\:p-32{padding:var(--space-32)} .xl\:m-1{margin:var(--space-1)} .xl\:m-2{margin:var(--space-2)} .xl\:m-3{margin:var(--space-3)} .xl\:m-4{margin:var(--space-4)} .xl\:m-5{margin:var(--space-5)} .xl\:m-6{margin:var(--space-6)} .xl\:m-8{margin:var(--space-8)} .xl\:m-10{margin:var(--space-10)} .xl\:m-12{margin:var(--space-12)} .xl\:m-16{margin:var(--space-16)} .xl\:m-20{margin:var(--space-20)} .xl\:m-24{margin:var(--space-24)} .xl\:m-32{margin:var(--space-32)} .xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))} .xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))} .xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))} .xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))} .xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))} .xl\:flex-row{flex-direction:row} .xl\:flex-col{flex-direction:column} .xl\:justify-start{justify-content:flex-start} .xl\:justify-center{justify-content:center} .xl\:justify-end{justify-content:flex-end} .xl\:justify-between{justify-content:space-between} .xl\:items-start{align-items:flex-start} .xl\:items-center{align-items:center} .xl\:items-end{align-items:flex-end} } @media (min-width:1536px){.2xl\:block{display:block} .2xl\:inline-block{display:inline-block} .2xl\:inline{display:inline} .2xl\:flex{display:flex} .2xl\:inline-flex{display:inline-flex} .2xl\:grid{display:grid} .2xl\:hidden{display:none} .2xl\:text-xs{font-size:var(--font-size-xs)} .2xl\:text-sm{font-size:var(--font-size-sm)} .2xl\:text-base{font-size:var(--font-size-base)} .2xl\:text-lg{font-size:var(--font-size-lg)} .2xl\:text-xl{font-size:var(--font-size-xl)} .2xl\:text-2xl{font-size:var(--font-size-2xl)} .2xl\:text-3xl{font-size:var(--font-size-3xl)} .2xl\:text-4xl{font-size:var(--font-size-4xl)} .2xl\:text-5xl{font-size:var(--font-size-5xl)} .2xl\:text-6xl{font-size:var(--font-size-6xl)} .2xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .2xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .2xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .2xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))} .2xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))} .2xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))} .2xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))} .2xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))} .2xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))} .2xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))} .2xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))} .2xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))} } @media (max-width:767px){.mobile\:block{display:block} .mobile\:hidden{display:none} .mobile\:flex{display:flex} .mobile\:flex-col{flex-direction:column} .mobile\:text-center{text-align:center} .mobile\:text-left{text-align:left} .mobile\:text-right{text-align:right} .mobile\:p-2{padding:var(--space-2)} .mobile\:p-3{padding:var(--space-3)} .mobile\:p-4{padding:var(--space-4)} .mobile\:m-2{margin:var(--space-2)} .mobile\:m-3{margin:var(--space-3)} .mobile\:m-4{margin:var(--space-4)} .mobile\:w-full{width:100%} .mobile\:h-auto{height:auto} } @media (min-width:768px) and (max-width:1023px){.tablet\:block{display:block} .tablet\:hidden{display:none} .tablet\:flex{display:flex} .tablet\:grid{display:grid} .tablet\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .tablet\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .tablet\:flex-row{flex-direction:row} .tablet\:flex-col{flex-direction:column} .tablet\:justify-center{justify-content:center} .tablet\:items-center{align-items:center} } @media (min-width:1024px){.desktop\:block{display:block} .desktop\:hidden{display:none} .desktop\:flex{display:flex} .desktop\:grid{display:grid} .desktop\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))} .desktop\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))} .desktop\:flex-row{flex-direction:row} .desktop\:justify-between{justify-content:space-between} .desktop\:items-start{align-items:flex-start} } @media print{.print\:block{display:block} .print\:hidden{display:none} .print\:text-black{color:black} .print\:bg-white{background-color:white} .print\:shadow-none{box-shadow:none} .print\:border{border:1px solid black} } @media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.retina\:text-sm{font-size:var(--font-size-sm)} .retina\:text-base{font-size:var(--font-size-base)} .retina\:text-lg{font-size:var(--font-size-lg)} } @media (orientation:landscape){.landscape\:flex-row{flex-direction:row} .landscape\:hidden{display:none} .landscape\:block{display:block} } @media (orientation:portrait){.portrait\:flex-col{flex-direction:column} .portrait\:hidden{display:none} .portrait\:block{display:block} } @media (hover:hover){.hover\:block:hover{display:block} .hover\:hidden:hover{display:none} .hover\:flex:hover{display:flex} .hover\:scale-105:hover{transform:scale(1.05)} .hover\:scale-110:hover{transform:scale(1.1)} .hover\:rotate-1:hover{transform:rotate(1deg)} .hover\:rotate-2:hover{transform:rotate(2deg)} .hover\:rotate-3:hover{transform:rotate(3deg)} .hover\:-rotate-1:hover{transform:rotate(-1deg)} .hover\:-rotate-2:hover{transform:rotate(-2deg)} .hover\:-rotate-3:hover{transform:rotate(-3deg)} } @media (hover:none){.no-hover\:block{display:block} .no-hover\:hidden{display:none} .no-hover\:flex{display:flex} .no-hover\:text-lg{font-size:var(--font-size-lg)} .no-hover\:p-4{padding:var(--space-4)} } @media (focus:focus){.focus\:block:focus{display:block} .focus\:hidden:focus{display:none} .focus\:outline:focus{outline:2px solid var(--primary-blue)} .focus\:ring:focus{box-shadow:0 0 0 3px rgba(37,99,235,0.1)} } @media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none} .motion-reduce\:transition-none{transition:none} .motion-reduce\:transform-none{transform:none} } @media (prefers-color-scheme:dark){.dark\:block{display:block} .dark\:hidden{display:none} .dark\:text-white{color:white} .dark\:bg-gray-800{background-color:var(--gray-800)} .dark\:bg-gray-900{background-color:var(--gray-900)} .dark\:border-gray-700{border-color:var(--gray-700)} } @media (prefers-color-scheme:light){.light\:block{display:block} .light\:hidden{display:none} .light\:text-gray-900{color:var(--gray-900)} .light\:bg-white{background-color:white} .light\:bg-gray-50{background-color:var(--gray-50)} .light\:border-gray-200{border-color:var(--gray-200)} }
