.ui-visibility-picker[data-v-a0a679b6]{width:100%;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.ui-visibility-group[data-v-a0a679b6]{display:grid;gap:8px;padding:12px;border-radius:12px;background:linear-gradient(180deg,#fff,#f7fbff);border:1px solid #dce8f5;box-shadow:0 8px 22px #315e880f}.ui-visibility-group strong[data-v-a0a679b6]{font-size:13px;color:#1f3856}.ui-toggle[data-v-a0a679b6]{height:34px;border:0;border-radius:9px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;background:#edf3fa;color:#526b85;cursor:pointer;transition:.18s ease}.ui-toggle i[data-v-a0a679b6]{width:32px;height:18px;border-radius:99px;background:#c7d3df;position:relative;transition:.18s ease}.ui-toggle i[data-v-a0a679b6]:before{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #1e39592e;transition:.18s ease}.ui-toggle.active[data-v-a0a679b6]{background:#e5f6ef;color:#0f7d5f}.ui-toggle.active i[data-v-a0a679b6]{background:#1dbf8f}.ui-toggle.active i[data-v-a0a679b6]:before{transform:translate(14px)}@media(max-width:980px){.ui-visibility-picker[data-v-a0a679b6]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.ui-visibility-picker[data-v-a0a679b6]{grid-template-columns:1fr}}*{box-sizing:border-box}html,body,#admin-app{width:100%;height:100%;min-height:100%;margin:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Microsoft YaHei,sans-serif;color:#17233a;background:#f4f7fb}html,body{overflow:hidden;overscroll-behavior:none}body.admin-mobile-scroll{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}body.admin-mobile-scroll #admin-app{height:auto;min-height:100dvh}button,input,select{font:inherit}button,select{cursor:pointer}input,select,button{outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease}input:focus-visible,select:focus-visible,button:focus-visible{border-color:#20c8d29e!important;box-shadow:0 0 0 4px #20c8d224!important}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:128px;padding-right:38px!important;background-image:linear-gradient(45deg,transparent 50%,#18727a 50%),linear-gradient(135deg,#18727a 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}select:hover,button:hover{background-color:#f7fcfd}body.admin-drawer-locked,body.admin-drawer-locked.admin-mobile-scroll{overflow:hidden}@media(max-width:760px){html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}#admin-app{height:auto;min-height:100dvh}}.ok{color:#0aa56a}.danger{color:#d2384f}code{padding:4px 8px;border-radius:6px;background:#eef6f8;color:#18727a}.primary-btn{width:100%;height:47px;border:0;border-radius:12px;color:#063c43;font-weight:850;background:linear-gradient(135deg,#20c8d2,#70ecf4);box-shadow:0 14px 28px #20c8d22e;transition:transform .18s ease,filter .18s ease}.primary-btn:hover{transform:translateY(-1px);filter:saturate(1.08)}.primary-btn:disabled{opacity:.72;cursor:wait}.link-btn{border:0;background:transparent;color:#247983;padding:4px 8px}.empty{padding:28px;color:#788ba3;text-align:center}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(300px,430px) minmax(340px,480px);align-items:center;justify-content:center;gap:54px;padding:42px 18px;background:linear-gradient(120deg,#fff,#f2ffff 45%,#eef3f7)}.login-visual{text-align:center;animation:login-drop .55s ease both}.avatar-ring{width:76px;height:76px;margin:0 auto 18px;border:1px solid #dbe8f6;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 14px 34px #558ec629}.avatar-ring img{width:58px;height:58px;object-fit:contain;border-radius:50%}.login-visual h1{margin:0;color:#18727a;font-size:42px;font-weight:950;letter-spacing:0}.login-visual p{margin:8px 0 0;color:#647995;font-size:15px}.pulse-stack{display:flex;justify-content:center;gap:10px;margin-top:34px}.pulse-stack i{width:46px;height:6px;border-radius:99px;background:#20c8d2;animation:pulse-line 1.6s ease-in-out infinite}.pulse-stack i:nth-child(2){animation-delay:.15s}.pulse-stack i:nth-child(3){animation-delay:.3s}.login-card{width:min(480px,100%);padding:34px 32px;border-radius:18px;background:#ffffffd6;border:1px solid rgba(255,255,255,.92);box-shadow:0 26px 80px #1935421f;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:card-up .55s .08s cubic-bezier(.2,.9,.2,1) both}.login-card h2{margin:0;text-align:center;font-size:26px;letter-spacing:0}.login-card>p{margin:6px 0 26px;color:#667894;text-align:center}.field{display:grid;gap:8px;margin-bottom:18px;color:#263951;font-weight:750}.input-wrap{height:46px;display:flex;align-items:center;gap:12px;border:1px solid #dbe8f6;border-radius:11px;background:#ffffffc7;padding:0 13px}.input-wrap:focus-within{border-color:#20c8d26b;box-shadow:0 0 0 4px #20c8d21f}.input-wrap i{color:#91a8c3;font-style:normal}.input-wrap input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#17233a}.eye-btn{border:0;background:transparent;color:#8aa1be}.notice{margin:-8px 0 14px;padding:10px 12px;border-radius:10px;background:#fff1f2;color:#d2384f;border:1px solid #ffd1d8}@keyframes login-drop{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}@keyframes card-up{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@keyframes pulse-line{50%{transform:translateY(-8px);opacity:.45}}.dashboard{width:100%;height:100%;min-height:100vh;min-height:100dvh;display:flex;background:#f5f7fb;overflow:hidden}.network-progress{position:fixed;left:0;right:0;top:0;z-index:80;height:3px;overflow:hidden;background:#20c8d21f}.network-progress:after{content:"";position:absolute;inset:0 auto 0 0;width:34%;background:linear-gradient(90deg,transparent,#20c8d2 35%,#58e6c8 68%,transparent);animation:admin-network-slide 1.8s cubic-bezier(.4,0,.2,1) infinite}.sidebar{flex:0 0 258px;width:258px;min-width:258px;height:100%;min-height:100vh;min-height:100dvh;position:sticky;top:0;background:#fff;border-right:1px solid #e4edf6;padding:18px 12px;display:flex;flex-direction:column}.side-brand{height:54px;display:flex;align-items:center;gap:12px;padding:0 12px}.side-brand img{width:42px;height:42px;border-radius:50%;border:1px solid #dbe8f6}.side-brand strong,.side-brand small{display:block}.side-brand small{color:#718299;margin-top:2px}.sidebar nav{display:grid;gap:6px;margin-top:18px}.sidebar nav button,.side-action{height:42px;border:0;border-radius:10px;background:transparent;color:#34445c;display:flex;align-items:center;gap:12px;padding:0 16px;text-align:left;font-weight:750}.sidebar nav button.active,.sidebar nav button:hover{background:#20c8d21a;color:#18727a}.side-action{margin-top:auto;width:100%;border:1px solid #e5edf7;background:#f8fbff}.main{flex:1 1 auto;min-width:0;height:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.topbar{height:66px;position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 30px;background:#ffffffe0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #e5edf7}.topbar h2{margin:0;font-size:21px}.topbar p{margin:3px 0 0;color:#718299;font-size:13px}.top-actions{display:flex;align-items:center;gap:10px}.top-actions button,.menu-btn,.panel header button,.panel header select,.toolbar button{height:38px;border:1px solid #d8e5f2;border-radius:10px;background:#fff;color:#2c405b;padding:0 13px}.menu-btn,.top-actions button{width:40px;padding:0;display:inline-grid;place-items:center;font-weight:900}.refresh-btn{position:relative;overflow:hidden}.refresh-btn__icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform-origin:50% 50%}.refresh-btn.loading{border-color:#20c8d273;background:linear-gradient(180deg,#f7feff,#eafcff);box-shadow:0 0 0 4px #20c8d21a,0 10px 24px #20c8d229}.refresh-btn.loading .refresh-btn__icon{position:relative;z-index:1;animation:admin-spin 2.4s cubic-bezier(.55,0,.25,1) infinite,admin-refresh-breathe 2.4s ease-in-out infinite}.menu-btn{background:linear-gradient(180deg,#fff,#f4fbfd);box-shadow:0 10px 20px #1f416914}.menu-btn:hover{transform:translateY(-1px)}.status-dot,.admin-name{height:38px;display:inline-flex;align-items:center;border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:0 13px}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#17b56b;margin-right:8px;box-shadow:0 0 0 4px #17b56b1f}.status-dot.busy:before{background:#20c8d2;box-shadow:0 0 0 4px #20c8d224;animation:admin-sync-breathe 1.8s ease-in-out infinite}.menu-btn{display:none}.content{flex:1 1 auto;width:100%;min-width:0;padding:28px;display:block}.view,.view-grid{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}@keyframes admin-network-slide{0%{transform:translate(-100%)}to{transform:translate(240%)}}@keyframes admin-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}@keyframes admin-spin{to{transform:rotate(360deg)}}@keyframes admin-orbit{to{transform:rotate(360deg)}}@keyframes admin-refresh-breathe{0%,to{opacity:.72}50%{opacity:1}}.status-dot.busy:before{box-shadow:0 0 #20c8d257}@keyframes admin-sync-breathe{0%,to{transform:scale(1);box-shadow:0 0 0 4px #20c8d21f}50%{transform:scale(1.08);box-shadow:0 0 0 8px #20c8d205}}.refresh-btn.loading:disabled{cursor:wait;opacity:.86}.refresh-btn.loading:disabled .refresh-btn__icon{animation-duration:2.8s}.refresh-btn.loading:hover:not(:disabled){transform:translateY(-1px)}.wide{grid-column:1 / -1}.stat-grid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative;z-index:5}.stat-card{min-height:94px;display:flex;align-items:center;gap:15px;padding:18px;border:1px solid #e5edf7;border-radius:14px;background:#fff;box-shadow:0 12px 30px #1f416912;position:relative}.stat-card:after{content:attr(data-tip);position:absolute;left:16px;top:calc(100% + 8px);z-index:6;min-width:180px;max-width:280px;padding:10px 12px;border:1px solid #dce8f4;border-radius:10px;background:#fffffffa;box-shadow:0 18px 36px #1f416924;color:#41546c;font-size:12px;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease}.stat-card:hover:after{opacity:1;transform:translateY(0)}.stat-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#eafcff,#c9f2f7);color:#18727a;font-weight:900;box-shadow:inset 0 0 0 1px #20c8d229}.stat-card small{display:block;color:#718299}.stat-card strong{font-size:24px}.panel{min-width:0;border:1px solid #e5edf7;border-radius:14px;background:#fff;box-shadow:0 12px 30px #1f416912;overflow:visible}.panel header{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #edf2f8}.panel h3{margin:0;font-size:16px}.filter-grid,.toolbar{display:flex;gap:10px;flex-wrap:wrap}.filter-grid{padding:16px}.filter-grid>.admin-select{flex:1 1 220px;min-width:168px}.filter-grid>.admin-select.open{z-index:40}.toolbar input,.filter-grid input,.filter-grid select{height:40px;min-width:168px;border:1px solid #d8e5f2;border-radius:10px;padding:0 12px;background-color:#fff;box-shadow:0 8px 18px #1f41690a}.filter-grid select{min-width:132px;font-weight:780;color:#24455a}.filter-grid input:hover,.filter-grid select:hover,.toolbar input:hover{border-color:#20c8d261}.log-filter-grid{align-items:center}.check-pill{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid #d8e5f2;border-radius:999px;background:#f8fbff;color:#31506a;font-size:13px;font-weight:800;box-shadow:0 8px 18px #1f41690a}.check-pill input{min-width:0;width:16px;height:16px;accent-color:#20c8d2;box-shadow:none}.log-pager{align-items:center;justify-content:flex-end}.log-pager .admin-select{min-width:118px}.log-pager button{min-width:72px}.log-pager button:disabled{cursor:not-allowed;opacity:.52}.page-tabs{min-height:40px;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid #dceaf2;border-radius:13px;background:#f8fdfe;box-shadow:inset 0 1px #ffffffe6}.page-tabs button{min-width:86px;height:32px;border:0;border-radius:9px;background:transparent;color:#51677f;font-weight:820;padding:0 12px;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.page-tabs button:hover{background:#20c8d214;color:#18727a}.page-tabs button.active{background:#20c8d2;color:#fff;box-shadow:0 8px 18px #20c8d233}.log-clean-grid{align-items:center}.log-clean-grid input{min-width:220px;font-weight:760;color:#35506a;background:linear-gradient(180deg,#fff,#f8fbff),radial-gradient(circle at 100% 0,rgba(47,130,234,.08),transparent 32%);border-color:#c8dcf4;box-shadow:0 8px 18px #4381d614,inset 0 1px #ffffffe6;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.log-clean-grid input::placeholder{color:#6f849d}.log-clean-grid input:hover,.log-clean-grid input:focus{outline:0;border-color:#7fb4f4;box-shadow:0 0 0 3px #4392eb1f,0 12px 28px #4381d61f}.log-clean-grid input:focus{transform:translateY(-1px)}.clean-tip{margin:-4px 16px 16px;padding:10px 12px;border:1px solid #dce8f5;border-radius:12px;background:#f8fbff;color:#607487;font-size:13px;line-height:1.55}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px}.detail-grid article{padding:18px;border:1px solid #e8eef6;border-radius:12px}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:#718299}.detail-grid strong{font-size:24px}.risk-body{padding:16px;display:grid;gap:10px}.risk-body p{margin:0;padding:12px 14px;border-radius:10px;background:#f6fbfd;color:#41546c}.bar-chart{height:310px;display:flex;align-items:end;gap:10px;padding:24px 18px 42px}.bar-chart span{flex:1;min-width:12px;position:relative;border-radius:9px 9px 0 0;background:linear-gradient(180deg,#20c8d2,#97edf2)}.bar-chart b{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);font-size:12px;color:#18727a}.bar-chart small{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);font-size:11px;color:#718299}.risk-chart{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px}.risk-ring{grid-column:1 / -1;display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;padding:16px;border:1px solid #e5edf7;border-radius:14px;background:#fff;box-shadow:0 12px 30px #1f416912}.risk-ring-core{position:relative;width:220px;height:220px;margin:0 auto}.risk-ring-core svg{width:220px;height:220px;transform:rotate(-90deg)}.risk-ring-track,.risk-ring-fill{fill:none;stroke-width:16}.risk-ring-track{stroke:#edf3fb}.risk-ring-fill{stroke:url(#riskRingGradient);stroke:#20c8d2;stroke-linecap:round;stroke-dasharray:402;transition:stroke-dashoffset .35s ease}.risk-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;text-align:center}.risk-ring-center strong{font-size:44px;line-height:1}.risk-ring-center small{color:#6a7f9b;margin-top:6px}.risk-ring-list{display:grid;gap:10px;align-content:start}.risk-ring-item{border:1px solid #e5edf7;border-radius:12px;background:#fbfdff;padding:12px 14px;display:grid;gap:8px;text-align:left}.risk-ring-item span{color:#41546c;font-weight:750}.risk-ring-item b{height:10px;border-radius:999px;display:block}.risk-ring-tip{min-height:46px;padding:12px 14px;border-radius:12px;background:#f4fbfd;color:#41546c}.risk-bars,.risk-paths{min-width:0;padding:16px;border:1px solid #e5edf7;border-radius:14px;background:#fff;box-shadow:0 12px 30px #1f416912}.risk-bars article,.risk-paths article{position:relative;display:grid;gap:8px;padding:10px 0}.risk-bars article:after,.risk-paths article:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 6px);max-width:100%;padding:8px 10px;border-radius:8px;border:1px solid #dce8f4;background:#fffffffa;box-shadow:0 12px 24px #1f41691f;color:#41546c;font-size:12px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.risk-bars article:hover:after,.risk-paths article:hover:after{opacity:1;transform:translateY(0)}.risk-bars span,.risk-paths span{color:#6a7f9b;font-size:13px}.risk-bars b,.risk-paths b{display:block;height:10px;border-radius:999px;background:linear-gradient(180deg,#ffffff6b,#fff0 45%),linear-gradient(90deg,#18b9c5,#7fe9ef 52%,#5ad7e2);box-shadow:inset 0 -2px 6px #00000014,inset 0 1px #ffffff8c,0 8px 16px #20c8d229;position:relative;overflow:hidden}.risk-bars b:after,.risk-paths b:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.28),transparent 38%,rgba(255,255,255,.12));mix-blend-mode:screen;pointer-events:none}.risk-bars strong{color:#17233a;font-size:18px}.admin-select{position:relative;min-width:168px}.admin-select.open{z-index:30}.admin-select-trigger{width:100%;min-height:40px;border:1px solid #d7e8f1;border-radius:12px;background:linear-gradient(180deg,#fff,#f7fcfd);padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#31506a;font-weight:750;box-shadow:0 8px 18px #1f41690d,inset 0 1px #ffffffe6;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.admin-select-trigger:hover,.admin-select.open .admin-select-trigger{border-color:#20c8d27a;background:#fff;box-shadow:0 0 0 3px #20c8d21f,0 12px 28px #1f41691a}.admin-select-trigger:active{transform:translateY(1px)}.admin-select-arrow{color:#18aeb8;font-style:normal;font-size:13px;line-height:1;transform:rotate(180deg);transition:transform .2s ease,color .2s ease}.admin-select.open .admin-select-arrow{transform:rotate(0)}.admin-select-trigger span,.admin-select-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-select-menu{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:20;padding:4px;border:1px solid rgba(207,225,239,.72);border-radius:14px;background:#f8fdfefa;box-shadow:0 22px 44px #1f41691f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);max-height:min(320px,calc(100dvh - 160px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(123,144,170,.48) transparent}.admin-select-menu::-webkit-scrollbar{width:8px}.admin-select-menu::-webkit-scrollbar-track{background:transparent}.admin-select-menu::-webkit-scrollbar-thumb{border-radius:999px;background:#7b90aa61}.admin-select-menu::-webkit-scrollbar-thumb:hover{background:#7b90aa94}.admin-select-option{position:relative;width:100%;min-height:39px;border:0;border-radius:0;background:transparent;color:#475c73;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 11px 0 12px;text-align:left;font-weight:760;box-shadow:none!important;transition:background .16s ease,color .16s ease}.admin-select-option+.admin-select-option{border-top:1px solid rgba(224,234,242,.82)}.admin-select-option:hover,.admin-select-option.active{background:#20c8d21a;color:#18727a}.admin-select-check{color:#18aeb8;font-size:14px;font-style:normal;font-weight:900}.admin-select-option:focus-visible{background:#20c8d21a;box-shadow:inset 0 0 0 1px #20c8d238!important}.admin-select-menu button{border-radius:0;box-shadow:none!important}.admin-select-menu button:hover{transform:none!important}.admin-select-menu .admin-select-option:first-child,.admin-select-menu .admin-select-option:first-child:hover,.admin-select-menu .admin-select-option:first-child.active{border-top-left-radius:10px;border-top-right-radius:10px}.admin-select-menu .admin-select-option:last-child,.admin-select-menu .admin-select-option:last-child:hover,.admin-select-menu .admin-select-option:last-child.active{border-bottom-left-radius:10px;border-bottom-right-radius:10px}.admin-date-picker{position:relative;min-width:180px}.admin-date-trigger{width:100%;min-height:40px;border:1px solid #d7e8f1;border-radius:12px;background:linear-gradient(180deg,#fff,#f7fcfd);padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#31506a;font-weight:750;box-shadow:0 8px 18px #1f41690d,inset 0 1px #ffffffe6}.admin-date-panel{position:absolute;left:0;top:calc(100% + 10px);z-index:30;width:min(290px,calc(100vw - 28px));padding:10px;border:1px solid rgba(207,225,239,.72);border-radius:14px;background:#f8fdfefa;box-shadow:0 22px 44px #1f416929;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-date-picker.align-right .admin-date-panel{left:auto;right:0}.admin-date-head,.admin-date-week,.admin-date-actions,.admin-date-time{display:flex;align-items:center}.admin-date-head{justify-content:space-between;gap:10px;margin-bottom:8px}.admin-date-head strong{color:#18727a;font-size:14px}.admin-date-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;color:#7b90aa;font-size:12px;text-align:center}.admin-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.admin-date-cell{height:34px;border:0;border-radius:9px;background:#fff;color:#35506a}.admin-date-cell:hover:not(:disabled),.admin-date-cell.today{background:#20c8d21a;color:#18727a}.admin-date-cell.empty{background:transparent}.admin-date-time{gap:8px;margin-top:10px;justify-content:center}.admin-date-time select{height:34px;min-width:70px;border:1px solid #d7e8f1;border-radius:10px;background:#fff;color:#31506a}.admin-date-actions{gap:8px;margin-top:10px;justify-content:flex-end}.admin-date-actions button{height:34px;padding:0 12px;border:1px solid #d7e8f1;border-radius:10px;background:#fff;color:#31506a;font-weight:750}.admin-date-actions .primary{border-color:#20c8d247;background:#20c8d2;color:#fff}.select-pop-enter-active,.select-pop-leave-active{transition:opacity .18s ease,transform .18s cubic-bezier(.2,.8,.2,1);transform-origin:top center}.select-pop-enter-from,.select-pop-leave-to{opacity:0;transform:translateY(-8px) scale(.98)}.stat-card{overflow:visible;z-index:1;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stat-card:hover{transform:translateY(-2px);border-color:#20c8d247;box-shadow:0 18px 34px #1f41691f;z-index:10}.stat-card:after,.bar-chart span:after{left:50%;top:auto;bottom:auto;min-width:0;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;background:#122236f2;color:#fff;transform:translate(-50%,8px)}.stat-card:hover:after,.bar-chart span:hover:after{opacity:1;transform:translate(-50%)}.stat-icon{width:46px;height:46px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.72),transparent 34%),linear-gradient(135deg,#20c8d229,#70ecf45c);box-shadow:inset 0 0 0 1px #18727a1a,0 10px 18px #20c8d21f}.stat-icon svg{width:22px;height:22px;fill:currentColor}.stat-copy{min-width:0}.bar-chart span:after{content:attr(data-tip);position:absolute;z-index:30;padding:8px 10px;border-radius:10px;font-size:12px;line-height:1.2;box-shadow:0 18px 30px #1222362e;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.bar-chart span:hover{filter:saturate(1.18)}.toast-host{position:fixed;top:18px;right:18px;z-index:9999;width:min(360px,calc(100vw - 28px));display:grid;gap:10px;pointer-events:none}.toast-card{pointer-events:auto;min-height:64px;display:grid;grid-template-columns:34px minmax(0,1fr) 30px;align-items:center;gap:12px;padding:12px 12px 12px 14px;border:1px solid rgba(216,229,242,.9);border-radius:14px;background:#fffffff5;box-shadow:0 22px 50px #1f41692e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.toast-card.error{border-color:#ff96a594}.toast-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#0f6f5a;font-weight:900;background:linear-gradient(135deg,#17b56b24,#20c8d22e)}.toast-card.error .toast-mark{color:#c72f48;background:linear-gradient(135deg,#d2384f21,#ffc4ce52)}.toast-card strong{display:block;color:#17233a;font-size:14px}.toast-card p{margin:3px 0 0;color:#61758f;font-size:13px;line-height:1.45;overflow:hidden;text-overflow:ellipsis}.toast-card button{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#7f92aa;font-size:20px;line-height:1}.toast-card button:hover{color:#17233a;background:#f1f6fb}.toast-pop-enter-from,.toast-pop-leave-to{opacity:0;transform:translate(24px) scale(.96)}.toast-pop-move{transition:transform .22s ease}.toast-host{position:fixed;top:18px;right:18px;z-index:1000;display:grid;gap:10px;width:min(360px,calc(100vw - 28px));pointer-events:none}.toast-card{pointer-events:auto;min-height:64px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 12px 13px 15px;border:1px solid rgba(216,229,242,.92);border-left:4px solid #20c8d2;border-radius:13px;background:#fffffff5;box-shadow:0 24px 54px #1f41692e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.toast-card.error{border-left-color:#d2384f}.toast-card.warn{border-left-color:#f59e0b}.toast-card strong{display:block;color:#17233a}.toast-card p{margin:4px 0 0;color:#647995;line-height:1.35}.toast-card button{width:28px;height:28px;border:0;border-radius:50%;background:#f2f7fb;color:#647995}.toast-pop-enter-active,.toast-pop-leave-active{transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.toast-pop-enter-from,.toast-pop-leave-to{opacity:0;transform:translate(24px) scale(.98)}.muted{color:#718299;font-size:13px}.rule-grid{display:grid;gap:10px;padding:16px}.rule-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px 160px;gap:12px;align-items:center;padding:12px;border:1px solid #e5edf7;border-radius:12px;background:#fbfdff}.rule-row strong,.rule-row code{display:block}.rule-row code{margin-top:6px;width:fit-content}.rule-row input{height:40px;min-width:0;border:1px solid #d8e5f2;border-radius:10px;padding:0 12px}.profile-tabs{display:flex;gap:8px;padding:0 16px 12px;flex-wrap:wrap}.profile-tabs button{height:36px;padding:0 14px;border-radius:999px;border:1px solid #d8e5f2;background:#f8fbff;color:#42536b}.profile-tabs button.active{background:#17bfc8;color:#fff;border-color:#17bfc8}.profile-editor{margin:0 16px 12px;min-height:150px;width:calc(100% - 32px);border:1px solid #d8e5f2;border-radius:12px;padding:14px;font-family:Consolas,monospace;font-size:13px;color:#17233a;background:#fcfeff}.template-actions{display:flex;gap:10px;padding:0 16px 16px;flex-wrap:wrap}.ghost-btn{height:36px;padding:0 14px;border:1px solid #d8e5f2;border-radius:10px;background:#fff;color:#42536b}button.is-loading{position:relative;overflow:hidden;cursor:wait!important;color:transparent!important;pointer-events:none}button.is-loading:after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(32,200,210,.32);border-top-color:#20c8d2;border-radius:50%;animation:admin-button-loading .72s linear infinite}button.is-loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent,rgba(32,200,210,.1),transparent);animation:admin-button-sheen 1.6s ease-in-out infinite}.primary-save-btn.is-loading:after{border-color:#ffffff6b;border-top-color:#fff}.visual-config{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) 180px auto auto;gap:10px;align-items:center;padding:16px;border-bottom:1px solid #edf2f8}.visual-config.compact{grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) auto;border-bottom:0}.visual-config input{height:40px;min-width:0;border:1px solid #d8e5f2;border-radius:10px;padding:0 12px;background:#fff}.visual-config .admin-select{min-width:150px}.user-config-hint{margin:12px 16px 0;color:#607487;font-size:13px;font-weight:700}.primary-save-btn{height:40px;min-width:132px;border:0;border-radius:12px;background:linear-gradient(135deg,#21c6cf,#1396a1);color:#fff;font-weight:900;letter-spacing:0;box-shadow:0 12px 24px #1396a138;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.primary-save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 30px #1396a147}.primary-save-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.primary-save-btn:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.primary-save-btn.is-loading:disabled{opacity:.82;box-shadow:0 12px 24px #1396a12e}@keyframes admin-button-loading{to{transform:rotate(360deg)}}@keyframes admin-button-sheen{0%{transform:translate(-120%)}to{transform:translate(120%)}}.entry-config-card{display:grid;gap:12px;margin:0 16px 16px;padding:14px;border:1px solid #dce8f5;border-radius:14px;background:#f8fbff}.entry-config-card>div:first-child{display:flex;align-items:baseline;gap:10px}.entry-config-card strong{color:#15345a}.entry-config-card span{color:#7890aa;font-size:12px}.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}.profile-card{min-width:0;border:1px solid #e5edf7;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#fff);overflow:hidden}.profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid #eef4fa}.profile-head strong{display:block;color:#17233a}.profile-head p{margin:5px 0 0;color:#718299;font-size:13px}.profile-badge{padding:4px 9px;border-radius:999px;background:#eafbfd;color:#17818a;font-size:12px;font-weight:800}.profile-fields{display:grid;gap:10px;padding:14px}.profile-fields input,.staff-rule-row input[type=number]{height:38px;min-width:0;border:1px solid #d8e5f2;border-radius:10px;padding:0 11px}.template-actions.compact{padding:0 14px 14px}.profile-rules{display:grid;gap:8px;max-height:360px;overflow:auto;padding:0 14px 14px}.rule-row.compact{grid-template-columns:minmax(160px,1fr)}.profile-json{border-top:1px solid #eef4fa;padding:12px 14px}.profile-json summary{cursor:pointer;color:#256a89;font-weight:800}.profile-json textarea{margin-top:10px;width:100%;min-height:120px;border:1px solid #d8e5f2;border-radius:10px;padding:10px;font-family:Consolas,monospace;font-size:12px}.staff-permission-box{margin:0 16px 16px;border:1px solid #e5edf7;border-radius:14px;background:#fbfdff;overflow:visible}.staff-permission-head{display:flex;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid #edf2f8}.staff-permission-head span{color:#718299;font-size:13px}.staff-rule-grid{display:grid;gap:8px;padding:12px}.staff-rule-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,1fr) 150px 150px;align-items:center;gap:10px;padding:10px;border:1px solid #e9f0f7;border-radius:12px;background:#fff}.staff-rule-row label{display:flex;align-items:center;gap:8px;font-weight:800;color:#17233a}.staff-rule-row code{width:fit-content;color:#256a89;background:#f0f8fb}@media(max-width:760px){.rule-row,.staff-rule-row,.profile-grid,.visual-config,.visual-config.compact{grid-template-columns:1fr}.filter-grid>.admin-select{width:100%;min-width:0;flex-basis:100%}.admin-select-menu{max-height:min(56dvh,360px)}}.table-wrap{overflow:auto}table{width:100%;min-width:620px;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid #edf2f8;text-align:left;white-space:nowrap}th{background:#fbfdff;color:#3c4f68}td b{display:inline-flex;padding:4px 10px;border-radius:999px;background:#20c8d21a;color:#18727a}tr:hover td{background:#fbfdff}.app-switch-enter-active,.app-switch-leave-active,.page-swap-enter-active,.page-swap-leave-active,.notice-slide-enter-active,.notice-slide-leave-active{transition:opacity .24s ease,transform .24s ease}.app-switch-enter-from,.app-switch-leave-to,.notice-slide-enter-from,.notice-slide-leave-to{opacity:0;transform:translateY(10px)}.page-swap-enter-from{opacity:0;transform:translate(18px)}.page-swap-leave-to{opacity:0;transform:translate(-18px)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.network-progress:after{width:100%;transform:none!important}}@media(max-width:920px){.stat-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.view,.view-grid{grid-template-columns:1fr}}@media(max-width:760px)and (pointer:coarse){html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}#admin-app{height:auto;min-height:100dvh}.login-page{grid-template-columns:1fr;gap:24px}.login-visual h1{font-size:34px}.dashboard{display:block;height:100vh;min-height:0;overflow:hidden}@supports (height: 100dvh){.dashboard{height:100dvh}}.sidebar{position:fixed;z-index:20;left:0;top:0;bottom:0;height:100vh;min-height:0;overflow-y:auto;width:258px;transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);-webkit-overflow-scrolling:touch}@supports (height: 100dvh){.sidebar{height:100dvh}}.drawer-open .sidebar{transform:translate(0)}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1c305c;z-index:15;opacity:0;pointer-events:none;transition:opacity .2s ease}.drawer-open .drawer-mask{opacity:1;pointer-events:auto}.main{height:100vh;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}@supports (height: 100dvh){.main{height:100dvh}}.menu-btn{display:inline-grid;place-items:center}.topbar{height:auto;min-height:66px;padding:12px 14px}.topbar p,.status-dot{display:none}.content{padding:15px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.stat-grid,.detail-grid{grid-template-columns:1fr}.panel header{align-items:flex-start;flex-direction:column}.toolbar,.toolbar input,.toolbar button,.filter-grid input,.filter-grid select,.panel header select{width:100%;min-width:0}.login-card{padding:28px 22px}}
