:root{--primary: #1e5bff;--primary-light: #4d7dff;--primary-gradient: linear-gradient(135deg, #1e5bff 0%, #00c2ff 100%);--accent: #00c2ff;--bg: #f4f6fb;--card: #ffffff;--text: #1a2340;--text-secondary: #5a6478;--text-muted: #9aa3b5;--border: #e6eaf2;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 14px;--radius-sm: 10px;--shadow: 0 4px 20px rgba(26, 35, 64, .06);--shadow-lg: 0 10px 40px rgba(30, 91, 255, .12)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px}.v-page{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.v-hero{background:var(--primary-gradient);padding:48px 20px 72px;position:relative;overflow:hidden;color:#fff}.v-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:#ffffff14}.v-hero:before{content:"";position:absolute;right:40px;bottom:-80px;width:160px;height:160px;border-radius:50%;background:#ffffff0f}.v-hero .v-logo{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700;letter-spacing:1px;position:relative;z-index:1}.v-hero .v-logo .dot{width:36px;height:36px;border-radius:10px;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:20px}.v-hero .v-title{font-size:30px;font-weight:700;margin-top:26px;position:relative;z-index:1}.v-hero .v-sub{font-size:14px;opacity:.85;margin-top:8px;position:relative;z-index:1}.v-body{flex:1;max-width:640px;width:100%;margin:-44px auto 0;padding:0 16px 32px;position:relative;z-index:2}.v-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:24px 20px;margin-bottom:16px}.v-card h2{font-size:17px;margin-bottom:18px;display:flex;align-items:center;gap:8px}.v-card h2:before{content:"";width:4px;height:16px;background:var(--primary-gradient);border-radius:2px}.v-field{margin-bottom:16px}.v-field label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px;font-weight:500}.v-field label .req{color:var(--danger);margin-left:2px}.v-input,.v-select,.v-textarea{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;color:var(--text);background:#fafbfe;outline:none;transition:all .2s;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.v-input:focus,.v-select:focus,.v-textarea:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #1e5bff1a}.v-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239aa3b5' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.v-textarea{resize:vertical;min-height:76px}.v-row{display:flex;gap:12px}.v-row .v-field{flex:1}.v-btn{width:100%;border:none;background:var(--primary-gradient);color:#fff;font-size:16px;font-weight:600;padding:14px;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:2px;transition:all .2s;font-family:inherit}.v-btn:active{transform:scale(.98)}.v-btn:disabled{opacity:.55;cursor:not-allowed}.v-btn.ghost{background:#fff;color:var(--primary);border:1.5px solid var(--primary)}.v-btn.danger-ghost{background:#fff;color:var(--danger);border:1.5px solid var(--danger)}.v-btn.small{width:auto;padding:0 18px;font-size:14px;letter-spacing:1px;flex-shrink:0}.v-search-row{display:flex;gap:10px;align-items:stretch}.v-search-row .v-input{flex:1}.v-host-list{margin-top:10px}.v-host-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;cursor:pointer;transition:all .15s;background:#fff}.v-host-item:hover{border-color:var(--primary);background:#f5f8ff}.v-host-item .name{font-weight:600;font-size:14px;color:var(--text)}.v-host-item .name .dept{color:var(--text-secondary);font-weight:400}.v-host-item .phone{font-size:12px;color:var(--text-muted);margin-top:2px}.v-host-item .pick{color:var(--primary);font-size:13px}.v-host-selected{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:12px 14px;background:#f0f5ff;border:1px solid var(--primary);border-radius:var(--radius-sm)}.v-host-selected .name{font-weight:600;font-size:14px;color:var(--text)}.v-host-selected .name .dept{color:var(--text-secondary);font-weight:400}.v-host-selected .phone{font-size:12px;color:var(--text-muted);margin-top:2px}.v-link-btn{border:none;background:none;color:var(--primary);font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline}.v-host-empty{margin-top:10px;font-size:13px;color:var(--text-muted);text-align:center;padding:14px;background:#fafafa;border-radius:var(--radius-sm)}.v-tag{display:inline-block;font-size:12px;padding:3px 10px;border-radius:20px;font-weight:500}.v-tag.pending{background:#fff7e6;color:#d46b08}.v-tag.approved{background:#e6f4ff;color:#0958d9}.v-tag.rejected{background:#fff1f0;color:#cf1322}.v-tag.cancelled,.v-tag.expired{background:#f5f5f5;color:#8c8c8c}.v-tag.checked_in{background:#f6ffed;color:#389e0d}.v-tag.checked_out{background:#f0f5ff;color:#2f54eb}.v-list-item{padding:16px;background:var(--card);border-radius:var(--radius-sm);box-shadow:var(--shadow);margin-bottom:12px}.v-list-item .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.v-list-item .head .name{font-weight:600;font-size:15px}.v-list-item .meta{font-size:13px;color:var(--text-secondary);line-height:1.8}.v-empty{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.v-empty .icon{font-size:44px;margin-bottom:12px;display:block}.v-qr-wrap{display:flex;flex-direction:column;align-items:center;padding:12px 0}.v-qr-wrap img{width:210px;height:210px}.v-qr-wrap .tip{margin-top:12px;color:var(--text-secondary);font-size:13px}.v-tabs{display:flex;gap:8px;margin-bottom:16px;background:#eef1f8;padding:4px;border-radius:12px}.v-tabs .tab{flex:1;text-align:center;padding:10px 0;border-radius:9px;font-size:14px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-weight:500;border:none;background:none;font-family:inherit}.v-tabs .tab.active{background:#fff;color:var(--primary);box-shadow:var(--shadow);font-weight:600}.v-footer{text-align:center;color:var(--text-muted);font-size:12px;padding:24px 0 12px}.v-success{text-align:center;padding:30px 0}.v-success .big{font-size:56px;margin-bottom:14px}.v-success h3{font-size:18px;margin-bottom:10px}.v-success p{color:var(--text-secondary);font-size:14px;line-height:1.8}.v-success .code-box{margin:18px auto 0;padding:12px;background:#f0f5ff;border:1.5px dashed var(--primary);border-radius:var(--radius-sm);font-size:20px;font-weight:700;letter-spacing:3px;color:var(--primary);display:inline-block}.admin-login-bg{min-height:100vh;background:linear-gradient(135deg,#0b1e4b,#123b8f 45%,#1e5bff);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.admin-login-bg:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(0,194,255,.25),transparent 70%);top:-120px;right:-120px}.admin-login-bg:after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(30,91,255,.35),transparent 70%);bottom:-100px;left:-100px}.admin-login-card{background:#fff;border-radius:18px;padding:44px 40px;width:400px;box-shadow:0 24px 64px #00000040;position:relative;z-index:1}.admin-login-card .logo{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:8px}.admin-login-card .logo .icon{width:42px;height:42px;border-radius:12px;background:var(--primary-gradient);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center}.admin-login-card .logo span{font-size:20px;font-weight:700}.admin-login-card .sub{text-align:center;color:var(--text-muted);margin-bottom:28px;font-size:13px}.stat-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-card .label{color:var(--text-secondary);font-size:13px}.stat-card .value{font-size:30px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}.stat-card .icon{position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px}.tech-panel{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.tech-panel .panel-title{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.tech-panel .panel-title:before{content:"";width:4px;height:15px;background:var(--primary-gradient);border-radius:2px}.overtime-row,.overtime-row td{background:#fff1f0!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#c9d2e3;border-radius:3px}::-webkit-scrollbar-track{background:transparent}@media (min-width: 768px){.v-body{max-width:680px}}@media (max-width: 768px){body{font-size:13px}#root{overflow-x:hidden}.admin-header{height:52px!important;line-height:52px!important}.admin-login-card{width:auto;max-width:400px;margin:0 16px;padding:36px 22px;border-radius:14px}.admin-login-card .logo span{font-size:18px}.admin-login-card .logo .icon{width:36px;height:36px;font-size:19px}.stat-card{padding:14px 12px}.stat-card .label{font-size:12px}.stat-card .value{font-size:22px}.stat-card .icon{width:32px;height:32px;font-size:14px;right:10px;top:10px;border-radius:9px}.tech-panel{padding:14px 12px;border-radius:10px}.tech-panel .panel-title{font-size:14px;margin-bottom:12px}.ant-card .ant-card-head{padding:0 12px;min-height:46px;font-size:14px}.ant-card .ant-card-head .ant-card-extra{padding:8px 0}.ant-card .ant-card-body{padding:12px}.ant-card-bordered{border-radius:10px}.ant-table{font-size:13px}.ant-table-thead>tr>th{padding:10px 8px!important;white-space:nowrap}.ant-table-tbody>tr>td{padding:10px 8px!important}.ant-pagination{row-gap:8px}.ant-pagination-options{display:none!important}.ant-pagination.mini .ant-pagination-item{min-width:30px}.filter-bar{display:flex;flex-wrap:wrap}.filter-bar .ant-space-item{flex:1 1 44%}.filter-bar .ant-space-item .ant-input,.filter-bar .ant-space-item .ant-select,.filter-bar .ant-space-item .ant-select:not(.ant-select-customize-input) .ant-select-selector,.filter-bar .ant-space-item .ant-picker,.filter-bar .ant-space-item .ant-picker-range{width:100%!important}.filter-bar .ant-space-item .ant-btn{width:100%}.filter-bar .ant-space-item:has(>.ant-btn){flex:0 0 44%}.ant-modal{max-width:calc(100vw - 16px)!important;margin:8px auto!important}.ant-modal .ant-modal-content{border-radius:12px}.ant-modal .ant-modal-body{max-height:68vh;overflow-y:auto}.ant-form-item{margin-bottom:14px}.ant-form-item-label>label{font-size:13px}.ant-tabs-nav{margin-bottom:12px}.ant-alert{border-radius:10px}.ant-message{width:calc(100vw - 24px)}.ant-drawer-body{display:flex;flex-direction:column}.v-row{flex-wrap:wrap}.ant-list-item-meta-title .ant-space{flex-wrap:wrap;row-gap:4px}}
