.main-layout{min-height:100vh;background:#f0f2f5}.main-sider{overflow:auto;height:100vh;position:fixed;left:0;top:0;bottom:0;background:#fff;box-shadow:2px 0 8px #0000000f}.main-sider .logo{height:64px;display:flex;align-items:center;justify-content:center;padding:16px;background:#fff;border-bottom:1px solid #f0f0f0;margin-bottom:0}.main-header{background:#fff;padding:0 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000000f;border-bottom:1px solid #f0f0f0}.header-content{display:flex;align-items:center;justify-content:flex-end;flex:1;margin-left:auto}.mobile-menu-button{font-size:18px}.logout-button:hover{background:#f5f5f5}.main-content{margin:24px;padding:24px;background:#fff;min-height:calc(100vh - 112px);border-radius:8px;box-shadow:0 2px 8px #0000000f}@media (max-width: 768px){.main-content{margin:16px;padding:16px;min-height:calc(100vh - 80px)}.main-header{padding:0 16px}}@media (min-width: 769px){.main-content-layout{transition:margin-left .2s}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5;padding:20px}.login-card{width:100%;max-width:400px;box-shadow:0 2px 8px #0000000f;border-radius:8px}@media (max-width: 768px){.login-card{max-width:100%}}.welcome-container{padding:16px;max-width:1200px;margin:0 auto}.welcome-header{margin-bottom:24px;text-align:center}.welcome-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.action-card{display:flex;align-items:center;justify-content:center;min-height:120px;transition:transform .2s,box-shadow .2s}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.action-button{height:60px;font-size:18px;font-weight:500}.walk-in-card .ant-card-body,.qr-card .ant-card-body{padding:24px}@media (max-width: 768px){.welcome-container{padding:12px}.welcome-actions{grid-template-columns:1fr;gap:12px}.action-card{min-height:100px}.action-button{height:56px;font-size:16px}.welcome-header{margin-bottom:16px}.welcome-header .ant-typography{margin-bottom:8px!important}}#qr-reader{width:100%}#qr-reader__dashboard{margin-bottom:16px}#qr-reader__camera_selection{margin-bottom:8px}@media (max-width: 768px){.ant-modal{margin:10px}.ant-modal-content{padding:16px}.ant-descriptions-item-label{font-weight:600}}.appointments-container{min-height:100vh;background:#f0f2f5;padding:16px}.appointments-loading{display:flex;justify-content:center;align-items:center;min-height:100vh}.appointments-header{display:flex;justify-content:flex-end;margin-bottom:16px}.logout-button{color:#595959}.appointments-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.status-card{width:100%}.status-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.status-info{display:flex;align-items:center;gap:16px;flex:1}.status-icon{font-size:48px}.status-icon.active{color:#52c41a}.status-icon.inactive{color:#ff4d4f}.status-text{display:flex;flex-direction:column;gap:4px}.status-title{margin:0!important;font-size:32px}.status-subtitle{font-size:16px}.status-switch{min-width:60px}.appointments-list-card{width:100%}.appointments-list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.empty-appointments{text-align:center;padding:40px 0}.appointment-item{padding:16px!important;border-radius:8px;margin-bottom:8px;background:#fff;border:1px solid #f0f0f0;transition:all .3s}.appointment-item:hover{box-shadow:0 2px 8px #0000001a}.appointment-item.past{opacity:.6;background:#fafafa}@media (max-width: 768px){.appointments-container{padding:12px}.status-content{flex-direction:column;align-items:flex-start}.status-info{width:100%;flex-direction:column;align-items:flex-start;gap:12px}.status-icon{font-size:40px}.status-title{font-size:24px!important}.status-subtitle{font-size:14px}.status-switch{width:100%;display:flex;justify-content:flex-end}.appointments-list-header{flex-direction:column;align-items:flex-start}.appointment-item{padding:12px!important}.appointment-item .ant-list-item-meta-title{font-size:16px}.appointment-item .ant-list-item-meta-description{font-size:14px}}@media (max-width: 480px){.appointments-container{padding:8px}.status-title{font-size:20px!important}.status-icon{font-size:36px}.appointment-item{padding:10px!important}}*{box-sizing:border-box}body{margin:0;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;background:#f0f2f5}#root{min-height:100vh;background:#f0f2f5}
