*{margin:0;padding:0;box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background:#f4f6fb}button,input,select{font:inherit}.facai-page{--fc-bg: #f4f6fb;--fc-panel: #ffffff;--fc-border: #e3e8f0;--fc-text: #1f2733;--fc-muted: #8a94a6;--fc-accent: #e0271c;--fc-shadow: 0 4px 18px rgba(31, 39, 51, .06);--fc-radius: 16px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:var(--fc-bg);color:var(--fc-text);padding:28px;min-height:100vh}.facai-page *{box-sizing:border-box}.facai-page .wrap{max-width:1450px;margin:0 auto}.facai-page .topbar{background:linear-gradient(135deg,#d62019,#f0463a);color:#fff;border-radius:var(--fc-radius);padding:22px 28px;box-shadow:0 8px 28px #d6201952;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px}.facai-page .topbar .title{font-size:15px;opacity:.85;margin-bottom:10px;letter-spacing:.5px}.facai-page .stats{display:flex;gap:34px;flex-wrap:wrap}.facai-page .stat .label{font-size:13px;opacity:.82}.facai-page .stat .value{font-size:26px;font-weight:700;margin-top:2px}.facai-page .stat .value small{font-size:14px;font-weight:500;opacity:.9;margin-left:2px}.facai-page .stat.total .value{color:#fff8d6}.facai-page .topbar-side{display:flex;flex-direction:column;align-items:flex-end;gap:14px;margin-left:auto}.facai-page .account-ctrl{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;color:#ffffffe6;font-size:13px;font-weight:600}.facai-page .account-ctrl button{border:1px solid rgba(255,255,255,.36);background:#ffffff29;color:#fff;border-radius:9px;padding:6px 12px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.facai-page .account-ctrl button:hover{background:#ffffff42;border-color:#ffffff80}.facai-page .date-ctrl{display:flex;align-items:center;gap:8px}.facai-page .date-ctrl button{background:#fff3;border:none;color:#fff;width:34px;height:34px;border-radius:9px;font-size:18px;cursor:pointer;transition:background .15s}.facai-page .date-ctrl button:hover{background:#ffffff57}.facai-page .date-ctrl input[type=date]{border:none;border-radius:9px;padding:7px 12px;font-size:14px;color:var(--fc-text);background:#fff;cursor:pointer}.facai-page .date-ctrl .today-tag{font-size:12px;background:#ffffff38;padding:4px 9px;border-radius:20px}.facai-page .columns{display:grid;grid-template-columns:276px 1152px;justify-content:start;gap:22px;margin-top:24px}.facai-page .right-col{display:flex;flex-direction:column;gap:22px;min-width:0}@media(max-width:920px){.facai-page{padding:16px}.facai-page .topbar{align-items:flex-start}.facai-page .topbar-side{width:100%;align-items:flex-start}.facai-page .account-ctrl,.facai-page .date-ctrl{justify-content:flex-start}.facai-page .columns{grid-template-columns:1fr}}.facai-page .panel{background:var(--fc-panel);border-radius:var(--fc-radius);box-shadow:var(--fc-shadow);padding:20px 22px 26px}.facai-page .panel h2{font-size:17px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px}.facai-page .panel h2 .sub{font-size:13px;color:var(--fc-muted);font-weight:500}.facai-page .panel h2 .color-toggle{position:relative;margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--fc-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.facai-page .panel h2 .color-toggle input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0}.facai-page .panel h2 .color-toggle .toggle-box{flex:none;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--fc-border);background:#fff;position:relative;transition:background .12s,border-color .12s}.facai-page .panel h2 .color-toggle.on .toggle-box{background:var(--fc-accent);border-color:var(--fc-accent)}.facai-page .panel h2 .color-toggle.on .toggle-box:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.facai-page .panel h2 .batch-btn{margin-left:12px;background:linear-gradient(135deg,#d62019,#f0463a);color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #d6201940;transition:opacity .15s}.facai-page .panel h2 .batch-btn:hover{opacity:.9}.facai-page .panel-divider{height:1px;background:var(--fc-border);margin:14px 0 18px}.facai-page .grid{display:grid;gap:12px}.facai-page .zodiac-grid{grid-template-columns:repeat(2,110px);grid-template-rows:repeat(7,auto);grid-auto-flow:column}.facai-page .number-grid{grid-template-columns:repeat(10,100px)}.facai-page .card{position:relative;width:100px;border-radius:12px;overflow:visible;cursor:pointer;border:1px solid var(--fc-border);transition:transform .12s,box-shadow .12s;background:#fff}.facai-page .card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #1f273324;z-index:5}.facai-page .card .amount{padding:14px 4px;text-align:center;font-size:16px;font-weight:700;border-radius:11px 11px 0 0;transition:background .25s,color .25s;letter-spacing:.3px}.facai-page .zodiac-grid .amount,.facai-page .color-grid .amount{padding:7px 4px;font-size:15px}.facai-page .card .name{padding:9px 8px;text-align:center;font-size:16px;font-weight:600;background:#fbfcfe;border-top:1px solid var(--fc-border);color:var(--fc-text)}.facai-page .card .name .icon{margin-left:6px;font-size:16px;vertical-align:-1px}.facai-page .card>:last-child{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.facai-page .number-grid .card .name{padding:7px 8px}.facai-page .number-card .name{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.facai-page .number-zodiac-tip{position:absolute;left:50%;top:calc(100% + 7px);z-index:20;transform:translate(-50%,-4px);opacity:0;pointer-events:none;white-space:nowrap;padding:6px 11px;border-radius:6px;background:#1f2733eb;color:#fff;font-size:12px;font-weight:700;box-shadow:0 8px 18px #1f27332e;transition:opacity .12s,transform .12s}.facai-page .number-zodiac-tip .icon{margin-left:4px;font-size:13px}.facai-page .number-card:hover .number-zodiac-tip,.facai-page .number-card:focus-within .number-zodiac-tip{opacity:1;transform:translate(-50%)}.facai-page .nums{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:center;padding:7px 6px;background:#fbfcfe;border-top:1px solid var(--fc-border)}.facai-page .numdot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;line-height:1}.facai-page .numdot.lg{width:30px;height:30px;font-size:14px}.facai-page .numdot.plain{background:transparent!important;color:var(--fc-text)}.facai-page .zcard{width:110px}.facai-page .zcard .nums{padding:7px 5px}.facai-page .color-grid{grid-template-columns:repeat(3,1fr)}.facai-page .color-card{width:auto}.facai-page .color-card .nums{gap:6px;padding:10px}.facai-page .color-card .numdot{width:24px;height:24px;font-size:12px}.facai-page .color-card .name{font-size:15px}.facai-page .empty{color:var(--fc-muted);font-size:14px;padding:30px 0;text-align:center}.facai-page .footer-tip{text-align:center;color:var(--fc-muted);font-size:12px;margin-top:22px}.facai-page .modal-mask{position:fixed;inset:0;background:#141a2673;display:none;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.facai-page .modal-mask.open{display:flex}.facai-page .modal{background:#fff;border-radius:16px;padding:26px 26px 22px;width:320px;box-shadow:0 20px 50px #00000040;animation:fc-pop .18s ease;color:var(--fc-text)}@keyframes fc-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.facai-page .modal h3{font-size:17px;margin-bottom:6px}.facai-page .modal h3 .title-icon{margin-left:8px;font-size:19px;vertical-align:-2px}.facai-page .modal .desc{font-size:13px;color:var(--fc-muted);margin-bottom:16px}.facai-page .input-row{display:flex;gap:10px}.facai-page .modal select{flex:0 0 96px;padding:12px 8px;font-size:15px;font-weight:600;border:2px solid var(--fc-border);border-radius:10px;outline:none;background:#fff;color:var(--fc-text);cursor:pointer;text-align:center;transition:border .15s}.facai-page .modal select:focus{border-color:var(--fc-accent)}.facai-page .modal input{flex:1;min-width:0;padding:12px 14px;font-size:18px;text-align:center;border:2px solid var(--fc-border);border-radius:10px;outline:none;transition:border .15s}.facai-page .modal input:focus{border-color:var(--fc-accent)}.facai-page .modal .actions{display:flex;gap:10px;margin-top:18px}.facai-page .modal .actions button{flex:1;padding:11px;border-radius:10px;border:none;font-size:15px;cursor:pointer;font-weight:600}.facai-page .modal .cancel{background:#eef1f6;color:var(--fc-text)}.facai-page .modal .confirm{background:var(--fc-accent);color:#fff}.facai-page .modal .confirm.sub{background:#d8463e}.facai-page .modal.batch{width:880px;max-width:94vw;max-height:94vh;padding:24px 26px 20px;display:flex;flex-direction:column}.facai-page .batch-body{overflow:auto}.facai-page .batch-section{margin-top:16px}.facai-page .batch-section:first-child{margin-top:8px}.facai-page .batch-section-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:var(--fc-text);margin-bottom:10px}.facai-page .batch-section-head em{font-style:normal;font-size:12px;color:var(--fc-muted);font-weight:500;margin-left:6px}.facai-page .batch-tools button{background:#eef1f6;color:var(--fc-text);border:none;border-radius:7px;padding:4px 12px;font-size:12px;cursor:pointer;margin-left:6px;transition:background .15s}.facai-page .batch-tools button:hover{background:#e2e7ef}.facai-page .batch-grid{display:grid;gap:8px}.facai-page .batch-grid.zodiac{grid-template-columns:repeat(7,1fr)}.facai-page .batch-grid.number{grid-template-columns:repeat(10,1fr)}.facai-page .batch-grid.color{grid-template-columns:repeat(3,1fr)}.facai-page .batch-chip .cdot{flex:none;width:14px;height:14px;border-radius:50%}.facai-page .batch-chip{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--fc-border);border-radius:8px;padding:8px 4px;font-size:14px;font-weight:600;cursor:pointer;background:#fff;color:var(--fc-text);-webkit-user-select:none;user-select:none;transition:border-color .12s,background .12s,color .12s}.facai-page .batch-chip:hover{border-color:#f0a59f}.facai-page .batch-chip.on{border-color:var(--fc-accent);background:#fdecea;color:var(--fc-accent)}.facai-page .batch-chip input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.facai-page .batch-chip .box{flex:none;width:16px;height:16px;border-radius:5px;border:1.5px solid var(--fc-border);background:#fff;position:relative;transition:background .12s,border-color .12s}.facai-page .batch-chip.on .box{background:var(--fc-accent);border-color:var(--fc-accent)}.facai-page .batch-chip.on .box:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.facai-page .batch-foot{margin-top:18px;border-top:1px solid var(--fc-border);padding-top:16px;flex:none}.facai-page .batch-foot .actions{margin-top:14px}.facai-page .gate{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center}.facai-page .gate-card{width:340px;max-width:90vw;background:var(--fc-panel);border-radius:var(--fc-radius);box-shadow:var(--fc-shadow);padding:34px 30px 30px;display:flex;flex-direction:column;gap:14px}.facai-page .gate-card h1{font-size:24px;font-weight:800;text-align:center;color:var(--fc-text)}.facai-page .gate-sub{font-size:13px;color:var(--fc-muted);text-align:center;margin-top:-8px;margin-bottom:6px}.facai-page .gate-input{padding:12px 14px;font-size:15px;border:2px solid var(--fc-border);border-radius:10px;outline:none;color:var(--fc-text);background:#fff;transition:border .15s}.facai-page .gate-input:focus{border-color:var(--fc-accent)}.facai-page .gate-error{font-size:13px;color:var(--fc-accent);text-align:center}.facai-page .gate-btn{margin-top:6px;padding:12px;font-size:16px;font-weight:700;letter-spacing:2px;color:#fff;border:none;border-radius:10px;cursor:pointer;background:linear-gradient(135deg,#d62019,#f0463a);box-shadow:0 8px 22px #d620194d;transition:opacity .15s}.facai-page .gate-btn:disabled{opacity:.6;cursor:default}.admin-page{min-height:100vh;background:#f6f7fb;color:#18202f;padding:28px}.admin-shell{max-width:1180px;margin:0 auto}.admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.admin-header h1{font-size:26px;margin-bottom:6px}.admin-header p{color:#687386;font-size:14px}.admin-header a{color:#2563eb;text-decoration:none;font-weight:700}.admin-token,.admin-create{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.admin-token input,.admin-create input,.admin-create select{height:38px;border:1px solid #d7deea;border-radius:8px;padding:0 12px;background:#fff;color:#18202f}.admin-token input{min-width:300px;flex:1}.admin-create input{min-width:180px}.admin-token button,.admin-create button,.admin-actions button{height:38px;border:none;border-radius:8px;background:#2563eb;color:#fff;padding:0 14px;font-weight:700;cursor:pointer}.admin-token button:last-child,.admin-actions button{background:#eef2f8;color:#1f2a3d}.admin-create button:disabled{opacity:.5;cursor:default}.admin-message{border-radius:8px;padding:10px 12px;margin:12px 0;font-size:14px;font-weight:700}.admin-message.ok{background:#e9f8ef;color:#126c35}.admin-message.error{background:#fdecec;color:#b42318}.admin-table-wrap{overflow:auto;background:#fff;border:1px solid #e3e8f0;border-radius:8px}.admin-table{width:100%;border-collapse:collapse;min-width:860px}.admin-table th,.admin-table td{text-align:left;padding:14px 16px;border-bottom:1px solid #edf1f7;font-size:14px}.admin-table th{background:#f8fafd;color:#657083;font-size:12px;letter-spacing:0}.admin-table td span{display:block;color:#7b8798;font-size:12px;margin-top:4px}.admin-status{display:inline-flex!important;width:fit-content;margin-top:0!important;padding:4px 9px;border-radius:999px;font-weight:800}.admin-status.active{background:#e9f8ef;color:#126c35}.admin-status.disabled{background:#eef2f8;color:#657083}.admin-actions{display:flex;gap:8px}.admin-empty{text-align:center!important;color:#7b8798}@media(max-width:720px){.admin-page{padding:16px}.admin-header{align-items:flex-start;flex-direction:column}.admin-token input,.admin-create input,.admin-create select,.admin-token button,.admin-create button{width:100%}}
