*{box-sizing:border-box;margin:0;padding:0}body{color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box padding-box;border:2px solid #0000}input,button,select{font-family:inherit}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #0f172a}input:focus{outline:none}input:focus-visible{outline-offset:1px;outline:2px solid #0f172a}.skip-link{color:#fff;z-index:9999;background:#0f172a;border-radius:0 0 8px;padding:8px 16px;font-size:14px;font-weight:600;transition:top .2s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}button{transition:all .15s}button:active{transform:scale(.98)}tr:hover>td{background:#f8f9fb}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes loadSlide{0%{transform:translate(-100%)}to{transform:translate(350%)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}tr td[colspan]{animation:.2s fadeIn}mark,.search-highlight{background:#fef08a;border-radius:2px;padding:0}@media (width<=768px){.sidebar-desktop{display:none!important}.mobile-header{display:flex!important}.stats-grid-4,.stats-grid-5{grid-template-columns:repeat(2,1fr)!important}.stats-grid-3{grid-template-columns:1fr!important}.table-card{-webkit-overflow-scrolling:touch;overflow-x:auto}.room-grid{grid-template-columns:1fr!important}.day-row{grid-template-columns:1fr 1fr!important;gap:4px!important}.two-panel{flex-direction:column!important;height:auto!important}.list-panel{max-height:300px;width:100%!important;min-width:100%!important}.detail-panel{width:100%!important}.toolbar{flex-wrap:wrap!important}.login-left{display:none!important}.login-right{width:100%!important}}@media (width>=769px){.mobile-header{display:none!important}}.toast{z-index:9999;border-radius:10px;padding:12px 20px;font-size:13px;font-weight:500;animation:.3s toastIn,.3s 2.7s forwards toastOut;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #0000001f}.toast-success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.toast-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.toast-info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateY(20px)}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{opacity:.5;transform:scale(0)}40%{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes progress{0%{width:0%}50%{width:70%}to{width:100%}}@keyframes ripple{to{opacity:0;transform:scale(4)}}@keyframes glow{0%,to{box-shadow:0 0 5px #0f172a40}50%{box-shadow:0 0 20px #0f172a66}}.fade-enter{opacity:0;transform:translateY(10px)}.fade-enter-active{opacity:1;transition:all .3s;transform:translateY(0)}button:hover{box-shadow:0 4px 12px #0f172a1a}.interactive-card{transition:transform .2s,box-shadow .2s}.interactive-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a1a}@keyframes breathe{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 0 4px #10b98126}}@keyframes ticker{0%{transform:translate(100%)}to{transform:translate(-100%)}}@keyframes ringSweep{0%{stroke-dashoffset:283px}}@keyframes popIn{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes flipIn{0%{opacity:0;transform:rotateX(-90deg)}to{opacity:1;transform:rotateX(0)}}
