@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:#16181d;--bg-secondary:#1c1f26;--bg-card:#23262e;--bg-elevated:#2a2d36;--accent:#67b0ba;--accent-light:#8ecdd5;--accent-bg:#67b0ba26;--accent-glow:#67b0ba40;--border:#383c48;--border-secondary:#2f3340;--text-primary:#e1e6f0;--text-secondary:#8892b0;--text-tertiary:#5a6484;--color-success:#52c41a;--color-warning:#faad14;--color-error:#ff4d4f;--color-pink:#f759ab;--color-discord:#5865f2}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:Noto Sans Thai,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.loading-center{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.loading-section{text-align:center;padding:80px 0}.flex-between{justify-content:space-between;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.accent-text{color:var(--accent)}.accent-text-light{color:var(--accent-light)}.success-text{color:var(--color-success)}.warning-text{color:var(--color-warning)}.error-text{color:var(--color-error)}.accent-price{color:var(--accent);font-weight:600}.app-layout{min-height:100vh}.app-header{border-bottom:1px solid var(--border-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0;background:var(--bg-secondary)!important}.header-brand{color:var(--text-primary);align-items:center;gap:12px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.header-brand-icon{background:linear-gradient(135deg, var(--accent) 0%, #549da6 100%);color:#fff;width:36px;height:36px;box-shadow:0 2px 12px var(--accent-glow);border-radius:10px;justify-content:center;align-items:center;font-size:18px;display:flex}.header-user{align-items:center;gap:16px;display:flex}.header-points{border:1px solid var(--accent-glow);color:var(--accent-light);background:linear-gradient(135deg,#67b0ba26,#67b0ba14);border-radius:0 0 20px 20px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:600;display:flex;background-color:var(--bg-secondary)!important}.header-points .diamond-icon{font-size:16px}.header-collapse-btn{cursor:pointer;color:var(--text-secondary);font-size:18px}.header-avatar{background:var(--accent)!important}.header-username{color:var(--text-primary);font-size:14px}.app-sider{border-right:1px solid var(--border-secondary)}.app-sider .ant-menu{padding:8px}.app-sider .ant-menu-item{border-radius:8px!important;margin:2px 0!important}.sidebar-logo{border-bottom:1px solid var(--border-secondary);align-items:center;height:64px;display:flex}.sidebar-logo-collapsed{padding:0 16px}.sidebar-logo-expanded{padding:0 20px}.app-content{min-height:calc(100vh - 64px);padding:24px}.page-header{margin-bottom:24px}.page-header h1{background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:28px;font-weight:700}.page-header p{color:var(--text-secondary);font-size:15px}.page-header .back-btn{margin-bottom:8px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:12px;padding:20px;transition:border-color .3s,box-shadow .3s}.stat-card:hover{border-color:var(--accent);box-shadow:0 4px 20px var(--accent-glow)}.stat-card .stat-icon{border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:12px;font-size:20px;display:flex}.stat-icon-accent{background:var(--accent-bg);color:var(--accent)}.stat-icon-success{color:var(--color-success);background:#52c41a26}.stat-icon-warning{color:var(--color-warning);background:#faad1426}.stat-icon-pink{color:var(--color-pink);background:#f759ab26}.stat-icon-info{color:#4096ff;background:#4096ff26}.stat-card .stat-value{margin-bottom:4px;font-size:28px;font-weight:800;line-height:1}.stat-card .stat-label{color:var(--text-secondary);font-size:13px}.billboard-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.billboard-card{border:1px solid var(--border-secondary);background:var(--bg-card);cursor:pointer;border-radius:12px;flex-direction:column;height:100%;transition:border-color .3s,box-shadow .3s;display:flex;overflow:hidden}.billboard-card .ant-card-body{flex-direction:column;flex:1;padding:0;display:flex}.billboard-card:hover{border-color:var(--accent);box-shadow:0 8px 32px var(--accent-glow)}.billboard-card-image{object-fit:cover;border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);justify-content:center;align-items:center;width:100%;height:180px;display:flex}.billboard-card-image-icon{color:var(--border);font-size:40px}.billboard-card-image-lg{color:var(--border);font-size:48px}.billboard-card-body{flex-direction:column;flex:1;justify-content:space-between;padding:16px;display:flex}.billboard-card-name{margin-bottom:6px;font-size:16px;font-weight:600}.billboard-card-price{color:var(--accent-light);align-items:center;gap:6px;font-size:18px;font-weight:700;display:flex}.billboard-card-size{color:var(--text-secondary);margin-top:4px;font-size:12px}.billboard-card-meta-icon{color:var(--text-tertiary);margin-right:4px}.billboard-card-status{position:absolute;top:8px;right:8px}.filter-icon{color:var(--text-tertiary)}.detail-info-row{justify-content:space-between;display:flex}.detail-total-price{color:var(--accent);margin:0}.detail-section-title{color:var(--text-primary);margin-bottom:16px}.detail-range-picker{width:100%}.detail-date-hint,.detail-date-alert{margin-bottom:16px}.detail-upload-placeholder{padding:40px}.detail-upload-icon{color:var(--text-secondary);font-size:40px}.detail-upload-text{color:var(--text-secondary);margin-top:12px}.detail-upload-hint{color:var(--text-secondary);font-size:12px}.detail-upload-preview{border-radius:8px;max-width:100%;max-height:250px}.detail-confirm-btn{border-radius:10px;height:52px;padding-inline:32px;font-size:16px}.detail-price-label{font-size:14px}.detail-price-calc{font-size:12px}.detail-deduct-price{color:var(--color-error);margin:0}.detail-confirm-divider{margin:8px 0}.calendar-cell-booked{background:#ff4d4f1f;border-radius:4px;flex-direction:column;align-items:center;display:flex}.calendar-cell-booked .ant-picker-cell-inner{color:var(--color-error)!important}.calendar-booked-dot{background:var(--color-error);border-radius:50%;width:6px;height:6px;margin:2px auto 0}.calendar-cell-mine{background:#faad141f;border-radius:4px;flex-direction:column;align-items:center;display:flex}.calendar-cell-mine .ant-picker-cell-inner{color:var(--color-warning)!important}.calendar-mine-dot{background:var(--color-warning);border-radius:50%;width:6px;height:6px;margin:2px auto 0}.calendar-booked-dot-inline,.calendar-mine-dot-inline{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.calendar-booked-dot-inline{background:var(--color-error)}.calendar-mine-dot-inline{background:var(--color-warning)}.calendar-legend{flex-wrap:wrap;gap:12px;margin-top:8px;margin-bottom:16px;display:flex}.price-summary{background:linear-gradient(135deg,#67b0ba1a 0%,#67b0ba0d 100%);border:1px solid #67b0ba33;border-radius:12px;padding:20px}.price-summary .total-price{background:linear-gradient(135deg, var(--accent-light) 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:800}.login-page{background:radial-gradient(ellipse at 20% 50%, #67b0ba1f 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, #67b0ba14 0%, transparent 50%), var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;border-radius:20px;width:100%;max-width:440px;padding:48px}.login-card .login-logo{background:linear-gradient(135deg, var(--accent) 0%, #549da6 100%);color:#fff;width:80px;height:80px;box-shadow:0 8px 32px var(--accent-glow);border-radius:24px;justify-content:center;align-items:center;margin:0 auto 24px;font-size:36px;display:flex}.login-card h1{margin-bottom:8px;font-size:28px;font-weight:800}.login-card p{color:var(--text-secondary);margin-bottom:32px;font-size:15px}.login-footer{color:var(--text-tertiary);margin-top:24px;font-size:13px}.discord-btn{justify-content:center;align-items:center;gap:10px;width:100%;background:var(--color-discord)!important;border-color:var(--color-discord)!important;border-radius:12px!important;height:52px!important;font-size:16px!important;font-weight:600!important;transition:all .3s!important;display:flex!important}.discord-btn:hover{background:#4752c4!important;border-color:#4752c4!important;box-shadow:0 4px 20px #5865f266!important}.discord-icon{width:24px;height:24px}.maintenance-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.maintenance-content{text-align:center;max-width:480px}.maintenance-icon{color:var(--color-warning);margin-bottom:24px;font-size:64px}.maintenance-desc{color:var(--text-secondary);margin-bottom:32px;font-size:16px}.maintenance-btn{border-radius:10px;height:48px;padding-inline:32px}.status-active{color:var(--color-success);background:#52c41a1a;border-color:#52c41a4d}.status-hidden{color:var(--color-warning);background:#faad141a;border-color:#faad144d}.status-expired{color:var(--text-secondary);background:#8892b01a;border-color:#8892b04d}.booking-date-sub{color:var(--text-secondary);font-size:12px}.booking-upload-hint{color:var(--text-secondary)}.chart-container{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:12px;padding:20px}.chart-container h3{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.image-upload-area{border:2px dashed var(--border);text-align:center;cursor:pointer;background:#67b0ba08;border-radius:12px;padding:40px;transition:all .3s}.image-upload-area:hover{border-color:var(--accent);background:#67b0ba14}.image-upload-area .upload-icon{color:var(--accent);margin-bottom:12px;font-size:48px}.admin-billboard-icon{background:linear-gradient(135deg, var(--accent), #549da6);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.admin-filter-bar{color:var(--text-secondary)}@media (width<=768px){.app-content{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.billboard-grid{grid-template-columns:1fr}.page-header h1{font-size:22px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}.login-card{padding:24px}}.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner{background:var(--accent)!important}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:var(--accent-bg)!important}.chart-heatmap-tooltip{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;padding:8px 12px}.chart-heatmap-name{font-weight:600}.detail-info-space{width:100%}.back-btn{margin-bottom:8px}.filter-tag{cursor:pointer}.filter-tag.active{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.dashboard-select{width:100%;min-width:200px}.ant-modal-header{margin-bottom:36px!important}.image-change-cost{background:#ff4d4f14;border:1px solid #ff4d4f33;border-radius:8px;align-items:center;gap:6px;margin-bottom:16px;padding:10px 14px;display:flex}.image-change-preview-wrap{border:1px solid var(--border);border-radius:10px;margin-bottom:16px;overflow:hidden}.image-change-preview{object-fit:contain;background:var(--bg-primary);width:100%;max-height:240px;display:block}.image-change-confirm-info{margin-bottom:16px}.image-change-progress{text-align:center;margin-top:16px}.image-change-progress-text{margin-top:6px;font-size:13px;display:block}.booking-upload-sub{color:var(--text-tertiary);margin:0;font-size:12px}.image-history-item{flex-direction:column;gap:4px;display:flex}.image-history-header{justify-content:space-between;align-items:center;display:flex}.image-history-cost{color:var(--color-error);font-weight:600}.image-history-urls{flex-direction:column;gap:2px;display:flex}.image-history-thumbnails{align-items:center;gap:10px;margin-top:6px;display:flex}.image-history-thumb-group{flex-direction:column;align-items:center;gap:4px;display:flex}.image-history-thumb-label{font-size:11px}.image-history-thumb{object-fit:cover;border:1px solid var(--border);cursor:pointer;border-radius:6px;width:80px;height:50px;transition:opacity .2s}.image-history-thumb:hover{opacity:.8}.image-history-arrow{color:var(--text-secondary);margin-top:14px;font-size:18px}.booking-thumbnail{object-fit:cover;border:1px solid var(--border);cursor:pointer;border-radius:6px;width:56px;height:36px;transition:opacity .2s}.booking-thumbnail:hover{opacity:.8}.booking-thumbnail-empty{background:var(--bg-secondary);width:56px;height:36px;color:var(--text-tertiary);border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex}.calendar-table{border-collapse:collapse;table-layout:fixed;width:100%}.calendar-table th{text-align:center;color:var(--text-tertiary);border-bottom:1px solid var(--border-light);padding:8px 4px;font-size:13px;font-weight:500}.calendar-cell{border:1px solid var(--border-light);vertical-align:top;height:90px;min-height:90px;padding:4px;transition:background .15s}.calendar-cell:hover{background:#67b0ba0a}.calendar-empty{background:0 0;border-color:#0000}.calendar-today{border-color:var(--accent)!important;background:#67b0ba14!important}.calendar-day-num{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:600}.calendar-today .calendar-day-num{color:var(--accent)}.calendar-day-content{flex-direction:column;gap:2px;display:flex}.calendar-booking-tag{color:#fff;cursor:default;white-space:nowrap;border-radius:3px;justify-content:space-between;align-items:center;padding:1px 5px;font-size:10px;line-height:16px;display:flex;overflow:hidden}.calendar-tag-text{text-overflow:ellipsis;overflow:hidden}
