@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap");:root{--hub-navy:#1a3d6d;--hub-navy-dark:#0d2444;--hub-navy-light:#2d5a9e;--hub-orange:#f28c38;--hub-orange-light:#dcc185;--hub-white:#ffffff;--hub-cream:#f8f7f4;--hub-cream-dark:#f0efe9;--hub-gray-100:#f5f7fa;--hub-gray-200:#e5e7eb;--hub-gray-400:#9ca3af;--hub-gray-500:#6b7280;--hub-gray-600:#4b5563;--hub-gray-700:#374151;--hub-shadow-sm:0 4px 12px rgba(0,0,0,0.06);--hub-shadow-md:0 16px 50px rgba(0,0,0,0.10);--hub-shadow-lg:0 26px 75px rgba(0,0,0,0.18);--hub-transition:all 0.35s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--hub-navy);line-height:1.65;-webkit-font-smoothing:antialiased;background:var(--hub-white)}h1,h2,h3,h4,h5,h6{font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:600;line-height:1.2;color:var(--hub-navy)}h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:clamp(1.5rem,3vw,2.25rem)}h3{font-size:1.25rem}a{color:var(--hub-orange);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{max-width:1200px;margin:0 auto;padding:0 24px}.container-narrow{max-width:800px;margin:0 auto;padding:0 24px}.section{padding:80px 24px}.text-center{text-align:center}.text-muted{color:var(--hub-gray-500)}.btn{display:inline-block;padding:12px 28px;font-size:.875rem;font-weight:600;text-decoration:none;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:var(--hub-transition)}.btn-primary{background:var(--hub-orange);color:var(--hub-white)}.btn-primary:hover{background:#e07b2a;text-decoration:none}.btn-secondary{background:var(--hub-navy);color:var(--hub-white)}.btn-secondary:hover{background:var(--hub-navy-dark);text-decoration:none}.btn-outline{background:transparent;border-color:var(--hub-navy);color:var(--hub-navy)}.btn-outline:hover{background:var(--hub-navy);color:var(--hub-white);text-decoration:none}.card{background:var(--hub-white);border:1px solid var(--hub-gray-200);border-radius:12px;padding:24px;transition:var(--hub-transition)}.card:hover{box-shadow:var(--hub-shadow-sm)}.form-group{margin-bottom:20px}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--hub-gray-700);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;font-size:.9rem;border:1px solid var(--hub-gray-200);border-radius:8px;font-family:inherit;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--hub-navy);box-shadow:0 0 0 3px rgba(26,61,109,.1)}.form-input::placeholder{color:var(--hub-gray-400)}textarea.form-input{resize:vertical;min-height:100px}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;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 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:20px}.badge{display:inline-block;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.badge-active{background:#dcfce7;color:#166534}.badge-pending{background:#fef3c7;color:#92400e}.badge-cancelled{background:#fce7f3;color:#9d174d}.badge-expired{background:var(--hub-gray-100);color:var(--hub-gray-600)}.grid{display:grid;grid-gap:24px;gap:24px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--hub-white);border-bottom:1px solid var(--hub-gray-200)}.nav-brand{font-family:Montserrat,sans-serif;font-weight:700;font-size:1.25rem;color:var(--hub-navy)}.nav-brand,.nav-brand:hover{text-decoration:none}.nav-links{display:flex;gap:24px;list-style:none;align-items:center}.nav-links a{font-size:.9rem;color:var(--hub-gray-600);text-decoration:none;font-weight:500}.nav-links a:hover{color:var(--hub-navy);text-decoration:none}.portal-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--hub-navy-dark);color:var(--hub-white);padding:24px 0;flex-shrink:0}.sidebar-brand{padding:0 20px 24px;font-family:Montserrat,sans-serif;font-weight:700;font-size:1rem;color:var(--hub-white);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px;display:block;text-decoration:none}.sidebar-nav{list-style:none}.sidebar-nav a{display:block;padding:10px 20px;font-size:.875rem;color:rgba(255,255,255,.7);text-decoration:none;transition:background .2s ease}.sidebar-nav a.active,.sidebar-nav a:hover{background:rgba(255,255,255,.1);color:var(--hub-white);text-decoration:none}.portal-main{flex:1 1;padding:32px;background:var(--hub-gray-100)}.portal-header{margin-bottom:32px}.portal-header h1{font-size:1.5rem;margin-bottom:4px}.portal-header p{color:var(--hub-gray-500);font-size:.9rem}.stat-card{background:var(--hub-white);border:1px solid var(--hub-gray-200);border-radius:12px;padding:20px}.stat-card-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--hub-gray-500);margin-bottom:4px}.stat-card-value{font-family:Montserrat,sans-serif;font-size:1.75rem;font-weight:700;color:var(--hub-navy)}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse}table th{text-align:left;padding:10px 14px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--hub-gray-500);border-bottom:2px solid var(--hub-gray-200)}table td{padding:12px 14px;font-size:.875rem;border-bottom:1px solid var(--hub-gray-100)}table tr:hover{background:var(--hub-gray-100)}.hero{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--hub-white);background-size:cover;background-position:50%;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,36,68,.7),rgba(13,36,68,.85))}.hero-content{position:relative;z-index:1;max-width:800px;padding:60px 24px}.hero h1{color:var(--hub-white);margin-bottom:16px}.hero p{color:rgba(255,255,255,.85);font-size:1.1rem;line-height:1.7;margin-bottom:32px}.footer{background:var(--hub-navy-dark);color:rgba(255,255,255,.6);padding:48px 24px;text-align:center;font-size:.875rem}.footer a{color:var(--hub-orange)}.kiosk-layout{min-height:100vh;background:var(--hub-navy-dark);color:var(--hub-white);padding:40px;display:flex;flex-direction:column}.kiosk-header{text-align:center;margin-bottom:40px}.kiosk-header h1{color:var(--hub-white);font-size:2rem}.kiosk-header p{color:var(--hub-orange);font-size:.9rem;margin-top:4px}.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:16px;gap:16px;flex:1 1}.kiosk-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px}.kiosk-card h3{color:var(--hub-white);font-size:1rem;margin-bottom:4px}.kiosk-card p{color:rgba(255,255,255,.5);font-size:.8rem}.kiosk-footer{text-align:center;padding-top:24px;color:rgba(255,255,255,.3);font-size:.75rem}