@import"https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800&display=swap";:root{--color-primary: #001b37;--color-primary-80: #00162c;--color-primary-60: #33485f;--color-primary-30: #99a4af;--color-primary-10: #e6e8eb;--color-red: #d20a11;--color-green: #86bc24;--color-gray-900: #111827;--color-gray-700: #374151;--color-gray-500: #6b7280;--color-gray-200: #e5e7eb;--color-gray-50: #f9fafb;--color-surface: #ffffff;--font-family-base: "Raleway", "Segoe UI", sans-serif;--font-family-heading: "Raleway", "Segoe UI", sans-serif;--line-height-base: 1.5;--line-height-tight: 1.25;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px;--shadow-sm: 0 2px 6px rgba(0, 27, 55, .08);--shadow-md: 0 6px 20px rgba(0, 27, 55, .12);--shadow-lg: 0 14px 40px rgba(0, 27, 55, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px}:root{--header-height: 72px}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-5)}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--color-primary-10),var(--color-gray-50))}.app-main{flex:1;padding:var(--space-6) 0 var(--space-7)}.app-shell.app-shell-admin{height:100vh;overflow:hidden;display:flex;flex-direction:row;background:var(--color-gray-50)}.app-shell.app-shell-admin .app-main{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden;background:var(--color-gray-50)}.thor-header{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-primary-10);box-shadow:0 8px 22px #001b370d}.thor-header .container{display:flex;align-items:center;justify-content:space-between;height:100%;gap:var(--space-5)}.thor-brand{display:inline-flex;align-items:center;gap:var(--space-3);font-weight:800;color:var(--color-primary);letter-spacing:.4px}.thor-logo{max-height:36px;width:auto}.thor-nav{display:flex;align-items:center;gap:var(--space-3)}.thor-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-gray-700);font-weight:600}.thor-nav a:hover{background:var(--color-primary-10);color:var(--color-primary)}.thor-nav-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:999px;border:1px solid var(--color-primary-30);background:var(--color-primary-10);color:var(--color-primary);box-shadow:0 1px 3px #001b371f}.thor-nav-icon-svg{width:20px;height:20px;display:block}.thor-nav-icon-settings:after{content:"";width:6px;height:6px;border-radius:999px;background:var(--color-red);position:absolute;right:10px;top:9px}.thor-nav-icon:hover{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);box-shadow:0 3px 8px #001b3733}.thor-nav-icon:focus-visible{outline:3px solid var(--color-primary-10);outline-offset:2px}.thor-nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-sm)}.thor-nav-hamburger:hover{background:var(--color-primary-10)}.thor-nav-hamburger-bar{display:block;width:100%;height:2px;background:var(--color-gray-700);border-radius:2px}@media(max-width:768px){.thor-nav-hamburger{display:flex}.thor-nav{display:none;position:absolute;top:var(--header-height);left:0;right:0;flex-direction:column;align-items:stretch;background:var(--color-surface);border-bottom:1px solid var(--color-primary-10);box-shadow:0 8px 22px #001b371a;padding:var(--space-3) var(--space-4);gap:var(--space-1);z-index:100}.thor-nav.thor-nav--open{display:flex}.thor-nav a,.thor-nav button{padding:var(--space-3) var(--space-3);border-radius:var(--radius-sm);text-align:left;width:100%}.thor-header .container{position:relative}}.thor-footer{background:var(--color-surface);border-top:1px solid var(--color-primary-10);padding:var(--space-4) var(--space-5);color:var(--color-gray-700);display:flex;justify-content:center}.thor-footer-nav{display:flex;gap:var(--space-3);flex-wrap:wrap}.thor-footer-nav.simple{justify-content:center}.ui-card{background:var(--color-surface);border:1px solid var(--color-primary-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.ui-card.elevated{box-shadow:var(--shadow-md)}.ui-btn{border:1px solid transparent;border-radius:var(--radius-md);font-weight:600;cursor:pointer;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;transition:background .15s ease,color .15s ease,border-color .15s ease}.ui-btn.btn-sm{padding:6px 10px;font-size:13px;font-weight:500}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm);border-color:var(--color-primary)}.ui-btn-primary:hover:not(:disabled){background:var(--color-primary-80)}.ui-btn-ghost{background:transparent;color:var(--color-primary);border-color:transparent}.ui-btn-ghost:hover:not(:disabled){background:var(--color-primary-10)}.ui-btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.ui-btn-secondary:hover:not(:disabled){background:var(--color-primary-10)}.ui-btn-danger{background:var(--color-red);color:#fff;border-color:var(--color-red)}.ui-btn-danger:hover:not(:disabled){filter:brightness(.95)}.ui-btn-success{background:var(--color-green);color:#fff;border-color:var(--color-green)}.ui-btn-success:hover:not(:disabled){filter:brightness(.95)}.ui-btn:focus-visible{outline:3px solid var(--color-primary-10);outline-offset:2px}.ui-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:4px;font-weight:600;font-size:12px;border:none;white-space:nowrap;text-transform:capitalize}.ui-badge.success{background:#ecfdf5;color:#065f46}.ui-badge.info{background:#eff6ff;color:#1e40af}.ui-badge.danger{background:#fef2f2;color:#991b1b}.ui-badge.warning{background:#fffbeb;color:#b45309}.ui-badge.secondary{background:#f3f4f6;color:#4b5563}.ui-badge.status-active{background:#86bc2424;color:var(--color-green);border-color:#86bc2459}.ui-badge.status-inactive,.ui-badge.status-unknown{background:var(--color-gray-50);color:var(--color-gray-700);border-color:var(--color-gray-200)}.ui-badge.level-beginner{background:var(--color-primary-10);color:var(--color-primary);border-color:var(--color-primary-30)}.ui-badge.level-advanced{background:#86bc2424;color:var(--color-green);border-color:#86bc2459}.ui-badge.level-expert{background:#d20a111f;color:var(--color-red);border-color:#d20a1159}.ui-badge.level-unknown{background:var(--color-gray-50);color:var(--color-gray-700);border-color:var(--color-gray-200)}.ui-badge.conflict{background:#fef3c7;color:#92400e;border-color:#f59e0b}.admin-course-badge{line-height:1}.ui-input,.ui-select{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--color-gray-200);background:var(--color-surface);font-size:15px;color:var(--color-gray-900);transition:border-color .12s ease,box-shadow .12s ease}.ui-input:focus,.ui-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-10);outline:none}.ui-label{display:block;margin-bottom:6px;font-weight:700;color:var(--color-gray-900)}.ui-alert{border-radius:var(--radius-md);padding:12px 14px;border:1px solid transparent;background:var(--color-primary-10);color:var(--color-primary)}.ui-alert.success{background:#86bc2424;border-color:#86bc244d;color:var(--color-green)}.ui-alert.error{background:#d20a1114;border-color:#d20a114d;color:var(--color-red)}.section-header{margin-bottom:var(--space-4)}.section-header h1,.section-header h2{margin:0 0 var(--space-2);font-size:26px;color:var(--color-primary)}.section-header p{margin:0;color:var(--color-gray-700)}.login-card{max-width:440px;margin:var(--space-7) auto}.login-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);text-align:center}.login-brand img{max-height:64px;width:auto}.login-brand .tagline{color:var(--color-gray-700);font-weight:600}.home-hero{position:relative;background:var(--color-primary);color:var(--color-surface);padding:var(--space-7) 0}.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-6);align-items:center}.home-hero-copy{display:flex;flex-direction:column;gap:var(--space-3)}.home-hero-copy h1{margin:0;font-size:40px;line-height:var(--line-height-tight);color:var(--color-surface)}.home-eyebrow{margin:0;font-weight:700;color:var(--color-red);letter-spacing:.3px;text-transform:uppercase;font-size:12px}.home-subline{margin:0;color:var(--color-gray-50);max-width:560px}.home-hero-actions{display:inline-flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.home-hero .ui-btn-primary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-surface)}.home-hero .ui-btn-primary:hover:not(:disabled){background:var(--color-gray-50)}.home-link{color:var(--color-surface);font-weight:700}.home-link:hover{color:var(--color-primary-10)}.home-hero-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--color-primary-10)}.home-hero-media img{width:100%;height:100%;min-height:320px;display:block;object-fit:cover}.home-feature-grid,.home-course-grid,.home-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.home-section-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.home-section-header h2{margin:0;color:var(--color-primary);font-size:30px}.home-offer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.home-offer-card h3{margin:0 0 var(--space-2);color:var(--color-primary)}.home-qualification{background:var(--color-gray-50)}.home-qualification-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:center}.home-qualification-list{margin:var(--space-3) 0 0;padding-left:18px;color:var(--color-gray-700);display:grid;gap:var(--space-2)}.home-qualification-media{display:flex;justify-content:center}.home-qualification-placeholder{width:100%;min-height:240px;border-radius:var(--radius-lg);border:1px dashed var(--color-primary-30);background:var(--color-surface);color:var(--color-gray-500);display:flex;align-items:center;justify-content:center;font-weight:700}.home-cta-band{background:var(--color-primary-10);padding:var(--space-6) 0}.home-cta-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.home-cta-content p{margin:0;font-weight:700;color:var(--color-primary);font-size:20px}.home-category-section{background:var(--color-gray-50);padding:var(--space-7) 0}.home-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.home-category-card{display:flex;flex-direction:column;gap:var(--space-3);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.home-category-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-30)}.home-category-image{width:100%;height:160px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-primary-10)}.home-category-image img{width:100%;height:100%;object-fit:cover;display:block}.home-category-card h3{margin:0;color:var(--color-primary);font-size:18px}.home-course-card{cursor:pointer;border:1px solid var(--color-primary-10);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.home-course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-30)}.course-card-image{width:100%;height:160px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-primary-10);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.course-card-image img{width:100%;height:100%;object-fit:cover}.course-card-placeholder{color:var(--color-gray-500);font-weight:600}.public-courses-hero{background:var(--color-gray-50);padding:var(--space-7) 0}.public-courses-hero h1{margin:0 0 var(--space-2);color:var(--color-primary);font-size:36px}.public-courses-filter{padding:var(--space-4) 0}.public-courses-filter-row{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}.public-courses-list{padding:var(--space-4) 0 var(--space-7)}.public-courses-grid{display:flex;flex-direction:column;gap:var(--space-4)}.public-course-card{display:flex;justify-content:space-between;gap:var(--space-4);align-items:flex-start}.public-course-main{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.public-course-eyebrow{font-size:12px;text-transform:uppercase;color:var(--color-red);letter-spacing:.3px;font-weight:700}.public-course-title{margin:0;font-size:24px;color:var(--color-primary)}.public-course-meta{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-end;min-width:180px}.public-course-meta-item{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--color-gray-700)}.public-course-meta-icon{width:16px;height:16px;color:var(--color-primary)}.public-course-hero{background:var(--color-primary);color:var(--color-surface);padding:var(--space-7) 0}.public-course-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-6);align-items:center}.public-course-hero-copy h1{margin:0 0 var(--space-2);font-size:40px;color:var(--color-surface)}.public-course-lead{margin:0 0 var(--space-3);color:var(--color-gray-50)}.public-course-hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.public-course-hero .ui-btn-primary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-surface)}.public-course-hero .ui-btn-primary:hover:not(:disabled){background:var(--color-gray-50)}.public-course-hero-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--color-primary-10)}.public-course-hero-media img{width:100%;height:100%;min-height:280px;object-fit:cover;display:block}.public-course-info{padding:var(--space-6) 0}.public-course-info-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.public-course-info-item{background:var(--color-surface);border:1px solid var(--color-primary-10);border-radius:var(--radius-md);padding:var(--space-3);display:grid;gap:6px}.public-course-lists{padding:var(--space-6) 0;background:var(--color-gray-50)}.public-course-list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.public-course-list-block{background:var(--color-surface);border:1px solid var(--color-primary-10);border-radius:var(--radius-md);padding:var(--space-4)}.public-course-list-block h3{margin:0 0 var(--space-3);color:var(--color-primary)}.public-course-checklist{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}.public-course-checklist li{display:grid;grid-template-columns:18px 1fr;align-items:start;gap:var(--space-2);color:var(--color-gray-700)}.public-course-check-icon{color:var(--color-green);margin-top:2px}.public-course-cta{background:var(--color-primary-10);padding:var(--space-6) 0}.public-course-form{padding:var(--space-6) 0 var(--space-7);background:var(--color-gray-50)}.public-course-form-card{background:var(--color-surface);border:1px solid var(--color-primary-10);border-radius:var(--radius-lg);padding:var(--space-5);display:grid;gap:var(--space-3)}.public-course-form-card h3{margin:0;color:var(--color-primary)}.public-course-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.public-course-cta-title{margin:0 0 var(--space-2);font-size:20px;font-weight:700;color:var(--color-primary)}.admin-shell{display:flex;flex:1;min-height:0;height:100vh;background:var(--color-gray-50);overflow:hidden}.admin-sidenav{width:240px;flex-shrink:0;background:var(--color-primary);border-right:none;display:flex;flex-direction:column;overflow-y:auto;height:100%}.admin-sidenav-brand{display:flex;align-items:center;gap:10px;padding:16px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px;flex-shrink:0}.admin-sidenav-brand svg{flex-shrink:0}.admin-sidenav-brand-text{display:flex;flex-direction:column;line-height:1.2}.admin-sidenav-brand-title{font-weight:900;font-size:16px;color:#fff;letter-spacing:.05em}.admin-sidenav-brand-sub{font-size:10px;font-weight:500;color:#ffffff73;letter-spacing:.06em;text-transform:uppercase}.admin-sidenav-nav{flex:1;padding:6px 10px;display:flex;flex-direction:column;gap:1px}.admin-sidenav-footer{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.08);color:#ffffff59;font-size:11px;flex-shrink:0}.admin-sidenav-footer svg{flex-shrink:0}.admin-sidenav-footer-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--color-gray-50)}.admin-sidenav-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.admin-sidenav-group{margin-bottom:2px}.admin-sidenav-section-label{display:flex;align-items:center;gap:7px;padding:10px 8px 3px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffff4d}.admin-sidenav-section-label svg{flex-shrink:0;opacity:.4}.admin-sidenav-title{font-weight:700;color:var(--color-primary);margin-bottom:var(--space-2)}.admin-sidenav-items{display:flex;flex-direction:column;gap:1px}.admin-sidenav-link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);color:#fff9;font-size:13.5px;transition:background .1s ease,color .1s ease}.admin-sidenav-link svg{flex-shrink:0}.admin-sidenav-link:hover{background:#ffffff14;color:#ffffffe6}.admin-sidenav-link.active{background:#d20a1133;color:#fff;font-weight:600}.admin-sidenav-link.active svg{color:var(--color-red)}.admin-content{flex:1;display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.admin-content-topbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:56px;padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-primary-10);flex-shrink:0;box-shadow:0 1px 4px #001b370d}.admin-topbar-nav{display:flex;align-items:center;gap:var(--space-4)}.admin-topbar-link{font-size:14px;color:var(--color-gray-700);font-weight:500;transition:color .1s}.admin-topbar-link:hover{color:var(--color-primary)}.admin-topbar-actions{display:flex;align-items:center;gap:var(--space-3)}.admin-topbar-user{font-size:13px;color:var(--color-gray-500)}.admin-topbar-logout{font-size:13px;font-weight:600;color:var(--color-primary);background:none;border:1px solid var(--color-primary-10);border-radius:var(--radius-sm);padding:5px 12px;cursor:pointer;transition:background .1s}.admin-topbar-logout:hover{background:var(--color-primary-10)}.admin-content-body{flex:1;min-height:0;overflow-y:auto;background:transparent;border:none;border-radius:0;padding:var(--space-5);box-shadow:none}.calendar-event{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:12px;line-height:1.2}.calendar-event-compact{gap:2px}.calendar-event-title{font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-time{color:var(--color-gray-700);font-size:11px}.calendar-event-chips{display:flex;gap:4px;flex-wrap:wrap}.calendar-badge{font-size:11px;padding:4px 8px}.admin-sidenav-toggle{display:none}@media(max-width:900px){.admin-shell{flex-direction:column}.admin-sidenav{width:100%;height:auto}.admin-main{padding:0}.public-course-card{flex-direction:column;align-items:stretch}.public-course-meta{align-items:flex-start}}@media(max-width:1024px){.home-hero-grid{grid-template-columns:1fr}.home-offer-grid,.home-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-qualification-grid,.public-course-hero-grid{grid-template-columns:1fr}}.admin-page-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.admin-course-upload{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.admin-course-list-group{display:grid;gap:var(--space-2)}.admin-course-list-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.admin-course-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center}.admin-upload-button{cursor:pointer}.admin-upload-input{display:none}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.media-picker-tile{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-primary-10);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:left}.media-picker-tile img{width:100%;height:120px;object-fit:cover;border-radius:var(--radius-sm)}.media-picker-name{font-size:12px;color:var(--color-gray-700);word-break:break-word}.page{display:flex;flex-direction:column;gap:var(--space-5)}.ui-table,.ui-card table{width:100%;border-collapse:collapse;background:var(--color-surface);font-size:14px}.ui-table thead th,.ui-card table thead th{text-align:left;padding:10px 12px;background:#f8f9fa;border-bottom:1px solid #e5e7eb;color:#6b7280;font-weight:600;font-size:13px;letter-spacing:.5px;text-transform:uppercase}.ui-table tbody td,.ui-card table tbody td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.ui-table tbody tr:nth-child(2n),.ui-card table tbody tr:nth-child(2n){background:var(--color-surface)}.ui-table tbody tr:hover,.ui-card table tbody tr:hover{background:#fafbfc}.ui-table tbody tr:focus-within,.ui-card table tbody tr:focus-within{background:#f8f9fa;outline:1px solid #d1d5db}.ui-table td.table-actions,.ui-card table td.table-actions{text-align:right;padding-right:16px}.ui-table tbody td .ui-btn:not(.btn-lg):not(.btn-md),.ui-card table tbody td .ui-btn:not(.btn-lg):not(.btn-md){padding:5px 10px;font-size:12px;font-weight:500;min-height:auto}.ui-table tbody td img:not(.keep-size),.ui-card table tbody td img:not(.keep-size){max-width:40px;max-height:30px;object-fit:cover;border-radius:4px}.ui-table tbody td.table-actions>div,.ui-card table tbody td.table-actions>div{display:inline-flex;gap:4px}@media(max-width:768px){.ui-table,.ui-card table{font-size:12px}.ui-table thead th,.ui-card table thead th{padding:8px 10px;font-size:12px}.ui-table tbody td,.ui-card table tbody td{padding:8px 10px}}.home-section{margin:var(--space-6) 0}.home-accommodation{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4);align-items:center}.home-news-grid .ui-card{min-height:160px}@media(max-width:720px){.filters{grid-template-columns:1fr}.home-hero-copy h1{font-size:28px}.home-offer-grid,.home-category-grid{grid-template-columns:1fr}}.admin-category-thumb{width:56px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--color-primary-10)}.accommodation-timeline{min-height:380px;border-radius:var(--radius-md, 10px);overflow:hidden;border:1px solid var(--color-gray-200, #e5e7eb)}.accommodation-timeline .vis-panel.vis-left{border-right:1px solid #e5e7eb!important;min-width:140px!important;width:140px!important}.accommodation-timeline .vis-labelset .vis-label .vis-inner{padding:0!important;width:140px!important;min-width:140px!important;height:100%!important;box-sizing:border-box!important}.accommodation-timeline .vis-labelset .vis-label.vis-nesting-group .vis-inner{background:#f3f4f6!important}.accommodation-timeline .vis-labelset .vis-label{border-bottom:1px solid #f3f4f6!important}.accommodation-timeline .vis-item.vis-background.timeline-weekend{background:#00000006!important;border:none!important}.accommodation-timeline .vis-time-axis .vis-text.vis-minor.vis-weekend,.accommodation-timeline .vis-time-axis .vis-text.vis-major.vis-weekend{color:#9ca3af!important}.vis-current-time{background:#001b37!important;width:2px!important;opacity:.5!important}.accommodation-timeline .vis-time-axis .vis-text.vis-today{font-weight:700!important;color:#001b37!important;background:#001b370a!important}.accommodation-timeline .vis-time-axis .vis-text{font-size:11px!important;font-family:var(--font-family-base, "Raleway", sans-serif)!important;color:#374151!important}.accommodation-timeline .vis-time-axis.vis-major .vis-text{font-weight:600!important;color:#001b37!important;font-size:12px!important}.accommodation-timeline .vis-foreground .vis-group{min-height:40px!important}.accommodation-timeline .vis-item{height:26px!important;line-height:26px!important}.accommodation-timeline .vis-item .vis-item-content{padding:0 8px!important;font-size:11px!important;font-weight:500!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.accommodation-timeline .vis-panel.vis-center{cursor:cell}.accommodation-timeline .vis-time-axis .vis-grid.vis-minor{border-color:#f3f4f6!important}.accommodation-timeline .vis-time-axis .vis-grid.vis-major{border-color:#e5e7eb!important}.vis-item.booking{border-radius:4px!important;font-size:11px!important;font-weight:500!important;line-height:1!important;padding:0 8px!important;display:flex!important;align-items:center!important;gap:4px!important;cursor:pointer!important;transition:filter .1s ease!important;border-width:1px!important;border-style:solid!important}.vis-item.booking:hover{filter:brightness(.93)!important;z-index:10!important}.vis-item.booking.booking--reserved{background:#fef3c7!important;border-color:#f59e0b!important;color:#92400e!important}.vis-item.booking.booking--confirmed{background:#dbeafe!important;border-color:#3b82f6!important;color:#1e40af!important}.vis-item.booking.booking--checked-in{background:#d1fae5!important;border-color:#10b981!important;color:#065f46!important}.vis-item.booking.booking--checked-out{background:#f3f4f6!important;border-color:#9ca3af!important;color:#4b5563!important}.vis-item.booking.booking--cancelled{background:#fee2e2!important;border-color:#ef4444!important;color:#991b1b!important;text-decoration:line-through!important;opacity:.7!important}.vis-item.booking.booking--highlight{outline:2px solid #001b37!important;outline-offset:2px!important;z-index:20!important;animation:accommodation-highlight-pulse 1.2s ease-in-out infinite}.vis-item.vis-selected{box-shadow:0 2px 8px #001b372e!important;z-index:15!important}@keyframes accommodation-highlight-pulse{0%{box-shadow:0 0 0 2px #2563eb40}50%{box-shadow:0 0 0 4px #2563eb73}to{box-shadow:0 0 0 2px #2563eb40}}:root{font-family:var(--font-family-base);color:var(--color-gray-900);background:var(--color-gray-50);line-height:var(--line-height-base)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,var(--color-primary-10),var(--color-gray-50))}a{color:inherit;text-decoration:none}a:hover{color:var(--color-primary)}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.input,.select{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--color-gray-200);background:var(--color-surface);font-size:15px}.input:focus,.select:focus{outline:3px solid var(--color-primary-10);border-color:var(--color-primary)}.form{display:flex;flex-direction:column;gap:var(--space-3)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-weight:600;color:var(--color-gray-900)}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);background:linear-gradient(135deg,var(--color-primary-10),var(--color-gray-50)),var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-primary-30);box-shadow:var(--shadow-md)}.hero h1{margin:0 0 var(--space-3) 0;font-size:32px;line-height:var(--line-height-tight);color:var(--color-primary)}.hero p{margin:0 0 var(--space-4) 0;color:var(--color-gray-700);max-width:620px}.hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:700;border:1px solid transparent;cursor:pointer;transition:all .16s ease}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{background:var(--color-primary-80)}.btn-ghost{background:var(--color-surface);border-color:var(--color-gray-200);color:var(--color-gray-900)}.btn-ghost:hover{border-color:var(--color-primary-30);color:var(--color-primary)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card h3{margin:0 0 var(--space-2) 0;color:var(--color-primary)}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);font-weight:600;font-size:13px;background:var(--color-primary-10);color:var(--color-primary)}.badge.red{background:#d20a111f;color:var(--color-red)}.badge.green{background:#86bc251f;color:var(--color-green)}.list{display:flex;flex-direction:column;gap:var(--space-3)}.stat-card{display:flex;flex-direction:column;gap:var(--space-2);background:linear-gradient(150deg,var(--color-primary-10),var(--color-surface))}.stat-value{font-size:28px;font-weight:700;color:var(--color-primary)}.muted{color:var(--color-gray-500)}.modal-backdrop{position:fixed;inset:0;background:#00000040;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:9999}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:320px;max-width:calc(100vw - 2rem);width:auto;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-header,.modal-footer{padding:var(--space-4);border-bottom:1px solid var(--color-gray-200);display:flex;justify-content:space-between;align-items:center}.modal-footer{border-top:1px solid var(--color-gray-200);border-bottom:none}.modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);overflow:auto}@media(max-width:720px){.app-shell{padding:var(--space-5) var(--space-4)}.app-header{flex-direction:column;gap:var(--space-3);align-items:flex-start}.nav{width:100%;justify-content:space-between}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-50) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}
