:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293b;--bg-header:#1e293b;--bg-row:#1e293b;--bg-row-alt:rgba(30,41,59,.6);--bg-hover:#334155;--bg-active:#475569;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-inverse:#0f172a;--accent-primary:#3b82f6;--accent-primary-hover:#2563eb;--accent-secondary:#8b5cf6;--accent-success:#10b981;--accent-warning:#f59e0b;--accent-danger:#ef4444;--accent-info:#06b6d4;--border-primary:#334155;--border-secondary:#475569;--border-light:#1e293b;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -2px rgba(0,0,0,.4);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.6),0 10px 10px -5px rgba(0,0,0,.3);--background:var(--bg-primary);--foreground:var(--text-primary);--admin-navbar-height:70px;--admin-content-padding:1rem 1.5rem}@media (max-width:768px){.application-detail-form{grid-template-columns:1fr!important}}html{min-height:100vh;min-height:100dvh;background-color:var(--bg-primary)}body,html{max-width:100vw;overflow-x:hidden}body{min-height:100vh;min-height:100dvh;color:var(--text-primary);background:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}html{scroll-behavior:smooth}.min-vh-100{min-height:100vh}.todo-viewer-scroll::-webkit-scrollbar{display:none}.admin-main-wrapper{min-height:100vh}.admin-content-area{padding:var(--admin-content-padding)}.bg-white{background-color:var(--bg-card)!important;color:var(--text-primary)!important}.bg-light{background-color:var(--bg-secondary)!important}.text-dark{color:var(--text-primary)!important}.text-muted{color:var(--text-muted)!important}.border{border-color:var(--border-primary)!important}.border-bottom{border-bottom-color:var(--border-primary)!important}.border-top{border-top-color:var(--border-primary)!important}.border-end{border-right-color:var(--border-primary)!important}.table{color:var(--text-primary);background-color:var(--bg-card)}.table th{font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border-primary);background-color:var(--bg-secondary)}.table td{vertical-align:middle;border-color:var(--border-primary)}.table-striped>tbody>tr:nth-of-type(odd)>td{background-color:var(--bg-secondary)}.table-hover>tbody>tr:hover>td{background-color:var(--bg-hover);color:var(--text-primary)}.table tbody tr,.table tbody tr td{background-color:var(--bg-card)!important;color:var(--text-primary)!important}.table tbody tr:hover,.table tbody tr:hover td{background-color:var(--bg-hover)!important}.table tbody tr:hover td{color:var(--text-primary)!important}.table tbody tr:nth-child(2n),.table tbody tr:nth-child(2n) td,.table tbody tr:nth-child(odd),.table tbody tr:nth-child(odd) td{background-color:var(--bg-card)!important}.table-bordered td,.table-bordered th{border-color:var(--border-primary)!important;color:var(--text-primary)}.table-bordered thead th{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important}.card{background-color:var(--bg-card);border:1px solid var(--border-primary);box-shadow:var(--shadow-md)}.card,.card-header{color:var(--text-primary)}.card-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);font-weight:600}.card-body{color:var(--text-primary)}.btn-outline-primary{border-color:var(--accent-primary);color:var(--accent-primary)}.btn-outline-primary:hover{background-color:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.btn-outline-secondary{border-color:var(--border-secondary);color:var(--text-secondary)}.btn-outline-secondary:hover{background-color:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.btn-primary{background-color:var(--accent-primary);border-color:var(--accent-primary)}.btn-primary:hover{background-color:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.form-control{border-color:var(--border-primary)}.form-control,.form-control:focus{background-color:var(--bg-secondary);color:var(--text-primary)}.form-control:focus{border-color:var(--accent-primary);box-shadow:0 0 0 .2rem rgba(59,130,246,.25)}.form-select{border-color:var(--border-primary)}.form-select,.form-select:focus{background-color:var(--bg-secondary);color:var(--text-primary)}.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 .2rem rgba(59,130,246,.25)}.form-label{color:var(--text-secondary)}.btn-group .btn{background-color:var(--bg-secondary);border-color:var(--border-primary);color:var(--text-primary)}.btn-group .btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.btn-group .btn.btn-primary{background-color:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.btn-group .btn.btn-primary:hover:not(:disabled){background-color:var(--accent-primary-hover);border-color:var(--accent-primary-hover);color:#fff}.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem}.badge{font-weight:500;padding:.35em .65em}.bg-danger{background-color:var(--accent-danger)!important}.landing-page-root{min-height:100vh;min-height:100dvh;width:100%;display:flex;flex-direction:column;background-color:var(--bg-primary);background-image:linear-gradient(180deg,var(--bg-primary) 0,var(--bg-secondary) 50%,var(--bg-secondary) 100%);background-repeat:no-repeat}.text-purple{color:var(--accent-secondary)!important}.bg-purple{background-color:var(--accent-secondary)!important}.cta-book-appointment{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.875rem 1.5rem;font-weight:600;font-size:1rem;color:#fff!important;background:var(--accent-primary);border:none;border-radius:.75rem;box-shadow:0 0 20px rgba(59,130,246,.5),0 4px 14px 0 rgba(59,130,246,.4);transition:transform .2s ease,box-shadow .2s ease;animation:cta-zoom-pulse 2s ease-in-out infinite,cta-glow-pulse 2s ease-in-out infinite;-webkit-tap-highlight-color:transparent;touch-action:manipulation;text-decoration:none!important}.cta-book-appointment:hover{color:#fff!important}@media (hover:hover) and (pointer:fine){.cta-book-appointment:focus-visible,.cta-book-appointment:hover{transform:scale(1.05);box-shadow:0 0 28px rgba(59,130,246,.7),0 6px 20px 0 rgba(59,130,246,.5)}}.cta-book-appointment:active{transform:scale(.98)}@media (max-width:576px){.cta-book-appointment{min-height:52px;padding:1rem 1.25rem;width:100%;max-width:320px}}@media (prefers-reduced-motion:reduce){.cta-book-appointment{animation:none}}@keyframes cta-zoom-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes cta-glow-pulse{0%,to{box-shadow:0 0 20px rgba(59,130,246,.5),0 4px 14px 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 32px rgba(59,130,246,.7),0 4px 18px 0 rgba(59,130,246,.5)}}.cta-participate{position:relative;overflow:hidden;min-height:48px;padding:.875rem 1.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:1rem;color:#fff!important;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);border:none;border-radius:.75rem;box-shadow:0 4px 14px 0 rgba(59,130,246,.4);transition:transform .2s ease,box-shadow .2s ease,background .2s ease;animation:cta-enter .4s ease-out both;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.cta-participate:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);animation:cta-shimmer 1.5s ease-in-out infinite}.cta-participate .cta-icon-check{flex-shrink:0}.cta-participate .cta-icon-arrow{flex-shrink:0;animation:cta-arrow-bounce 1s ease-in-out infinite}.cta-participate{animation:cta-enter .4s ease-out both,cta-pulse-glow 1.2s ease-in-out .4s infinite}@media (hover:hover) and (pointer:fine){.cta-participate:focus-visible,.cta-participate:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 8px 24px 0 rgba(59,130,246,.5)}}.cta-participate:active{transform:translateY(0) scale(.98)}@media (max-width:576px){.cta-participate{min-height:52px;padding:1rem 1.25rem;font-size:1rem;width:100%;max-width:320px;margin:0 auto}}@media (prefers-reduced-motion:reduce){.cta-participate .cta-icon-arrow,.cta-participate:before{animation:none}.cta-participate{animation:cta-enter .3s ease-out both}}@keyframes cta-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes cta-shimmer{0%{left:-100%}50%{left:100%}to{left:100%}}@keyframes cta-arrow-bounce{0%,to{transform:translateX(0)}50%{transform:translateX(4px)}}@keyframes cta-pulse-glow{0%,to{box-shadow:0 4px 14px 0 rgba(59,130,246,.4)}50%{box-shadow:0 6px 20px 0 rgba(59,130,246,.55)}}.landing-footer{margin-top:auto;background:linear-gradient(180deg,var(--bg-secondary) 0,#0f172a 100%);border-top:1px solid var(--border-primary);color:var(--text-secondary)}.landing-footer a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease,transform .2s ease}.landing-footer a:hover{color:var(--accent-primary)}.landing-footer-logo{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);display:flex;align-items:center;justify-content:center;font-size:1.125rem}.landing-footer-brand{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.landing-footer-desc{font-size:.9rem;line-height:1.6;max-width:320px;margin-bottom:1.25rem;color:var(--text-muted)}.landing-footer-heading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:1rem}.landing-footer-links li{margin-bottom:.5rem}.landing-footer-links a{font-size:.9rem}.landing-footer-sns{display:flex;gap:.5rem}.landing-footer-sns-link{width:40px;height:40px;border-radius:10px;background:var(--bg-tertiary);border:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center;font-size:1.125rem;color:var(--text-secondary)!important;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.landing-footer-sns-link:hover{background:var(--accent-primary);color:#fff!important;border-color:var(--accent-primary);transform:translateY(-2px)}.landing-footer-bottom{border-top:1px solid var(--border-primary)}.landing-footer-copy{font-size:.85rem;color:var(--text-muted)}.landing-footer-legal{font-size:.85rem;color:var(--text-muted)!important}.landing-footer-legal:hover{color:var(--accent-primary)!important}@media (max-width:768px){.landing-footer .container{padding-left:1rem;padding-right:1rem}.landing-footer-desc{max-width:100%}.landing-footer-sns-link{width:44px;height:44px}}.landing-steps-section{padding-top:2.5rem!important;padding-bottom:2.5rem!important;background-color:var(--bg-secondary)}.landing-steps-section .container{max-width:100%;padding-left:1rem;padding-right:1rem}.landing-steps-grid{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;max-width:100%;margin:0 auto}.landing-step-card{flex:0 0 120px;max-width:140px;background:linear-gradient(145deg,var(--bg-card) 0,rgba(30,41,59,.95) 100%);border:1px solid var(--border-primary);border-radius:.75rem;padding:.85rem;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.04);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.landing-step-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent-primary) 0,var(--accent-secondary) 100%);border-radius:3px 0 0 3px}.landing-step-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(59,130,246,.15),0 2px 8px rgba(0,0,0,.25);border-color:rgba(59,130,246,.3)}.landing-step-badge{position:absolute;top:.5rem;right:.5rem;width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-secondary) 100%);color:#fff;font-size:.65rem;font-weight:700;box-shadow:0 2px 6px rgba(59,130,246,.4)}.landing-step-badge,.landing-step-icon{display:flex;align-items:center;justify-content:center}.landing-step-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,rgba(59,130,246,.25),rgba(139,92,246,.15));border:1px solid rgba(59,130,246,.2);font-size:1.15rem;color:var(--accent-primary);margin-bottom:.6rem}.landing-step-title{font-size:.85rem;font-weight:700;color:var(--text-primary);margin-bottom:.2rem;letter-spacing:.02em}.landing-step-desc{font-size:.7rem;color:var(--text-secondary);line-height:1.4;margin:0}@media (max-width:576px){.landing-steps-grid{gap:.6rem}.landing-step-card{flex:1 1 95px;max-width:none;padding:.65rem}.landing-step-card:before{width:2px}.landing-step-icon{width:32px;height:32px;font-size:1rem}.landing-step-title{font-size:.78rem}.landing-step-desc{font-size:.65rem}}.navbar{border-color:var(--border-primary)!important}.navbar,.navbar-light{background-color:var(--bg-card)!important}.navbar-brand{color:var(--text-primary)!important}body.application-light-theme{background-color:#f8f9fa!important;color:#1f2937!important}body.application-light-theme .card,body.application-light-theme .card-body,body.application-light-theme .card-header{background-color:#fff!important;color:#1f2937!important;border-color:#e5e7eb!important}body.application-light-theme .card-header{background-color:#f8fafc!important}body.application-light-theme .form-control,body.application-light-theme .form-control:focus{background-color:#fff!important;border-color:#d1d5db!important;color:#1f2937!important}body.application-light-theme input[type=tel],body.application-light-theme input[type=text],body.application-light-theme textarea.form-control{text-transform:uppercase}body.application-light-theme input[type=email]{text-transform:none}body.application-light-theme .form-label,body.application-light-theme .text-muted{color:#6b7280!important}body.application-light-theme .navbar,body.application-light-theme .navbar-light{background-color:#fff!important;border-color:#e5e7eb!important}body.application-light-theme .navbar-brand,body.application-light-theme .navbar-brand *{color:#1e3a8a!important}body.application-light-theme .btn-outline-secondary{background-color:transparent!important;color:#374151!important;border-color:#d1d5db!important}body.application-light-theme .badge.bg-primary{background-color:#2563eb!important;color:#fff!important}body.application-light-theme .input-group-text{background-color:#f3f4f6!important;border-color:#d1d5db!important;color:#374151!important}body.application-light-theme .visa-form-page input[type=date],body.application-light-theme .visa-form-page input[type=number],body.application-light-theme .visa-form-page input[type=tel],body.application-light-theme .visa-form-page input[type=text],body.application-light-theme .visa-form-page select.form-select,body.application-light-theme .visa-form-page textarea.form-control{text-transform:none!important;font-size:.9375rem}body.application-light-theme .visa-form-page .visa-section-card{border-radius:.5rem;border:1px solid #e2e8f0!important;box-shadow:0 1px 3px rgba(15,23,42,.06)!important;overflow:hidden}body.application-light-theme .visa-form-page .visa-section-card .card-header{background:linear-gradient(180deg,#f8fafc,#f1f5f9)!important;border-bottom:1px solid #e2e8f0!important;font-size:.95rem;letter-spacing:.01em;padding:.875rem 1rem}@media (max-width:576px){body.application-light-theme .visa-form-page .visa-section-card .card-header{padding:.75rem .875rem;font-size:.875rem}body.application-light-theme .visa-form-page .visa-section-card .card-body{padding:.875rem!important}}body.application-light-theme .visa-form-page .visa-field-hint{font-size:.8125rem;color:#64748b!important;line-height:1.45;margin-bottom:.5rem}body.application-light-theme .visa-form-page .visa-applicant-banner{background:linear-gradient(135deg,#eff6ff,#e0f2fe)!important;border:1px solid #bfdbfe!important;border-radius:.5rem}body.application-light-theme .visa-form-page .visa-navbar{box-shadow:0 1px 0 #e5e7eb}.dropdown-menu{background-color:var(--bg-card);border-color:var(--border-primary);box-shadow:var(--shadow-lg)}.dropdown-item,.dropdown-item:hover{color:var(--text-primary)}.dropdown-item:hover{background-color:var(--bg-hover)}.dropdown-item.active{background-color:var(--accent-primary);color:#fff}.modal-content{background-color:var(--bg-card);border-color:var(--border-primary);color:var(--text-primary)}.modal-header{border-bottom-color:var(--border-primary)}.modal-footer{border-top-color:var(--border-primary)}.list-group-item{background-color:var(--bg-card);border-color:var(--border-primary);color:var(--text-primary)}.list-group-item.active{background-color:var(--accent-primary);border-color:var(--accent-primary)}.alert{border-color:var(--border-primary)}.alert-primary{background-color:rgba(59,130,246,.1);border-color:var(--accent-primary);color:var(--accent-primary)}.spinner-border{border-color:var(--text-muted);border-right-color:transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--bg-active)}.admin-sidebar-nav{scrollbar-width:none;-ms-overflow-style:none}.admin-sidebar-nav::-webkit-scrollbar{display:none}.admin-navbar-actions{scrollbar-width:none;-ms-overflow-style:none}.admin-navbar-actions::-webkit-scrollbar{display:none}@media (max-width:768px){body{font-size:14px}.container{padding-left:1rem;padding-right:1rem}.card{margin-bottom:1rem}.btn{padding:.5rem 1rem}.btn,.table{font-size:.875rem}.table td,.table th{padding:.5rem}.modal-dialog{margin:.5rem}.modal-content{border-radius:.5rem}}@media (max-width:576px){body{font-size:13px}.container{padding-left:.75rem;padding-right:.75rem}.btn{padding:.375rem .75rem;font-size:.8125rem}.card-body{padding:1rem}.table{font-size:.8125rem}.table td,.table th{padding:.375rem}}.booking-page #booking-form{scroll-margin-top:1rem}.booking-main .booking-grid-wrapper{max-width:100%;-webkit-overflow-scrolling:touch}.booking-grid{table-layout:fixed;min-width:600px;font-size:.8rem}.booking-grid td,.booking-grid th{border-color:var(--border-primary)!important;vertical-align:middle}.booking-grid-time{width:72px;min-width:72px;font-weight:600;color:var(--text-muted)}.booking-grid-day{min-width:70px;font-weight:600;color:var(--text-secondary)}.booking-slot{min-height:44px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;font-weight:500;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.booking-slot:disabled{cursor:not-allowed}.booking-slot-available{background:rgba(59,130,246,.2);color:var(--accent-primary);border:1px solid rgba(59,130,246,.35)}.booking-slot-available:hover:not(:disabled){background:rgba(59,130,246,.35);transform:scale(1.02)}.booking-slot-booked{background:var(--bg-tertiary);color:var(--text-muted)}.booking-slot-selected{background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary)}.booking-slot-past{background:var(--bg-secondary);color:var(--text-muted)}.booking-slot-break,.booking-slot-off{background:var(--bg-tertiary);color:var(--text-muted)}.booking-mobile-picker{width:100%}.booking-mobile-days{-webkit-overflow-scrolling:touch;scrollbar-width:none}.booking-mobile-days::-webkit-scrollbar{display:none}.booking-mobile-day-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.booking-mobile-times .booking-slot{min-height:48px;font-size:.9375rem}@media (max-width:991.98px){.booking-sidebar{margin-bottom:0}.booking-grid{min-width:520px}.booking-grid-time{width:64px;min-width:64px}.booking-grid-day{min-width:60px}.booking-slot{min-height:44px;padding:.5rem .25rem!important;font-size:.7rem}}@media (max-width:576px){.booking-main .container-fluid{padding-left:.5rem;padding-right:.5rem}.booking-sidebar .card-body{padding:1rem}.booking-grid{min-width:480px;font-size:.75rem}.booking-grid-time{width:56px;min-width:56px}.booking-grid-day{min-width:52px}.booking-slot{min-height:44px;padding:.4rem .2rem!important;font-size:.65rem}.cta-book-appointment.btn{min-height:48px}}