.modal-mask{z-index:100;background:#15171a52;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:24px;flex-direction:column;width:100%;max-height:calc(100vh - 48px);display:flex;box-shadow:0 24px 60px #141e2d2e}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 8px;display:flex}.modal-head h3{font-size:18px;font-weight:650}.modal-head p{margin-top:4px}.modal-body{padding:12px 24px 8px;overflow-y:auto}.modal-foot{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px 22px;display:flex}.modal-enter-active,.modal-leave-active{transition:opacity .22s var(--ease)}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .24s var(--ease), opacity .24s var(--ease)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{opacity:0;transform:scale(.97)}.app-header[data-v-fa5c5f9f]{z-index:50;-webkit-backdrop-filter:saturate(1.6)blur(12px);animation:fade .4s var(--ease) both;background:#f7f9fbdb;border-bottom:1px solid #e9edf1b3;position:sticky;top:0}.inner[data-v-fa5c5f9f]{max-width:var(--page-max);padding:0 var(--page-pad);align-items:center;gap:24px;height:72px;margin:0 auto;display:flex}.brand[data-v-fa5c5f9f]{flex:none;align-items:center;gap:10px;display:flex}.logo[data-v-fa5c5f9f]{background:var(--brand);color:#fff;border-radius:11px;place-items:center;width:36px;height:36px;font-size:17px;font-weight:750;display:grid}.brand-name[data-v-fa5c5f9f]{letter-spacing:.01em;font-size:16px;font-weight:650}.brand-name b[data-v-fa5c5f9f]{color:var(--text-secondary);margin-left:6px;font-weight:650}.pill-nav[data-v-fa5c5f9f]{background:#eef1f4;border-radius:24px;align-items:center;gap:2px;height:46px;margin:0 auto;padding:4px;display:flex}.pill-nav a[data-v-fa5c5f9f]{color:#4a5059;white-space:nowrap;height:38px;transition:background .22s var(--ease), color .22s var(--ease);border-radius:20px;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:550;display:inline-flex;position:relative}.pill-nav a[data-v-fa5c5f9f]:hover{color:var(--text-primary);background:#fff9}.pill-nav a.active[data-v-fa5c5f9f]{background:var(--brand);color:#fff}.nav-badge[data-v-fa5c5f9f]{background:var(--brand);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.pill-nav a.active .nav-badge[data-v-fa5c5f9f]{color:var(--brand-dark);background:#fff}.right[data-v-fa5c5f9f]{flex:none;align-items:center;gap:10px;display:flex}.upload-btn svg[data-v-fa5c5f9f]{width:15px;height:15px}.user[data-v-fa5c5f9f]{position:relative}.user-btn[data-v-fa5c5f9f]{cursor:pointer;background:0 0;border:none;border-radius:14px;align-items:center;gap:10px;padding:4px 8px 4px 4px;transition:background .16s;display:flex}.user-btn[data-v-fa5c5f9f]:hover{background:#eef1f4}.avatar[data-v-fa5c5f9f]{background:var(--brand-soft);width:34px;height:34px;color:var(--brand-dark);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar.lg[data-v-fa5c5f9f]{width:42px;height:42px;font-size:16px}.user-meta[data-v-fa5c5f9f]{text-align:left;flex-direction:column;line-height:1.25;display:flex}.user-meta .name[data-v-fa5c5f9f]{font-size:13.5px;font-weight:600}.user-meta .venue[data-v-fa5c5f9f]{color:var(--text-secondary);font-size:11.5px}.chev[data-v-fa5c5f9f]{width:15px;height:15px;color:var(--text-muted)}.menu[data-v-fa5c5f9f]{border:1px solid var(--border);width:260px;box-shadow:var(--shadow-float);transform-origin:100% 0;background:#fff;border-radius:18px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.menu-head[data-v-fa5c5f9f]{border-bottom:1px solid var(--divider);margin-bottom:6px;padding:10px 10px 12px}.menu-head .name[data-v-fa5c5f9f]{font-weight:650}.points-line[data-v-fa5c5f9f]{background:var(--brand-soft);border-radius:12px;justify-content:space-between;align-items:baseline;margin-top:12px;padding:8px 12px;display:flex}.points-line b[data-v-fa5c5f9f]{color:var(--brand-dark);font-size:20px}.menu a[data-v-fa5c5f9f],.menu button[data-v-fa5c5f9f]{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:13.5px;transition:background .14s;display:flex}.menu a[data-v-fa5c5f9f]:hover,.menu button[data-v-fa5c5f9f]:hover{background:var(--surface-soft)}.menu svg[data-v-fa5c5f9f]{width:16px;height:16px;color:var(--text-secondary)}.sep[data-v-fa5c5f9f]{background:var(--divider);height:1px;margin:6px 0}.menu-toggle[data-v-fa5c5f9f],.mobile-nav[data-v-fa5c5f9f]{display:none}@media (width<=1180px){.user-meta[data-v-fa5c5f9f],.chev[data-v-fa5c5f9f]{display:none}.pill-nav a[data-v-fa5c5f9f]{padding:0 12px}}@media (width<=980px){.pill-nav[data-v-fa5c5f9f]{display:none}.menu-toggle[data-v-fa5c5f9f]{display:inline-flex}.right[data-v-fa5c5f9f]{margin-left:auto}.mobile-nav[data-v-fa5c5f9f]{padding:8px var(--page-pad) 16px;border-top:1px solid var(--divider);grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.mobile-nav a[data-v-fa5c5f9f]{border:1px solid var(--border);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-weight:550;display:flex}.mobile-nav a svg[data-v-fa5c5f9f]{width:17px;height:17px;color:var(--text-secondary)}.mobile-nav a.active[data-v-fa5c5f9f]{border-color:var(--brand);color:var(--brand-dark);background:var(--brand-soft)}.mobile-nav a.active svg[data-v-fa5c5f9f]{color:var(--brand)}.mobile-nav .nav-badge[data-v-fa5c5f9f]{margin-left:auto}}@media (width<=560px){.inner[data-v-fa5c5f9f]{gap:12px;height:62px}.brand-name b[data-v-fa5c5f9f]{display:none}.upload-btn[data-v-fa5c5f9f]{padding:0 10px}}.toasts{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;top:84px;left:50%;transform:translate(-50%)}.toast{background:var(--text-primary);color:#fff;box-shadow:var(--shadow-float);border-radius:14px;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:500;display:flex}.toast svg{flex:none;width:16px;height:16px}.toast.success svg{color:#7dd3a5}.toast.error{color:var(--red);background:#fff;border:1px solid #f3d3cf}:root{--bg:#f7f9fb;--surface:#fff;--surface-soft:#f2f5f7;--surface-hover:#f7f9fb;--text-primary:#15171a;--text-secondary:#7f8792;--text-muted:#a7adb5;--brand:#ee741c;--brand-hover:#e0670f;--brand-dark:#b65a0e;--brand-aux:#f28c28;--brand-soft:#fff1e6;--brand-ring:#ee741c29;--border:#e9edf1;--border-input:#e6eaef;--divider:#eef1f4;--green:#2f8a57;--green-soft:#e8f5ee;--blue:#3a6fb0;--blue-soft:#eaf1fa;--yellow:#a67a12;--yellow-soft:#fbf3df;--red:#c4483e;--red-soft:#fcecea;--purple:#6b5bb5;--purple-soft:#efedfa;--grey:#6d7580;--grey-soft:#f0f2f5;--radius-xl:24px;--radius-lg:22px;--radius-md:18px;--radius-sm:14px;--radius-xs:10px;--shadow-card:0 4px 20px #141e2d08;--shadow-hover:0 8px 28px #141e2d0f;--shadow-float:0 8px 30px #141e2d1a;--font:"PingFang SC", "HarmonyOS Sans SC", "Noto Sans SC", "Microsoft YaHei", Inter, "SF Pro Display", system-ui, -apple-system, sans-serif;--ease:cubic-bezier(.22, .61, .36, 1);--page-max:1360px;--page-pad:40px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1;margin:0;font-size:14px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,p{margin:0}img{max-width:100%;display:block}::selection{background:var(--brand-soft);color:var(--brand-dark)}.page{max-width:var(--page-max);padding:32px var(--page-pad) 72px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:34px;font-weight:750;line-height:1.2}.page-head .sub{color:var(--text-secondary);margin-top:8px;font-size:14px}.page-head .actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid{gap:20px;display:grid}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:12px}.section-title{align-items:center;gap:8px;font-size:18px;font-weight:650;display:flex}.section-title .count{color:var(--text-muted);font-size:14px;font-weight:500}.muted{color:var(--text-secondary)}.faint{color:var(--text-muted)}.small{font-size:12.5px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.num{font-variant-numeric:tabular-nums}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid #edf0f3;padding:24px}.card.flat{box-shadow:none}.card.pad-0{padding:0}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card.hoverable{transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease)}.card.hoverable:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.btn{border-radius:var(--radius-sm);background:var(--surface-soft);height:42px;color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), transform .12s var(--ease), box-shadow .16s;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:550;display:inline-flex}.btn:hover{background:#e9edf1}.btn:active{transform:scale(.98)}.btn:focus-visible{box-shadow:0 0 0 4px var(--brand-ring);outline:none}.btn svg{stroke-width:2px;width:16px;height:16px;transition:transform .18s var(--ease)}.btn:hover svg.nudge{transform:translate(2px)}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-hover)}.btn.dark{background:var(--text-primary);color:#fff}.btn.dark:hover{background:#2a2d31}.btn.ghost{border-color:var(--border);background:0 0}.btn.ghost:hover{background:var(--surface-hover)}.btn.text{height:32px;color:var(--text-secondary);background:0 0;padding:0 8px}.btn.text:hover{color:var(--brand-dark);background:var(--brand-soft)}.btn.danger{background:var(--red-soft);color:var(--red)}.btn.danger:hover{background:#f8dcd8}.btn.sm{border-radius:12px;height:34px;padding:0 12px;font-size:13px}.btn.block{width:100%}.btn[disabled],.btn.loading{opacity:.55;pointer-events:none}.icon-btn{width:38px;height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;transition:background .16s,color .16s;display:inline-flex}.icon-btn:hover{background:var(--surface-soft);color:var(--text-primary)}.icon-btn svg{width:18px;height:18px}.field{flex-direction:column;gap:8px;display:flex}.field>label,.field .label{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.field .req:after{content:"*";color:var(--brand);margin-left:2px}.field .help{color:var(--text-secondary);font-size:12.5px}.field .error{color:var(--red);font-size:12.5px}.input,.select,.textarea{border-radius:var(--radius-sm);border:1px solid var(--border-input);background:var(--surface);outline:none;width:100%;height:42px;padding:0 14px;font-size:14px;transition:border-color .16s,box-shadow .16s}.textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px;line-height:1.6}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237F8792' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.input:hover,.select:hover,.textarea:hover{border-color:#d8dee5}.input:focus,.select:focus,.textarea:focus{box-shadow:0 0 0 4px var(--brand-ring);border-color:#f4b787}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input.sm,.select.sm{border-radius:12px;height:36px;font-size:13px}.input-icon{position:relative}.input-icon svg{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-icon .input{padding-left:38px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;display:grid}.form-grid .full{grid-column:1/-1}.segmented{background:var(--surface-soft);border-radius:999px;gap:2px;padding:4px;display:inline-flex;position:relative}.segmented button{height:32px;color:var(--text-secondary);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:0 14px;font-size:13px;font-weight:550}.segmented button:hover{color:var(--text-primary)}.segmented button.active{background:var(--surface);color:var(--text-primary);box-shadow:0 1px 4px #141e2d14}.choice{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color .16s, background .16s, transform .16s var(--ease), box-shadow .16s;text-align:left;padding:16px;position:relative}.choice:hover{box-shadow:var(--shadow-hover);border-color:#f4c39c;transform:translateY(-2px)}.choice.active{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring);background:#fffaf6}.choice.disabled{cursor:not-allowed;background:var(--surface-soft);opacity:.72;box-shadow:none;border-color:var(--border);transform:none}.toggle{cursor:pointer;width:40px;height:24px;transition:background .2s var(--ease);background:#d9dee4;border:none;border-radius:999px;flex:none;position:relative}.toggle:after{content:"";width:18px;height:18px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000002e}.toggle.on{background:var(--brand)}.toggle.on:after{transform:translate(16px)}.check{cursor:pointer;align-items:center;gap:8px;font-size:13.5px;display:inline-flex}.check input{appearance:none;cursor:pointer;border:1.5px solid #cfd5dc;border-radius:6px;place-content:center;width:18px;height:18px;margin:0;transition:background .15s,border-color .15s;display:grid}.check input:after{content:"";width:9px;height:5px;transition:transform .15s var(--ease);border-bottom:2px solid #fff;border-left:2px solid #fff;margin-top:-2px;transform:rotate(-45deg)scale(0)}.check input:checked{background:var(--brand);border-color:var(--brand)}.check input:checked:after{transform:rotate(-45deg)scale(1)}.badge{background:var(--grey-soft);height:24px;color:var(--grey);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge svg{width:12px;height:12px}.badge.brand{background:var(--brand-soft);color:var(--brand-dark)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.yellow{background:var(--yellow-soft);color:var(--yellow)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.badge.solid{background:var(--brand);color:#fff}.badge.outline{border:1px solid var(--border);color:var(--text-secondary);background:0 0;font-weight:500}.dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--divider);white-space:nowrap;background:#fafbfc;padding:12px 16px;font-size:12.5px;font-weight:600}.table td{border-bottom:1px solid var(--divider);vertical-align:middle;padding:13px 16px}.table tbody tr{transition:background .14s}.table tbody tr:hover{background:#fafbfc}.table tbody tr:last-child td{border-bottom:none}.table th:first-child,.table td:first-child{padding-left:24px}.table th:last-child,.table td:last-child{padding-right:24px}.table .right{text-align:right}.table tr.clickable{cursor:pointer}.progress{background:var(--surface-soft);border-radius:999px;height:6px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--brand);transform-origin:0;height:100%;animation:grow .9s var(--ease) both;display:block}.progress.green>span{background:#5fb184}.empty{text-align:center;color:var(--text-secondary);padding:56px 24px}.empty svg{color:#d3d8de;stroke-width:1.5px;width:36px;height:36px;margin:0 auto 12px}.empty .title{color:var(--text-primary);margin-bottom:4px;font-weight:600}.skeleton{background:linear-gradient(90deg,#eef1f4 0%,#f5f7f9 50%,#eef1f4 100%) 0 0/200% 100%;border-radius:12px;animation:1.4s ease-in-out infinite shimmer}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes growY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.rise,.stagger>*{animation:rise .48s var(--ease) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.3s}.stagger>:nth-child(7){animation-delay:.36s}.stagger>:nth-child(n+8){animation-delay:.4s}.fade-enter-active,.fade-leave-active{transition:opacity .22s var(--ease), transform .22s var(--ease)}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}.drop-enter-active,.drop-leave-active{transition:opacity .18s var(--ease), transform .18s var(--ease)}.drop-enter-from,.drop-leave-to{opacity:0;transform:translateY(-4px)scale(.98)}.list-enter-active,.list-leave-active{transition:all .28s var(--ease)}.list-enter-from,.list-leave-to{opacity:0;transform:translateY(6px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1100px){:root{--page-pad:28px}}@media (width<=760px){:root{--page-pad:16px}.page{padding-top:20px}.page-head h1{font-size:26px}.page-head{align-items:flex-start;margin-bottom:20px}.card{border-radius:18px;padding:18px}.form-grid{grid-template-columns:1fr}.table-wrap .table{min-width:680px}.table th:first-child,.table td:first-child{padding-left:16px}.table th:last-child,.table td:last-child{padding-right:16px}}@media print{.no-print,.protected{display:none!important}}
