.sidebar{z-index:100;background:radial-gradient(circle at 100%,#ffa94d 0%,#ffd6a5 35%,#fff5eb 65%);flex-direction:column;width:240px;min-height:100vh;padding:20px 0;transition:width .3s;display:flex;position:fixed;top:0;left:0;box-shadow:2px 0 8px #0000000f}.sidebar-logo{border-bottom:1px solid var(--color-border);align-items:flex-end;gap:6px;margin-bottom:16px;padding:0 8px 24px;display:flex}.sidebar-logo-img{flex-shrink:0;width:auto;height:42px;padding-left:4px;transition:height .3s}.sidebar-logo-text{color:#ff6c12;white-space:nowrap;align-items:flex-end;height:42px;padding-bottom:2px;font-size:28px;font-weight:600;line-height:1;display:flex}.sidebar.collapsed .sidebar-logo-text{height:28px;font-size:20px}.sidebar.collapsed .sidebar-logo{justify-content:center;align-items:center;gap:4px;padding:0 16px 16px}.sidebar.collapsed .sidebar-logo-img{height:28px}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:0 12px;display:flex}.nav-item{color:var(--color-text-secondary);cursor:pointer;border-left:3px solid #0000;border-radius:10px;align-items:center;gap:14px;padding:14px 16px;transition:all .25s;display:flex;position:relative;overflow:hidden}.nav-item:hover{color:var(--color-primary);background:#0072ce14}.nav-item.active{color:#fff;background:#ff8c00;border-left-color:#0000}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-icon svg{width:22px;height:22px;transition:transform .25s}.nav-item:hover .nav-icon svg{transform:scale(1.1)}.nav-label{letter-spacing:.3px;white-space:nowrap;font-size:14px;font-weight:500}.sidebar-subnav{flex-direction:column;gap:2px;margin-top:-4px;margin-bottom:4px;padding:8px 0 8px 36px;display:flex}.nav-sub-item{color:var(--color-text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 16px;font-size:13px;transition:all .2s;display:flex;position:relative}.nav-sub-item:hover{color:var(--color-primary);background:#0072ce0f;padding-left:18px}.nav-sub-item.active{color:#ff8c00;background:#fff;font-weight:500}.nav-sub-item.active:before{content:"";background:var(--color-accent);border-radius:0 4px 4px 0;width:4px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-sub-item:after{content:"";background:var(--color-border);border-radius:50%;width:6px;height:6px;transition:all .2s}.nav-sub-item:hover:after{background:var(--color-primary)}.nav-sub-item.active:after{background:var(--color-accent)}.sidebar.collapsed{width:72px;padding:20px 0}.sidebar.collapsed .sidebar-logo{justify-content:center;padding:0 16px 16px;display:flex}.sidebar.collapsed .nav-item{border-left:none;border-radius:10px;justify-content:center;padding:14px 16px}.sidebar.collapsed .nav-icon svg{width:24px;height:24px}.sidebar.collapsed .sidebar-subnav{display:none}.sidebar.collapsed .nav-item[title]{position:relative}.sidebar.collapsed .nav-item[title]:hover:after{content:attr(title);background:var(--color-primary);color:#fff;white-space:nowrap;z-index:1000;border-radius:6px;margin-left:12px;padding:8px 12px;font-size:13px;position:absolute;top:50%;left:100%;transform:translateY(-50%);box-shadow:0 4px 12px #00000026}.message-panel .MuiDrawer-paper{background:var(--color-bg-container);width:60%;max-width:900px}.message-panel-content{background:#fff;flex-direction:column;height:100%;display:flex}.message-panel-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-base);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.message-panel-header h6{color:#1d2129;margin:0;font-size:16px;font-weight:600}.message-panel-tabs{border-bottom:1px solid var(--color-border);padding:0 24px}.message-panel-tabs .MuiTab-root{min-width:auto;color:var(--color-text-secondary);padding:12px 24px;font-size:14px}.message-panel-tabs .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.message-panel-tabs .MuiTabs-indicator{background-color:var(--color-primary)}.message-panel-body{flex:1;overflow:auto}.message-list-container{padding:16px 24px}.message-detail-container{border-top:1px solid var(--color-border);min-height:360px;max-height:560px;overflow:auto}.message-table{border-collapse:collapse;width:100%}.message-table th{background:var(--color-bg-base);color:var(--color-primary);text-align:left;border-bottom:2px solid var(--color-border);padding:10px 12px;font-size:13px;font-weight:600}.message-table td{color:var(--color-text);border-bottom:1px solid var(--color-border-secondary);padding:10px 12px;font-size:13px}.message-table tr:hover{background:var(--color-bg-spotlight)}.message-table tr.selected{background:#e6f7ff}.read-record-table{border-collapse:collapse;width:100%}.read-record-table th{background:var(--color-bg-base);color:var(--color-primary);text-align:left;border-bottom:2px solid var(--color-border);padding:10px 12px;font-size:13px;font-weight:600}.read-record-table td{color:var(--color-text);border-bottom:1px solid var(--color-border-secondary);padding:10px 12px;font-size:13px}.read-record-table tr:hover{background:var(--color-bg-spotlight)}.message-detail-panel .MuiDrawer-paper{background:var(--color-bg-container);width:60%;max-width:900px}.message-detail-panel-content{background:#fff;flex-direction:column;height:100%;display:flex}.message-detail-panel-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-base);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.message-detail-panel-header h6{color:#1d2129;margin:0;font-size:16px;font-weight:600}.message-detail-panel-tabs{border-bottom:1px solid var(--color-border);padding:0 24px}.message-detail-panel-tabs .MuiTab-root{min-width:auto;color:var(--color-text-secondary);padding:12px 24px;font-size:14px}.message-detail-panel-tabs .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.message-detail-panel-tabs .MuiTabs-indicator{background-color:var(--color-primary)}.message-detail-panel-body{flex:1;padding:16px 24px;overflow:auto}.message-descriptions{width:100%}.message-descriptions .MuiDescriptions-itemContainer-root{border-bottom:1px solid var(--color-border-secondary)}.message-descriptions .MuiDescriptions-itemLabel{background:var(--color-bg-base);color:var(--color-primary);width:130px;padding:10px 12px;font-size:13px;font-weight:600}.message-descriptions .MuiDescriptions-itemData{color:var(--color-text);padding:10px 12px;font-size:13px}.message-content-box{white-space:pre-wrap;word-break:break-word;background:var(--color-bg-spotlight);border-radius:4px;padding:16px}.board-select-page{justify-content:center;align-items:center;width:100vw;min-height:100vh;display:flex;position:relative;overflow:hidden}.board-video{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.board-overlay{z-index:1;background:#0a234280;position:absolute;inset:0}.board-content{z-index:2;text-align:center;position:relative}.board-title{color:#fff;text-shadow:0 2px 10px #0000004d;margin-top:20px;margin-bottom:48px;font-size:18px;font-weight:600}.board-cards{justify-content:center;gap:32px;display:flex}.board-card{cursor:pointer;background:#fffffff2;border-radius:20px;width:320px;padding:40px 32px;transition:all .3s;box-shadow:0 10px 40px #0003}.board-card:hover{transform:translateY(-10px);box-shadow:0 20px 60px #0000004d}.board-card-icon{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;display:flex}.board-card-icon.drug{background:linear-gradient(135deg,#ff3b30,#ff9f0a)}.board-card-icon.nutrition{background:linear-gradient(135deg,#4a90e2,#34c759)}.board-card-icon.admin{background:linear-gradient(135deg,#6b7280,#374151)}.board-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#0a2342cc;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:absolute;top:0;left:0;right:0}.board-header-left{align-items:center;gap:12px;display:flex}.board-logo{width:36px;height:36px}.board-header-left .board-title{color:#fff;margin:0;font-size:18px;font-weight:600}.board-header-right{align-items:center;gap:16px;display:flex}.board-header-right .user-info{background:#ffffff1a;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.board-header-right .user-info .MuiBox-root{color:#fff}.board-header-right .logout-btn-header{color:#fff;border-color:#fff}.board-header-right .logout-btn-header:hover{background:#ffffff1a}.board-card-icon svg{color:#fff;width:40px;height:40px}.board-card-title{color:#0a2342;margin-bottom:12px;font-weight:600}.board-card-desc{color:#4e59d9;font-size:14px}.detail-panel .MuiDrawer-paper{background:var(--color-bg-container);width:60%;max-width:900px}.detail-panel-content{background:#fff;flex-direction:column;height:100%;display:flex}.detail-panel-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-base);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.detail-panel-header h6{color:#1d2129;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.location-badge{background:var(--color-primary);color:#fff;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:400}.header-actions{align-items:center;gap:8px;display:flex}.export-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 16px;font-size:13px}.export-btn:hover{background:var(--color-primary-hover)}.detail-tabs{border-bottom:1px solid var(--color-border);padding:0 24px}.detail-tabs .MuiTab-root{min-width:auto;color:var(--color-text-secondary);padding:12px 24px;font-size:14px}.detail-tabs .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.detail-tabs .MuiTabs-indicator{background-color:var(--color-primary)}.detail-panel-body{flex:1;padding:16px 24px;overflow:auto}.loading-container{justify-content:center;align-items:center;height:200px;display:flex}.detail-table{border-collapse:collapse;width:100%}.detail-table th{background:var(--color-bg-base);color:var(--color-primary);text-align:left;border-bottom:2px solid var(--color-border);padding:10px 12px;font-size:13px;font-weight:600}.detail-table td{color:var(--color-text);border-bottom:1px solid var(--color-border-secondary);padding:10px 12px;font-size:13px}.detail-table tr:hover{background:var(--color-bg-spotlight)}.rate-badge{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.rate-badge.high{color:#fff;background:#ff3b30}.rate-badge.medium{color:#fff;background:#ff9f0a}.rate-badge.low{color:#fff;background:#34c759}.unqualified-cell{color:#ff3b30;font-weight:600}.empty-state{color:#9e9e9e;justify-content:center;align-items:center;height:200px;display:flex}.cascader-filter{flex-direction:column;gap:12px;display:flex}.filter-row{flex-flow:wrap;justify-content:flex-start;align-items:center;gap:12px;display:flex}.filter-row .date-quick-select{margin-left:auto}.filter-select,.filter-treeselect{min-width:160px;max-width:200px}.filter-select .ant-select-selector,.filter-treeselect .ant-select-selector{font-size:13px}.filter-date{flex-shrink:0;min-width:220px}.filter-date .ant-picker-input>input{font-size:13px}.filter-tags{flex-wrap:wrap;align-items:center;padding-left:4px;display:flex}.filter-tag{padding:0 6px;font-size:12px;line-height:1.5;margin:0!important}.filter-tag .ant-tag-close-icon{margin-left:4px}.filter-treeselect .ant-tree-select{min-width:100%}.date-quick-select{flex-shrink:0;align-items:center;gap:8px;display:flex}.date-display{color:#333;white-space:nowrap;min-width:200px;font-size:13px}.date-clear-btn{color:#666;cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:12px;line-height:1;transition:all .2s;display:flex}.date-clear-btn:hover{border-color:var(--color-secondary,#4a90e2);color:var(--color-secondary,#4a90e2)}.date-buttons{gap:4px;display:flex}.date-buttons .ant-btn{height:28px;padding:0 8px;font-size:12px}.custom-date-dropdown{background:#fff;border-radius:4px;padding:8px;box-shadow:0 2px 8px #00000026}.drug-residue-page{flex-direction:column;gap:0;display:flex}.sticky-filter-wrapper{margin-top:8px}.drug-residue-page .main-tabs{background:var(--color-bg-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.drug-residue-page .main-tabs .MuiCardContent-root{padding:0}.drug-residue-page .main-tabs-header{border-bottom:1px solid var(--color-border);background:0 0;margin-bottom:0;padding:0}.drug-residue-page .main-tabs-header .MuiTab-root{min-height:48px;color:var(--color-text-secondary);text-transform:none;padding:12px 24px;font-size:14px;font-weight:400}.drug-residue-page .main-tabs-header .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.drug-residue-page .main-tabs-header .MuiTabs-indicator{background-color:var(--color-primary);height:2px}.drug-residue-page .tab-content{flex-direction:column;gap:24px;display:flex}.drug-residue-page .stats-row{margin-bottom:0}.drug-residue-page .stat-card{border:1px solid var(--color-border);background:#fff;border-radius:12px;height:100%;padding:20px;transition:all .2s;box-shadow:0 2px 12px #0000000f}.drug-residue-page .stat-card:hover{box-shadow:0 4px 16px #0000001a}.drug-residue-page .stat-card .stat-label{color:var(--color-text-secondary);margin-bottom:8px;font-size:13px}.drug-residue-page .stat-card .stat-value{color:var(--color-primary);font-size:32px;font-weight:700;line-height:1}.drug-residue-page .stat-card .high-risk{color:var(--color-danger)}.drug-residue-page .stat-card .medium-risk{color:var(--color-warning)}.drug-residue-page .stat-trend{margin-top:8px;font-size:12px}.drug-residue-page .stat-trend.up{color:var(--color-danger)}.drug-residue-page .stat-trend.down{color:var(--color-safe)}.drug-residue-page .chart-card{border:1px solid var(--color-border);background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 12px #0000000f}.drug-residue-page .chart-card .MuiCardContent-root{padding:0}.drug-residue-page .card-title{color:var(--color-primary);margin-bottom:20px;font-size:16px;font-weight:600}.drug-residue-page .data-table{border-collapse:collapse;border:1px solid var(--color-border);background:#fff;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 2px 12px #0000000f}.drug-residue-page .data-table .MuiTableHead-root{background:var(--color-primary)}.drug-residue-page .data-table .MuiTableHead-root .MuiTableCell-root{color:#fff;border-bottom:none;padding:14px 16px;font-size:14px;font-weight:500}.drug-residue-page .data-table .MuiTableBody-root .MuiTableCell-root{border-bottom:1px solid var(--color-border);padding:14px 16px;font-size:14px}.drug-residue-page .data-table .MuiTableBody-root .MuiTableRow:last-child .MuiTableCell-root{border-bottom:none}.drug-residue-page .data-table .MuiTableBody-root .MuiTableRow:nth-child(2n){background:#fafafa}.drug-residue-page .data-table .MuiTableBody-root .MuiTableRow:hover{background:#f0f7ff}.action-btns{flex-wrap:nowrap;gap:8px;display:flex}.action-btn{border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:4px 12px;font-size:12px;transition:all .2s}.action-btn:hover{border-color:var(--color-secondary);color:var(--color-primary)}.action-btn.primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.action-btn.primary:hover{background:#e65c00}.drug-residue-page .drug-list-card .MuiTableCell-root{font-size:13px}.tree-shuttle{align-items:stretch;gap:16px;height:100%;display:flex}.shuttle-box{border:1px solid var(--color-border,#e8ecf0);border-radius:var(--radius-lg,8px);background:var(--color-bg-container,#fff);flex-direction:column;width:280px;height:100%;max-height:500px;display:flex;overflow:hidden}.shuttle-box-title{background:var(--color-bg-base,#f5f7fa);border-bottom:1px solid var(--color-border,#e8ecf0);color:var(--color-text,#333);flex-shrink:0;padding:12px 16px;font-size:13px;font-weight:500}.shuttle-content{flex:1;padding:8px 0;overflow-y:auto}.tree-node{border-bottom:1px solid var(--color-border-secondary,#f0f2f5)}.tree-node:last-child{border-bottom:none}.tree-parent{cursor:pointer;color:var(--color-text,#333);background:var(--color-bg-spotlight,#0072ce0d);transition:background var(--transition-fast,.15s ease);align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.tree-parent:hover{background:#0072ce1a}.tree-parent input[type=checkbox]{cursor:pointer;margin:0}.expand-icon{text-align:center;width:16px;height:16px;color:var(--color-text-secondary,#666);border:1px solid var(--color-border,#ddd);transition:all var(--transition-fast,.15s ease);border-radius:2px;flex-shrink:0;font-size:12px;line-height:16px;display:inline-block}.tree-parent.expanded .expand-icon{background:var(--color-primary,#0072ce);color:#fff;border-color:var(--color-primary,#0072ce)}.tree-label{flex:1}.tree-children{padding:4px 0 4px 32px}.tree-shuttle-item{cursor:pointer;transition:background var(--transition-fast,.15s ease);align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.tree-shuttle-item:hover{background:var(--color-bg-spotlight,#0072ce0d)}.tree-shuttle-item.selected{color:var(--color-primary,#0072ce);background:#0072ce14}.tree-shuttle-item input[type=checkbox]{cursor:pointer;margin:0}.shuttle-arrow{flex-direction:column;justify-content:center;gap:12px;padding-top:80px;display:flex}.shuttle-arrow .ant-btn{width:40px;height:40px;padding:0}.selected-item{border-bottom:1px solid var(--color-border-secondary,#f0f2f5);cursor:pointer;transition:background var(--transition-fast,.15s ease);align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.selected-item:hover{background:var(--color-bg-spotlight,#0072ce0d)}.selected-item.checked{background:#0072ce1a}.selected-item:last-child{border-bottom:none}.selected-item input[type=checkbox]{cursor:pointer;margin:0}.selected-item .remove-btn{text-align:center;width:18px;height:18px;color:var(--color-text-tertiary,#999);transition:all var(--transition-fast,.15s ease);border-radius:50%;margin-left:auto;font-size:14px;line-height:16px}.selected-item .remove-btn:hover{background:var(--color-danger,#ff3b30);color:#fff}.selected-item.selected-region{background:#0072ce14;font-weight:500}.selected-item.selected-region span{color:var(--color-primary,#0072ce)}.empty-hint{text-align:center;color:var(--color-text-tertiary,#999);padding:24px;font-size:13px}.freshness-page{flex-direction:column;gap:0;display:flex}.freshness-page .main-tabs{background:var(--color-bg-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:0;overflow:hidden}.freshness-page .main-tabs-header{border-bottom:1px solid var(--color-border);margin-bottom:0;padding:0 24px}.freshness-page .main-tabs-header .MuiTab-root{min-height:48px;color:var(--color-text-secondary);text-transform:none;padding:12px 24px;font-size:14px;font-weight:400}.freshness-page .main-tabs-header .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.freshness-page .main-tabs-header .MuiTabs-indicator{background-color:var(--color-primary);height:2px}.freshness-page .main-tabs-inner{margin-bottom:0}.freshness-page .chart-card{border:1px solid var(--color-border);background:#fff;border-radius:12px;padding:24px;transition:box-shadow .2s;box-shadow:0 2px 12px #0000000f}.freshness-page .chart-card:hover{box-shadow:0 4px 16px #0000001a}.risk-tag{border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.risk-tag.safe{color:var(--color-safe);background:#e8f5e9}.risk-tag.medium{color:var(--color-warning);background:#fff3e0}.risk-tag.high{color:var(--color-danger);background:#ffebee}.freshness-page .chart-card .card-title{color:var(--color-primary);margin-bottom:20px;font-size:16px;font-weight:600}.table-scroll-container{scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1}.table-scroll-container::-webkit-scrollbar{width:8px;height:8px}.table-scroll-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-scroll-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.table-scroll-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.nutrition-page{flex-direction:column;gap:0;padding:0;display:flex}.page-toolbar{z-index:100;background:var(--color-bg-base);flex-direction:column;gap:10px;padding:0;display:flex;position:sticky;top:0}.nutrition-page .main-tabs{background:var(--color-bg-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:0;overflow:hidden}.nutrition-page .main-tabs-header{border-bottom:1px solid var(--color-border);margin-bottom:0;padding:0 24px}.nutrition-page .main-tabs-header .MuiTab-root{min-height:48px;color:var(--color-text-secondary);text-transform:none;padding:12px 24px;font-size:14px;font-weight:400}.nutrition-page .main-tabs-header .MuiTab-root.Mui-selected{color:var(--color-primary);font-weight:500}.nutrition-page .main-tabs-header .MuiTabs-indicator{background-color:var(--color-primary);height:2px}.nutrition-page .main-tabs-inner{margin-bottom:0}.nutrition-page .card-title{color:var(--color-primary);margin-bottom:20px;font-size:16px;font-weight:600}.admin-page{background:0 0}.admin-page .main-card{border-radius:12px}.admin-page .ant-tabs-nav{margin-bottom:24px}.admin-page .ant-tabs-tab{color:var(--color-text-secondary);padding:12px 24px;font-size:14px}.admin-page .ant-tabs-tab:hover{color:var(--color-primary)}.admin-page .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--color-primary);font-weight:500}.admin-page .ant-tabs-ink-bar{background:var(--color-primary);height:2px}.admin-page .tab-header{margin-bottom:20px}.admin-page .data-table .ant-table-thead>tr>th{background:#f5f7fa;font-size:14px;font-weight:500}.admin-page .data-table .ant-table-tbody>tr>td{font-size:14px}.admin-page .action-btns .ant-btn{height:auto;padding:4px 8px}.status-badge{border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.active{color:#34c759;background:#e8f5e9}.status-badge.disabled{color:#ff3b30;background:#ffebee}.placeholder-card{border-radius:12px;justify-content:center;align-items:center;min-height:300px;display:flex}.placeholder-content{text-align:center;color:#666}.placeholder-icon{margin-bottom:16px;font-size:48px;display:block}.placeholder-content p{font-size:16px}.user-form{margin-top:20px}.user-form .ant-form-item-label>label{font-weight:500}.app-layout{background:var(--color-bg-layout);width:100%;height:100vh;display:flex;overflow:hidden}.main-wrapper{flex-direction:column;flex:1;height:100vh;margin-left:240px;transition:margin-left .3s;display:flex;overflow:hidden}.page-header{background:var(--color-bg-container);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:12px 32px;display:flex}.header-left{align-items:center;gap:24px;display:flex}.page-title{color:var(--color-primary);margin:0;font-size:18px;font-weight:600}.header-right{align-items:center;gap:20px;display:flex}.user-info{align-items:center;gap:10px;display:flex}.user-avatar{color:#fff;background:linear-gradient(135deg,#ffa94d,#ffd6a5);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:500;display:flex}.user-name{color:var(--color-text);font-size:14px}.logout-btn-header{border:1px solid var(--color-border);background:var(--color-bg-container);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:400;transition:all .2s}.logout-btn-header:hover{border-color:var(--color-primary);color:var(--color-primary)}.main-content{background:var(--color-bg-layout);flex:1;padding:0 32px 32px;overflow-y:auto}.login-page{z-index:1000;background:#000;position:fixed;inset:0}.login-page video{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.video-overlay{z-index:1;pointer-events:none;background:#0000004d;width:100%;height:100%;position:absolute;top:0;left:0}.login-card{z-index:2;border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);background:#fffffff2;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.login-page .board-select-page{z-index:2;background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.page-logo{display:none}.login-header{text-align:center;margin-bottom:32px;padding-top:4px}.login-logo-img{width:auto;max-width:100%;height:auto;margin:0 auto 12px;display:block}.login-header h1{color:var(--color-primary);margin:0 0 4px;font-size:26px;font-weight:700}.login-header p{color:var(--color-text-secondary);margin:0;font-size:14px}.board-select-fullscreen{z-index:1000;background:linear-gradient(135deg,#ffa94d33 0%,#ffd6a540 100%),url(/dog.jpg) 50%/cover no-repeat fixed;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.transition-container{z-index:999;position:fixed;inset:0}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-out{animation:.3s ease-out forwards fadeOut}.fade-in{animation:.3s ease-out forwards fadeIn}.slide-up{animation:.4s ease-out forwards slideUp}.scale-in{animation:.3s ease-out forwards scaleIn}.login-exit{animation:.4s ease-out forwards fadeOut}.board-enter{opacity:0;animation:.5s ease-out .2s forwards scaleIn}.board-exit{animation:.3s ease-out forwards fadeOut}.main-enter{animation:.4s ease-out forwards fadeIn}:root{--color-primary:#ffa94d;--color-primary-hover:#ff9500;--color-secondary:#ffd6a5;--color-accent:#ff9e2c;--color-safe:#34c759;--color-warning:#ff9f0a;--color-danger:#ff3b30;--color-bg-base:#fff9f3;--color-bg-container:#fff;--color-bg-layout:linear-gradient(90deg, #fff9f3 0%, #fff 100%);--color-bg-elevated:#fff;--color-bg-spotlight:#ffa94d14;--color-text:#333;--color-text-secondary:#888;--color-text-tertiary:#999;--color-text-quaternary:#ccc;--color-text-inverse:#fff;--color-border:#ffa94d33;--color-border-secondary:#ffa94d1a;--font-family:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:24px;--font-size-4xl:32px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px;--spacing-3xl:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 3px #00000008;--shadow-md:0 2px 12px #0000000d;--shadow-lg:0 4px 16px #0000000f;--shadow-xl:0 8px 32px #00000014;--transition-fast:.15s ease;--transition-normal:.25s ease}html{font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;line-height:1.5;overflow:hidden}body{font-family:var(--font-family);font-weight:var(--font-weight-regular);background-color:var(--color-bg-base);height:100%;margin:0;padding:0;overflow:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;line-height:1.3}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}.ant-table-thead>tr>th{font-weight:var(--font-weight-medium);font-size:var(--font-size-base);text-transform:none;letter-spacing:0;color:#fff;background-color:var(--color-primary)!important}.MuiChip-filled.MuiChip-colorPrimary{color:#fff!important;background-color:#ff8c00!important}.MuiButton-contained{background-color:var(--color-primary)!important}.MuiButton-contained:hover{background-color:var(--color-primary-hover)!important}.MuiButton-outlined{border-color:var(--color-primary)!important;color:var(--color-primary)!important}.MuiButton-outlined:hover{border-color:var(--color-primary-hover)!important;color:var(--color-primary-hover)!important;background-color:#ffa94d14!important}.MuiButton-containedPrimary{background-color:var(--color-primary)!important}.MuiButton-containedPrimary:hover{background-color:var(--color-primary-hover)!important}.MuiButton-outlinedPrimary{border-color:var(--color-primary)!important;color:var(--color-primary)!important}.MuiButton-outlinedPrimary:hover{border-color:var(--color-primary-hover)!important;color:var(--color-primary-hover)!important;background-color:#ffa94d14!important}*,:before,:after{box-sizing:border-box}html{color:var(--color-text);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;font-size:14px;line-height:1.5;overflow:hidden}body{font-family:var(--font-family);background-color:var(--color-bg-base);height:100%;margin:0;padding:0;overflow:hidden}#root{height:100vh;display:flex;overflow:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;color:var(--color-text);font-weight:600;line-height:1.3}h1{font-size:var(--font-size-h1);font-weight:700}h2{font-size:var(--font-size-h2);font-weight:600}h3{font-size:var(--font-size-h3);font-weight:600}h4{font-size:var(--font-size-h4);font-weight:600}h5{font-size:var(--font-size-h5);font-weight:600}p{margin:0 0 var(--spacing-md) 0;line-height:1.6}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary)}.ant-btn-primary{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-btn-primary:hover{background-color:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important}.ant-menu-item-selected{color:var(--color-primary)!important;background-color:#0a234214!important}.ant-table-thead>tr>th{text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600;background-color:var(--color-bg-base)!important}.ant-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:none}.ant-tag-safe{color:var(--color-safe);border-color:var(--color-safe);background-color:#34c7591f}.ant-tag-warning{color:var(--color-warning);border-color:var(--color-warning);background-color:#ff9f0a1f}.ant-tag-danger{color:var(--color-danger);border-color:var(--color-danger);background-color:#ff3b301f}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}
