:root{--ff-red:#e0162a;--ff-red-hover:#c4121f;--ff-red-soft:#e0162a14;--ff-navy:#1f2b4d;--ff-navy-2:#3a4a73;--ff-green:#07c160;--ff-green-text:#079048;--ff-green-soft:#07c1601f;--ff-orange:#ed6a0c;--ff-orange-text:#d35a08;--ff-orange-soft:#ed6a0c1f;--ff-danger:#ee0a24;--ff-ink:#323233;--ff-text:#646566;--ff-muted:#969799;--ff-faint:#c8c9cc;--ff-border:#dcdee0;--ff-line:#ebedf0;--ff-fill:#f2f3f5;--ff-bg:#f7f8fa;--ff-white:#fff;--ff-sh-card:0 1px 2px #1f2b4d0d, 0 6px 18px #1f2b4d09;--ff-sh-pop:0 8px 24px #1f2b4d14, 0 30px 66px #1f2b4d29;--ff-sh-modal:0 28px 70px #141c3057;--ff-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Menlo", monospace;color:var(--ff-ink);background:var(--ff-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ff-bg)}a{color:var(--ff-red);text-decoration:none}a:hover{color:var(--ff-red-hover)}@keyframes ff-pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes ff-check{to{stroke-dashoffset:0}}@keyframes ff-spin{to{transform:rotate(360deg)}}.ff-app{min-height:100vh;display:flex}.ff-rail{color:#fff;background:linear-gradient(178deg,#26355c,#1b2540);flex-direction:column;flex:none;align-items:center;width:72px;height:100vh;padding:16px 0 18px;display:flex;position:sticky;top:0}.ff-rail__logo{background:var(--ff-red);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:20px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.ff-rail__item{color:#fff;opacity:.5;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:5px;width:100%;padding:12px 0;font-size:11px;text-decoration:none;display:flex;position:relative}.ff-rail__item:hover{opacity:.8;color:#fff}.ff-rail__item.is-active{opacity:1;background:#ffffff12;font-weight:600}.ff-rail__item.is-active:before{content:"";background:var(--ff-red);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:0}.ff-rail__spacer{flex:1}.ff-rail__avatar{color:#fff;cursor:pointer;background:#8a6a3a;border:0;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.ff-main{background:var(--ff-bg);flex-direction:column;flex:1;min-width:0;display:flex}.ff-topbar{border-bottom:1px solid var(--ff-line);background:#fff;flex:none;align-items:center;gap:14px;min-height:64px;padding:12px 28px;display:flex}.ff-topbar__title{color:var(--ff-navy);font-size:17px;font-weight:700}.ff-count{color:var(--ff-text);background:var(--ff-fill);border-radius:5px;padding:2px 9px;font-size:12px;font-weight:600}.ff-spacer{flex:1}.ff-content{flex:1;padding:24px 28px;overflow:auto}.ff-content--narrow{width:100%;max-width:1180px;margin:0 auto}.ff-detailhead{border-bottom:1px solid var(--ff-line);background:#fff;flex:none}.ff-detailhead__row{align-items:center;gap:13px;min-height:60px;padding:10px 24px;display:flex}.ff-back{color:var(--ff-muted);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none;display:flex}.ff-back:hover{color:var(--ff-navy)}.ff-detailhead__title{color:var(--ff-navy);text-overflow:ellipsis;white-space:nowrap;max-width:520px;font-size:16px;font-weight:700;overflow:hidden}.ff-tabs{align-items:stretch;gap:28px;height:44px;padding:0 24px;display:flex}.ff-tab{color:var(--ff-muted);border-bottom:2px solid #0000;align-items:center;font-size:14px;font-weight:500;text-decoration:none;display:flex}.ff-tab:hover{color:var(--ff-navy)}.ff-tab.is-active{color:var(--ff-navy);border-bottom-color:var(--ff-red);font-weight:600}.ff-btn{border:1px solid var(--ff-border);color:var(--ff-text);cursor:pointer;white-space:nowrap;background:#fff;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.ff-btn:hover{background:var(--ff-bg)}.ff-btn--primary{background:var(--ff-red);border-color:var(--ff-red);color:#fff}.ff-btn--primary:hover{background:var(--ff-red-hover);border-color:var(--ff-red-hover)}.ff-btn--danger{color:var(--ff-red);border-color:#f3c6cc}.ff-btn--danger:hover{background:#fef6f7}.ff-btn--warning{color:var(--ff-orange-text);border-color:#fad9b4}.ff-btn--warning:hover{background:#fff7ec}.ff-btn--success{color:var(--ff-green-text);border-color:#b7e4cb}.ff-btn--success:hover{background:#f0faf3}.ff-btn--sm{border-radius:6px;padding:5px 11px;font-size:12.5px}.ff-btn--block{width:100%}.ff-btn:disabled{opacity:.55;cursor:not-allowed}.ff-btn--dangerfill{background:var(--ff-danger);border-color:var(--ff-danger);color:#fff}.ff-linkbtn{color:var(--ff-red);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:0;padding:0;font-family:inherit}.ff-label{color:var(--ff-text);margin-bottom:7px;font-size:12.5px;font-weight:500;display:block}.ff-input,.ff-textarea,.ff-select{border:1px solid var(--ff-border);width:100%;color:var(--ff-ink);background:#fff;border-radius:7px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.ff-input:focus,.ff-textarea:focus,.ff-select:focus{border-color:var(--ff-red);box-shadow:0 0 0 3px var(--ff-red-soft)}.ff-textarea{resize:vertical;min-height:60px;line-height:1.6}.ff-input.is-error{border-color:var(--ff-red);background:#fef6f7}.ff-search{align-items:center;display:flex;position:relative}.ff-search svg{color:var(--ff-faint);position:absolute;left:11px}.ff-search .ff-input{background:var(--ff-bg);padding-left:32px;font-size:13px}.ff-card{border:1px solid var(--ff-line);box-shadow:var(--ff-sh-card);background:#fff;border-radius:10px}.ff-card__pad{padding:20px 22px}.ff-card__title{color:var(--ff-navy);font-size:13px;font-weight:700}.ff-stack{flex-direction:column;gap:16px;display:flex}.ff-badge{border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.ff-badge__dot{border-radius:50%;width:6px;height:6px}.ff-badge--draft{background:var(--ff-fill);color:var(--ff-text)}.ff-badge--draft .ff-badge__dot{background:var(--ff-faint)}.ff-badge--published,.ff-badge--active{background:var(--ff-green-soft);color:var(--ff-green-text)}.ff-badge--published .ff-badge__dot,.ff-badge--active .ff-badge__dot{background:var(--ff-green)}.ff-badge--stopped{background:var(--ff-orange-soft);color:var(--ff-orange-text)}.ff-badge--stopped .ff-badge__dot{background:var(--ff-orange)}.ff-badge--disabled{background:var(--ff-fill);color:var(--ff-muted)}.ff-badge--disabled .ff-badge__dot{background:var(--ff-faint)}.ff-chip{color:var(--ff-text);background:var(--ff-fill);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.ff-chip--req{color:var(--ff-red);background:var(--ff-red-soft);font-weight:600}.ff-chip--pk{color:var(--ff-navy-2);background:#edeff5;align-items:center;gap:4px;font-weight:600;display:inline-flex}.ff-tablecard{border:1px solid var(--ff-line);box-shadow:var(--ff-sh-card);background:#fff;border-radius:10px;overflow:hidden}.ff-table{border-collapse:collapse;width:100%}.ff-table thead th{text-align:left;border-bottom:1px solid var(--ff-line);color:var(--ff-muted);white-space:nowrap;background:#fafbfc;padding:13px 22px;font-size:12px;font-weight:600}.ff-table tbody td{border-bottom:1px solid var(--ff-fill);color:var(--ff-ink);vertical-align:middle;padding:15px 22px;font-size:13.5px}.ff-table tbody tr:last-child td{border-bottom:0}.ff-table tbody tr:hover td{background:#fcfcfd}.ff-table .ff-cellactions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.ff-t-strong{color:var(--ff-navy);font-size:14.5px;font-weight:600}.ff-t-sub{color:var(--ff-muted);margin-top:5px;font-size:12px}.ff-mono{font-family:var(--ff-mono)}.ff-num{font-family:var(--ff-mono);color:var(--ff-ink);font-weight:600}.ff-idcopy{align-items:center;gap:8px;display:inline-flex}.ff-idcopy button{color:var(--ff-faint);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.ff-idcopy button:hover{color:var(--ff-text)}.ff-tag{border-radius:6px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.ff-tag--unknown{background:var(--ff-fill);color:var(--ff-muted);border:1px dashed var(--ff-border)}.ff-kpis{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}.ff-kpi{border:1px solid var(--ff-line);box-shadow:var(--ff-sh-card);background:#fff;border-radius:10px;padding:15px 18px}.ff-kpi--accent{border:1.5px solid #f3c6cc}.ff-kpi__label{color:var(--ff-muted);align-items:center;gap:7px;font-size:12px;font-weight:500;display:flex}.ff-kpi__row{align-items:baseline;gap:9px;margin-top:9px;display:flex}.ff-kpi__value{color:var(--ff-navy);font-size:27px;font-weight:700;font-family:var(--ff-mono);letter-spacing:-.01em}.ff-kpi__value.is-red{color:var(--ff-red)}.ff-kpi__delta{color:var(--ff-green-text);font-size:12px;font-weight:600}.ff-kpi__delta.is-muted{color:var(--ff-muted)}.ff-statcards{gap:18px;margin-bottom:18px;display:flex}.ff-stat{border:1px solid var(--ff-line);background:#fff;border-radius:12px;flex:1;padding:20px 22px}.ff-stat--accent{border:1.5px solid #f3c6cc}.ff-stat__label{color:var(--ff-text);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.ff-stat__value{color:var(--ff-navy);font-size:34px;font-weight:700;font-family:var(--ff-mono);letter-spacing:-.01em;margin-top:12px}.ff-stat__value.is-red{color:var(--ff-red)}.ff-stat__sub{color:var(--ff-muted);margin-top:5px;font-size:12px}.ff-bar{background:var(--ff-fill);border-radius:4px;height:8px;overflow:hidden}.ff-bar__fill{background:var(--ff-red);border-radius:4px;height:100%}.ff-bar__fill.is-muted{background:var(--ff-faint)}.ff-banner{border-radius:10px;align-items:center;gap:14px;padding:15px 18px;font-size:13px;line-height:1.6;display:flex}.ff-banner--info{border:1px solid var(--ff-line);box-shadow:var(--ff-sh-card);color:var(--ff-text);background:#fff}.ff-banner--warn{color:#96703c;background:#fff7ec;border:1px solid #fbdfb4}.ff-banner__icon{border-radius:9px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.ff-note{color:var(--ff-muted);align-items:flex-start;gap:8px;font-size:12px;line-height:1.6;display:flex}.ff-note__i{color:var(--ff-orange);flex:none}.ff-error{color:#b81f30;background:#fcecee;border:1px solid #f5c6cd;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.ff-empty{text-align:center;color:var(--ff-text);flex-direction:column;justify-content:center;align-items:center;padding:56px 40px;display:flex}.ff-empty__title{color:var(--ff-navy);margin-top:22px;font-size:19px;font-weight:700}.ff-empty__desc{color:var(--ff-text);max-width:432px;margin-top:11px;font-size:13.5px;line-height:1.75}.ff-loading{text-align:center;color:var(--ff-muted);padding:60px;font-size:14px}.ff-spinner{transform-origin:50%;animation:.9s linear infinite ff-spin}.ff-modal-scrim{z-index:50;background:#1f2b4d70;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ff-modal{width:452px;max-width:100%;box-shadow:var(--ff-sh-modal);background:#fff;border-radius:15px;overflow:hidden}.ff-modal__body{align-items:flex-start;gap:15px;padding:26px 28px 0;display:flex}.ff-modal__icon{width:42px;height:42px;color:var(--ff-danger);background:#ee0a2417;border-radius:11px;flex:none;justify-content:center;align-items:center;display:flex}.ff-modal__title{color:var(--ff-navy);font-size:16.5px;font-weight:700}.ff-modal__text{color:var(--ff-text);margin-top:10px;font-size:13px;line-height:1.75}.ff-modal__foot{justify-content:flex-end;gap:10px;padding:24px 28px;display:flex}.ff-toggle{background:var(--ff-border);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;width:36px;height:20px;padding:2px;transition:background .15s;display:inline-flex}.ff-toggle.is-on{background:var(--ff-red)}.ff-toggle.is-disabled{opacity:.55;cursor:not-allowed}.ff-toggle__knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s}.ff-toggle.is-on .ff-toggle__knob{transform:translate(16px)}.ff-login{min-height:100vh;display:flex}.ff-login__hero{color:#fff;background:linear-gradient(178deg,#26355c,#1b2540);flex-direction:column;width:42%;max-width:560px;padding:56px;display:flex;position:relative;overflow:hidden}.ff-login__brand{align-items:center;gap:12px;display:flex;position:relative}.ff-login__headline{letter-spacing:-.01em;font-size:34px;font-weight:700;line-height:1.32}.ff-login__sub{color:#ffffff9e;max-width:410px;margin-top:18px;font-size:15px;line-height:1.8}.ff-login__feat{flex-direction:column;gap:18px;margin-top:36px;display:flex}.ff-login__featrow{align-items:center;gap:14px;display:flex}.ff-login__featicon{color:#ff8a96;background:#e0162a2e;border-radius:10px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.ff-login__panel{flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.ff-login__form{width:100%;max-width:392px}.ff-authtabs{border-bottom:1px solid var(--ff-line);gap:28px;margin-top:30px;display:flex}.ff-authtab{color:var(--ff-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding-bottom:12px;font-family:inherit;font-size:15px;font-weight:500}.ff-authtab.is-active{color:var(--ff-navy);border-bottom-color:var(--ff-red);font-weight:600}@media (width<=860px){.ff-login__hero{display:none}}.ff-fill{background:var(--ff-bg);justify-content:center;min-height:100vh;display:flex}.ff-fill__frame{background:var(--ff-bg);flex-direction:column;width:100%;max-width:480px;min-height:100vh;display:flex;position:relative}.ff-fill__bar{border-bottom:1px solid var(--ff-line);height:46px;color:var(--ff-navy);z-index:5;background:#fff;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex;position:sticky;top:0}.ff-fill__body{flex:1;padding:20px 18px 120px}.ff-fill__eyebrow{letter-spacing:.16em;color:var(--ff-red);font-size:11px;font-weight:700}.ff-fill__title{color:var(--ff-navy);margin-top:8px;font-size:22px;font-weight:700;line-height:1.32}.ff-fill__desc{color:var(--ff-text);margin-top:10px;font-size:13px;line-height:1.65}.ff-fill__fields{flex-direction:column;gap:22px;margin-top:22px;display:flex}.ff-field__label{color:var(--ff-ink);margin-bottom:9px;font-size:14px;font-weight:600;display:block}.ff-req{color:var(--ff-red);margin-left:2px}.ff-field__hint{color:var(--ff-muted);margin-top:7px;font-size:12px}.ff-field__err{color:var(--ff-red);align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:500;display:flex}.ff-fill input[type=text],.ff-fill input[type=tel]{border:1px solid var(--ff-border);width:100%;color:var(--ff-ink);background:#fff;border-radius:11px;outline:none;padding:14px 15px;font-family:inherit;font-size:16px}.ff-fill input[type=text]:focus,.ff-fill input[type=tel]:focus{border-color:var(--ff-red)}.ff-optgrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ff-optcol{flex-direction:column;gap:10px;display:flex}.ff-opt{border:1px solid var(--ff-border);color:var(--ff-ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:11px;align-items:center;gap:9px;padding:13px 12px;font-size:14.5px;display:flex}.ff-opt.is-on{border:1.5px solid var(--ff-red);color:var(--ff-red);background:#fef6f7;font-weight:600}.ff-opt__radio{border:1.5px solid var(--ff-faint);border-radius:50%;flex:none;width:18px;height:18px}.ff-opt.is-on .ff-opt__radio{border:5px solid var(--ff-red);background:#fff}.ff-opt__check{border:1.5px solid var(--ff-faint);color:#fff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.ff-opt.is-on .ff-opt__check{border-color:var(--ff-red);background:var(--ff-red)}.ff-fill__footer{background:linear-gradient(to top, var(--ff-bg) 74%, #f7f8fa00);z-index:10;max-width:480px;margin:0 auto;padding:16px 18px 24px;position:fixed;bottom:0;left:0;right:0}.ff-fill__submit{background:var(--ff-red);color:#fff;cursor:pointer;border:none;border-radius:13px;width:100%;padding:16px;font-family:inherit;font-size:17px;font-weight:700;box-shadow:0 8px 20px #e0162a47}.ff-fill__submit:disabled{opacity:.7;cursor:not-allowed}.ff-fill__foottext{text-align:center;color:var(--ff-muted);margin-top:11px;font-size:11px}.ff-fill__center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 30px;display:flex}.ff-result__title{color:var(--ff-navy);margin-top:26px;font-size:24px;font-weight:700}.ff-result__desc{color:var(--ff-text);margin-top:12px;font-size:14px;line-height:1.7}.ff-summary{border:1px solid var(--ff-line);text-align:left;background:#fff;border-radius:14px;width:100%;margin-top:28px;padding:4px 20px}.ff-summary__row{border-bottom:1px solid var(--ff-fill);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.ff-summary__row:last-child{border-bottom:0}.ff-summary__k{color:var(--ff-muted);font-size:13.5px}.ff-summary__v{color:var(--ff-ink);text-align:right;font-size:14px;font-weight:600}@media (width<=720px){.ff-kpis{grid-template-columns:repeat(2,1fr)}.ff-statcards{flex-direction:column}.ff-content{padding:16px}}@media (width<=640px){.ff-rail{width:100%;height:auto;padding:0 0 env(safe-area-inset-bottom);z-index:40;border-top:1px solid #ffffff17;flex-direction:row;align-items:stretch;position:fixed;inset:auto 0 0;box-shadow:0 -3px 14px #0f142838}.ff-rail__logo,.ff-rail__avatar,.ff-rail__spacer{display:none}.ff-rail__item{flex:1;gap:3px;font-size:10.5px;padding:7px 0 8px!important}.ff-rail__item.is-active:before{border-radius:0 0 3px 3px;width:auto;height:3px;inset:0 14px auto}.ff-content{padding:16px 16px calc(60px + env(safe-area-inset-bottom))}.ff-topbar{flex-wrap:wrap;row-gap:10px;padding:12px 16px}.ff-topbar .ff-spacer{flex-basis:100%;height:0}.ff-search{width:100%!important}.ff-detailhead__row{flex-wrap:wrap;padding:10px 16px}.ff-detailhead__row .ff-spacer{flex-basis:100%;height:0}.ff-detailhead__title{flex:auto;min-width:0;max-width:none}.ff-tabs{-webkit-overflow-scrolling:touch;gap:20px;padding:0 16px;overflow-x:auto}.ff-tab{white-space:nowrap;flex:none}.ff-tablecard{-webkit-overflow-scrolling:touch;overflow-x:auto}.ff-table{min-width:560px}.ff-table th:first-child,.ff-table td:first-child{min-width:148px}.ff-poster-aside{width:100%!important}.ff-chtable{-webkit-overflow-scrolling:touch;overflow-x:auto}.ff-chtable>div{min-width:520px}}.ff-landing{color:#1f2b4d;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#fff;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.ff-landing *{box-sizing:border-box}.ff-landing a{color:#e0162a;text-decoration:none}.ff-landing a:hover{color:#c4121f}html{scroll-behavior:smooth}@keyframes fffloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@media (width<=900px){.ff-landing{overflow-x:hidden}.ff-landing header>div{gap:12px!important;padding:0 16px!important}.ff-landing header nav{display:none!important}.ff-landing section>div[style*=max-width\:1200px],.ff-landing section>div[style*=max-width\:1080px],.ff-landing footer>div{padding:56px 18px!important}.ff-landing [style*=grid-template-columns]{grid-template-columns:1fr!important}.ff-landing [data-screen-label=Hero]>div>div:nth-child(2){display:none!important}.ff-landing h1{font-size:36px!important;line-height:1.18!important}.ff-landing h2{font-size:27px!important}.ff-landing h3{font-size:21px!important}.ff-landing [style*=display\:flex]{flex-wrap:wrap}.ff-landing img,.ff-landing svg{max-width:100%}}@media (width<=560px){.ff-landing section>div[style*=max-width\:1200px],.ff-landing section>div[style*=max-width\:1080px],.ff-landing footer>div{padding:44px 16px!important}}
