#app{width:100%;max-width:100%;height:100vh;height:100dvh;overflow-x:hidden;overflow-x:clip}*{margin:0;padding:0;box-sizing:border-box}:root{--app-bg: #f5f7fb;--app-surface: #ffffff;--app-primary: #4f7cff;--app-text: #0f1115;--app-text-secondary: #666666;--app-text-muted: #999999;--app-border: rgba(15, 17, 21, .06);--app-search-bg: #e9ecf4;--app-danger: #e53935}html,body{width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--app-bg)}html[data-theme=dark]{--app-bg: #1a1a1a;--app-surface: #363636;--app-text: #e0e0e0;--app-text-secondary: #b0b0b0;--app-text-muted: #888888;--app-border: rgba(255, 255, 255, .08);--app-search-bg: #404040;color-scheme:dark}html[data-theme=dark],html[data-theme=dark] body{background:#1a1a1a}#app{width:100%;max-width:100%;height:100vh;height:100dvh;overflow-x:hidden;background:var(--app-bg)}@media (max-width: 768px){:root{--app-bg: #f5f7fb;--app-surface: #ffffff;--app-surface-muted: #f5f5f5;--app-primary: #4f7cff;--app-text: #0f1115;--app-text-secondary: #666666;--app-text-muted: #999999;--app-border: rgba(15, 17, 21, .06);--app-search-bg: #e9ecf4;--app-danger: #e53935}html[data-theme=dark]{--app-bg: #1a1a1a;--app-surface: #363636;--app-surface-muted: #2d2d2d;--app-text: #e0e0e0;--app-text-secondary: #b0b0b0;--app-text-muted: #888888;--app-border: rgba(255, 255, 255, .08);--app-search-bg: #404040}html,body,#app{overflow-x:clip;max-width:100%;background:var(--app-bg)}body,#app,.user-layout,.mobile-view,.mobile-tab-shell,.mobile-tab-body,.mobile-channel-tab,.sidebar-room-list,.group-view,.favorites-view,.room-item-wrapper,.room-item,.room-name,.room-preview,.message-item-wrapper{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable=true],.search-input,.tag-input,.room-detail .message-content{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]):not([type=image]):not([type=range]),textarea,select,.search-input,.input,.date-input,.type-select,.tag-input,.captcha-input{font-size:16px!important}.sidebar-room-list,.messages-container,.mobile-me-tab,.tag-panels,.favorites-swiper{background-color:var(--app-bg);overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}html[data-theme=dark],html[data-theme=dark] body,html[data-theme=dark] #app{background:var(--app-bg)}html[data-theme=dark] .user-layout,html[data-theme=dark] .mobile-view,html[data-theme=dark] .mobile-tab-shell,html[data-theme=dark] .mobile-tab-body,html[data-theme=dark] .mobile-channel-tab,html[data-theme=dark] .sidebar-room-list,html[data-theme=dark] .room-list-body{background-color:var(--app-bg)}}@media (max-width: 768px){.admin-layout.is-mobile{--admin-mobile-bg: var(--app-bg, #f5f7fb);--admin-mobile-surface: var(--app-surface, #ffffff);--admin-mobile-primary: var(--app-primary, #2196f3);--admin-mobile-text: var(--app-text, #0f1115);--admin-mobile-text-secondary: var(--app-text-secondary, #666666);--admin-mobile-border: var(--app-border, rgba(15, 17, 21, .06));background:var(--admin-mobile-bg)}.admin-layout.is-mobile .admin-main{margin-left:0;width:100%;min-width:0}.admin-layout.is-mobile .admin-header{display:none}.admin-layout.is-mobile .admin-content{min-height:calc(100vh - 52px - env(safe-area-inset-top));background:var(--admin-mobile-bg)}.admin-layout.is-mobile .admin-content-fill{height:calc(100vh - 52px - env(safe-area-inset-top))}.admin-layout.is-mobile .page-header,.admin-layout.is-mobile .dash-header,.admin-layout.is-mobile .admin-dashboard .section-head-wrap{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.admin-layout.is-mobile .page-header h1,.admin-layout.is-mobile .dash-header h1{font-size:20px;margin:0}.admin-layout.is-mobile .header-right,.admin-layout.is-mobile .search-right,.admin-layout.is-mobile .filter-right{width:100%;flex-wrap:wrap;gap:8px}.admin-layout.is-mobile .search-bar,.admin-layout.is-mobile .filter-bar,.admin-layout.is-mobile .filter-bar .filter-left{flex-direction:column;align-items:stretch;padding:0 16px 12px;gap:10px}.admin-layout.is-mobile .search-left{flex-direction:column;align-items:stretch;width:100%;gap:8px}.admin-layout.is-mobile .search-input,.admin-layout.is-mobile .form-input,.admin-layout.is-mobile .form-textarea,.admin-layout.is-mobile .days-input,.admin-layout.is-mobile .date-input{width:100%;max-width:none;font-size:16px;box-sizing:border-box}.admin-layout.is-mobile .btn-green,.admin-layout.is-mobile .btn-search,.admin-layout.is-mobile .btn-gray,.admin-layout.is-mobile .btn-primary,.admin-layout.is-mobile .btn-secondary{min-height:40px}.admin-layout.is-mobile .menu-icon{display:none}.admin-layout.is-mobile .modal-overlay{padding:0;align-items:stretch;z-index:14500}.admin-layout.is-mobile .modal-content,.admin-layout.is-mobile .modal-panel,.admin-layout.is-mobile .modal-panel-md,.admin-layout.is-mobile .tag-editor-modal{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;margin:0}.admin-layout.is-mobile .modal-header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.admin-layout.is-mobile .modal-header h3{font-size:16px;line-height:1.4;padding-right:8px}.admin-layout.is-mobile .modal-body{padding:16px}.admin-layout.is-mobile .modal-actions,.admin-layout.is-mobile .modal-footer{flex-wrap:wrap;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.admin-layout.is-mobile .modal-actions button,.admin-layout.is-mobile .modal-footer button{flex:1;min-width:120px}.admin-layout.is-mobile .details-body .info-row,.admin-layout.is-mobile .room-info-section .info-row,.admin-layout.is-mobile .crm-form-grid,.admin-layout.is-mobile .crm-form-grid-2,.admin-layout.is-mobile .crm-form-grid-3,.admin-layout.is-mobile .crm-quota-cards{grid-template-columns:1fr!important}.admin-layout.is-mobile .send-message-layout,.admin-layout.is-mobile .batch-create-layout,.admin-layout.is-mobile .batch-course-limit-modal{flex-direction:column}.admin-layout.is-mobile .settings-content{padding:12px 16px}.admin-layout.is-mobile .settings-card{padding:16px}.admin-layout.is-mobile .admin-guide-page .guide-frame{min-height:calc(100vh - 52px - env(safe-area-inset-top))}.admin-layout.is-mobile .admin-announcement-overlay{padding:16px;align-items:flex-end}.admin-layout.is-mobile .admin-announcement-modal{max-height:85vh;border-radius:12px 12px 0 0}.admin-mobile-page{min-height:100%;background:var(--admin-mobile-bg, #f5f7fb);padding-bottom:env(safe-area-inset-bottom)}.admin-mobile-page-header{padding:12px 16px;background:var(--admin-mobile-surface, #fff);border-bottom:1px solid var(--admin-mobile-border)}.admin-mobile-page-header h1{margin:0;font-size:20px;font-weight:600;color:var(--admin-mobile-text)}.admin-mobile-page-sub{margin:4px 0 0;font-size:13px;color:var(--admin-mobile-text-secondary)}.admin-mobile-toolbar{display:flex;flex-direction:column;gap:10px;padding:12px 16px;background:var(--admin-mobile-surface, #fff);border-bottom:1px solid var(--admin-mobile-border)}.admin-mobile-toolbar-row{display:flex;gap:8px;flex-wrap:wrap}.admin-mobile-search{flex:1;min-width:0;padding:10px 12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;background:#fff}.admin-mobile-btn{padding:10px 14px;border:none;border-radius:8px;font-size:14px;cursor:pointer;white-space:nowrap}.admin-mobile-btn-primary{background:var(--admin-mobile-primary, #2196f3);color:#fff}.admin-mobile-btn-secondary{background:#f0f0f0;color:#333}.admin-mobile-btn-danger{background:#ffebee;color:#c62828}.admin-mobile-list{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.admin-mobile-card{background:var(--admin-mobile-surface, #fff);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--admin-mobile-border)}.admin-mobile-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}.admin-mobile-card-title{font-size:16px;font-weight:600;color:var(--admin-mobile-text);word-break:break-all}.admin-mobile-card-sub{font-size:13px;color:#999;margin-top:4px}.admin-mobile-card-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--admin-mobile-text-secondary);margin-bottom:10px}.admin-mobile-card-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-mobile-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.admin-mobile-badge-success{background:#e8f5e9;color:#2e7d32}.admin-mobile-badge-danger{background:#ffebee;color:#c62828}.admin-mobile-badge-muted{background:#f5f5f5;color:#666}.admin-mobile-badge-info{background:#e3f2fd;color:#1565c0}.admin-mobile-empty{text-align:center;padding:48px 16px;color:#999;font-size:14px}.admin-mobile-action-sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:12000;display:flex;align-items:flex-end;justify-content:center}.admin-mobile-action-sheet-panel{width:100%;max-width:480px;background:#f5f5f5;border-radius:12px 12px 0 0;padding:8px 8px max(8px,env(safe-area-inset-bottom))}.admin-mobile-action-sheet-title{text-align:center;padding:12px;font-size:13px;color:#999}.admin-mobile-action-item,.admin-mobile-action-cancel{display:block;width:100%;padding:14px;border:none;background:#fff;font-size:16px;color:#333;cursor:pointer;border-radius:10px;margin-bottom:6px}.admin-mobile-action-item.danger{color:#c62828}.admin-mobile-action-item.disabled{opacity:.45;cursor:not-allowed}.admin-mobile-action-cancel{font-weight:600;margin-top:4px}.admin-mobile-full-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:11000;background:var(--admin-mobile-bg, #f5f7fb);display:flex;flex-direction:column}.admin-mobile-full-sheet-header{display:flex;align-items:center;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:#fff;border-bottom:1px solid var(--admin-mobile-border);flex-shrink:0}.admin-mobile-back-btn{border:none;background:none;color:var(--admin-mobile-primary, #2196f3);font-size:16px;padding:6px 4px;cursor:pointer;flex-shrink:0}.admin-mobile-full-sheet-title{flex:1;margin:0;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-full-sheet-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px}.admin-mobile-full-sheet-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--admin-mobile-border);display:flex;gap:10px}.admin-mobile-detail-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0f0f0;font-size:14px}.admin-mobile-detail-row:last-child{border-bottom:none}.admin-mobile-detail-label{color:#999;flex-shrink:0}.admin-mobile-detail-value{color:#333;text-align:right;word-break:break-all}.admin-mobile-form-group{margin-bottom:16px}.admin-mobile-form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#555}.admin-mobile-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}.admin-mobile-tabs::-webkit-scrollbar{display:none}.admin-mobile-tab{flex-shrink:0;padding:8px 14px;border:1px solid var(--admin-mobile-border);border-radius:999px;background:#fff;font-size:13px;color:#666;cursor:pointer}.admin-mobile-tab.active{background:#e3f2fd;border-color:#90caf9;color:#1565c0;font-weight:600}.admin-mobile-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.admin-mobile-mini-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.admin-mobile-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-size:14px}.admin-mobile-step-bar{display:flex;gap:8px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--admin-mobile-border)}.admin-mobile-step{flex:1;text-align:center;padding:8px 4px;border-radius:8px;font-size:13px;color:#999;background:#f5f5f5}.admin-mobile-step.active{background:#e3f2fd;color:#1565c0;font-weight:600}.admin-mobile-step.done{background:#e8f5e9;color:#2e7d32}.admin-sheet-fade-enter-active,.admin-sheet-fade-leave-active{transition:opacity .2s ease}.admin-sheet-fade-enter-from,.admin-sheet-fade-leave-to{opacity:0}.admin-sheet-slide-enter-active,.admin-sheet-slide-leave-active{transition:transform .25s ease}.admin-sheet-slide-enter-from,.admin-sheet-slide-leave-to{transform:translateY(100%)}}.admin-mobile-topbar{display:none}@media (max-width: 768px){.admin-layout.is-mobile .admin-mobile-topbar{display:flex;align-items:center;gap:10px;height:52px;padding:0 12px;padding-top:env(safe-area-inset-top);background:#fff;border-bottom:1px solid rgba(15,17,21,.06);position:sticky;top:0;z-index:900}.admin-layout.is-mobile .admin-sidebar,.admin-layout.is-mobile .sidebar-toggle{display:none}.admin-layout.is-mobile .admin-mobile-menu-btn{width:40px;height:40px;border:none;border-radius:8px;background:#f5f5f5;font-size:20px;cursor:pointer;flex-shrink:0}.admin-layout.is-mobile .admin-mobile-topbar-title{flex:1;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-layout.is-mobile .admin-mobile-topbar-user{font-size:13px;color:#666;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-layout.is-mobile .admin-mobile-logout-btn{padding:6px 10px;border-radius:14px;border:1px solid #e57373;background:#ffebee;color:#c62828;font-size:12px;cursor:pointer;flex-shrink:0}.admin-layout.is-mobile .admin-mobile-menu-btn.is-open{background:#e3f2fd;color:#1565c0}.admin-mobile-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:15000;touch-action:none}.admin-mobile-drawer{position:fixed;left:0;top:0;bottom:0;width:min(280px,85vw);max-width:100%;background:#fff;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom);box-shadow:4px 0 20px #0000001f}.admin-mobile-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;padding-top:max(16px,env(safe-area-inset-top));border-bottom:1px solid #eee;flex-shrink:0}.admin-mobile-drawer-header-text h2{margin:0;font-size:18px;color:#333}.admin-mobile-drawer-close{width:36px;height:36px;border:none;border-radius:8px;background:#f5f5f5;color:#666;font-size:22px;line-height:1;cursor:pointer;flex-shrink:0}.admin-mobile-drawer-nav{flex:1;min-height:0}.admin-mobile-drawer-nav .nav-item,.admin-mobile-drawer-nav .nav-sub-item{display:block;padding:12px 16px;color:#666;text-decoration:none}.admin-mobile-drawer-nav .nav-sub-item{padding-left:32px;font-size:14px}.admin-mobile-drawer-nav .nav-item.active,.admin-mobile-drawer-nav .nav-sub-item.active{background:#e3f2fd;color:#2196f3;font-weight:500}.admin-mobile-drawer-nav .nav-group-title{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;color:#333;font-size:13px;cursor:pointer}.admin-mobile-drawer-nav .nav-group-items{background:#fafafa}.admin-mobile-drawer .sidebar-footer{flex-shrink:0;padding:16px;border-top:1px solid #eee}body.admin-mobile-drawer-open{overflow:hidden}.admin-announcement-overlay{z-index:16000;padding:16px;align-items:flex-end}.admin-announcement-modal{max-height:85vh;border-radius:12px 12px 0 0}.admin-drawer-enter-active,.admin-drawer-leave-active{transition:opacity .2s ease}.admin-drawer-enter-active .admin-mobile-drawer,.admin-drawer-leave-active .admin-mobile-drawer{transition:transform .25s ease}.admin-drawer-enter-from,.admin-drawer-leave-to{opacity:0}.admin-drawer-enter-from .admin-mobile-drawer,.admin-drawer-leave-to .admin-mobile-drawer{transform:translate(-100%)}.admin-mobile-page .room-rank-section{border:1px solid var(--admin-mobile-border);border-radius:12px}.admin-mobile-page .room-rank-section .btn-view-all{min-height:36px;padding:8px 12px}.admin-mobile-page .room-rank-section .modal-overlay{z-index:14500;padding:0;align-items:stretch}.admin-mobile-page .room-rank-section .rank-modal{width:100%;max-height:100vh;border-radius:0}.mobile-scope-bar{padding:10px 14px;border-bottom:1px solid var(--admin-mobile-border)}.mobile-scope-bar .admin-mobile-search{width:100%}}
