:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#101a35;background:#f7f9fd;font-synthesis:none;--blue: #2878f0;--muted: #71809d;--line: #e3e9f3}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{color:inherit}.portal-shell{min-height:100vh;display:grid;grid-template-columns:minmax(430px,1fr) minmax(620px,1fr);background:#fff}.brand-panel{position:relative;overflow:hidden;min-height:100vh;padding:46px 58px;background:radial-gradient(circle at 64% 30%,rgba(95,167,255,.4),transparent 30%),linear-gradient(142deg,#f8fbff,#eaf4ff 45%,#f8fbff)}.brand-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.6) 52%,transparent 64%);pointer-events:none}.brand-lockup{display:flex;align-items:center;gap:14px;position:relative;z-index:2}.brand-lockup strong{display:block;font-size:30px;letter-spacing:3px}.brand-lockup small{display:block;color:#667896;letter-spacing:4px;margin-top:5px}.brand-mark{position:relative;width:76px;height:58px;display:block;transform:rotate(-10deg)}.brand-mark i{position:absolute;top:4px;right:2px;bottom:4px;left:2px;border:8px solid #2678db;border-left-color:transparent;border-radius:50%}.brand-mark i:nth-child(2){top:17px;right:10px;bottom:-7px;left:5px;border-color:#44a4ea transparent transparent #44a4ea;transform:rotate(17deg)}.brand-mark i:nth-child(3){width:11px;height:11px;inset:-4px 8px auto auto;border:0;background:#54b7e8;transform:rotate(45deg);border-radius:1px}.hero-art{position:absolute;width:520px;height:420px;left:50%;top:48%;transform:translate(-50%,-50%);perspective:700px}.hero-platform{position:absolute;width:330px;height:210px;left:95px;top:135px;transform:rotateX(62deg) rotate(-43deg);border-radius:28px;background:linear-gradient(135deg,#154bd5,#42b7ff);box-shadow:-22px 30px #1d72e8,-35px 43px 45px #2366d247;border:8px solid rgba(110,210,255,.65)}.hero-platform span{position:absolute;bottom:35px;width:28px;border-radius:5px;background:linear-gradient(#5cf3ff,#2448e5);box-shadow:0 8px 18px #123aac59}.hero-platform span:nth-child(1){height:74px;left:65px}.hero-platform span:nth-child(2){height:120px;left:118px}.hero-platform span:nth-child(3){height:160px;left:174px}.hero-person{position:absolute;left:270px;top:65px;width:34px;height:145px;border-radius:18px 18px 8px 8px;background:linear-gradient(#fff,#3279ee 54%,#152f94);box-shadow:0 15px 30px #163f9d40}.hero-person i{position:absolute;width:34px;height:34px;border-radius:50%;background:#f0bd91;top:-27px}.hero-card{position:absolute;width:110px;height:80px;border:2px solid rgba(75,190,255,.65);border-radius:7px;background:linear-gradient(145deg,#3d88f9b8,#50f7de59);color:#bffcff;font-size:48px;text-align:center;line-height:75px;box-shadow:0 16px 35px #226adc33}.card-a{left:315px;top:20px}.card-b{left:145px;top:60px}.card-c{left:365px;top:128px;width:135px}.hero-orbit{position:absolute;border-radius:50%;filter:blur(1px);background:linear-gradient(135deg,#5148ef,#5424bd);box-shadow:0 14px 25px #412ac740}.orbit-one{width:50px;height:36px;left:55px;top:95px}.orbit-two{width:42px;height:42px;right:55px;bottom:60px}.hero-copy{position:absolute;left:0;right:0;top:72%;text-align:center;z-index:2}.hero-copy h1{font-size:38px;font-weight:600;letter-spacing:4px;margin:0 0 18px}.hero-copy p{color:#71809a;font-size:20px;letter-spacing:8px;margin:0}.systems-panel{min-height:100vh;display:flex;flex-direction:column;padding:38px 64px 24px;background:linear-gradient(145deg,#fff,#fbfdff)}.topbar{min-height:46px;display:flex;align-items:flex-start;justify-content:space-between;position:relative}.back-button,.user-button{border:0;background:transparent;cursor:pointer;display:flex;align-items:center;gap:9px}.back-button{font-size:15px;padding:8px 0}.back-button:first-letter{font-size:24px}.user-area{position:relative}.user-button{padding:0}.user-button b{font-weight:400;color:#52617c}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#e7f1ff,#b9d6ff);color:#2b73da;font-weight:700}.user-menu{position:absolute;right:0;top:48px;width:140px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px #1f396624;z-index:5}.user-menu a,.user-menu button{display:block;width:100%;padding:10px 12px;border:0;background:none;text-align:left;text-decoration:none;color:#1c2942;cursor:pointer;border-radius:7px}.user-menu a:hover,.user-menu button:hover{background:#f2f6fd}.content{width:min(100%,820px);margin:7px auto 0;flex:1}.eyebrow{color:#347dec!important;font-size:12px!important;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:10px!important}.title-block h2{font-size:28px;margin:0 0 7px}.title-block p{margin:0;color:#7786a0;font-size:15px}.search-box{height:54px;border:1px solid #dfe6f1;border-radius:8px;margin:26px 0 20px;display:flex;align-items:center;gap:12px;padding:0 18px;background:#fff;transition:.2s}.search-box:focus-within{border-color:#7aaef9;box-shadow:0 0 0 3px #367eee1a}.search-box span{font-size:25px;color:#a5b1c5;transform:rotate(-15deg)}.search-box input{border:0;outline:0;width:100%;font-size:15px;color:#263550}.search-box input::placeholder{color:#a9b4c6}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.system-card{position:relative;min-height:112px;border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;align-items:center;gap:19px;padding:19px 50px 19px 18px;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden}.system-card:hover,.system-card:focus{outline:0;transform:translateY(-2px);border-color:#b9d4fb;box-shadow:0 12px 28px #2c5ca21c}.system-card.busy{pointer-events:none;opacity:.7}.app-icon{--app-color:#3478f6;flex:0 0 76px;height:76px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--app-color) 11%,white);color:var(--app-color);font-size:31px;font-weight:700}.app-icon img{width:45px;height:45px;object-fit:contain}.card-copy{min-width:0}.card-copy h3{font-size:17px;margin:0 0 9px}.card-copy>p{font-size:13px;color:#7b8aa2;margin:0;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-arrow{position:absolute;right:20px;font-size:29px;color:#7c8ba1;font-weight:200}.inline-error{margin-top:8px;color:#c14343;font-size:12px;line-height:1.4}.inline-error button{border:0;background:#eaf2ff;color:#246cdc;border-radius:5px;padding:3px 8px;margin-left:7px;cursor:pointer}.inline-error small{display:block;color:#9b7180;margin-top:3px}.spinner{position:absolute;right:18px;width:20px;height:20px;border:2px solid #cddbf2;border-top-color:#3478f6;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-color:transparent;background:linear-gradient(90deg,#f4f6fa 25%,#fafbfd 37%,#f4f6fa 63%);background-size:400% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.state-panel{min-height:245px;border:1px dashed #d8e1ef;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6f7f99;text-align:center}.state-panel strong{color:#27354f;font-size:18px}.state-panel p{margin:8px 0 16px}.state-panel button{border:0;background:#3478f6;color:#fff;padding:9px 18px;border-radius:7px;cursor:pointer}.error-state strong{color:#a13d3d}footer{text-align:center;color:#a2aec0;font-size:12px;padding-top:26px}@media(max-width:1050px){.portal-shell{grid-template-columns:1fr}.brand-panel{display:none}.systems-panel{padding:30px 32px}.content{width:100%}}@media(max-width:680px){.systems-panel{padding:20px 18px}.card-grid{grid-template-columns:1fr}.title-block h2{font-size:24px}.system-card{min-height:100px}.app-icon{flex-basis:64px;height:64px}.topbar{margin-bottom:12px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.admin-shell{min-height:100vh;background:#f4f7fb;display:grid;grid-template-columns:238px 1fr;color:#19243b}.admin-sidebar{position:sticky;top:0;height:100vh;background:#101c36;color:#dce7fb;padding:25px 18px;display:flex;flex-direction:column}.admin-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;padding:0 8px 25px;border-bottom:1px solid rgba(255,255,255,.08)}.mini-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#56a5ff,#2867e8);font-weight:800}.admin-sidebar nav{padding-top:23px;display:grid;gap:7px}.admin-sidebar nav a{color:#9fb0cc;text-decoration:none;padding:12px 13px;border-radius:8px;font-size:14px}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{color:#fff;background:#4c8bff29}.admin-account{margin-top:auto;display:flex;align-items:center;gap:10px;padding:15px 10px 2px;border-top:1px solid rgba(255,255,255,.08)}.admin-account>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#315486}.admin-account strong,.admin-account small{display:block}.admin-account strong{font-size:13px}.admin-account small{font-size:11px;color:#8799b8;margin-top:3px}.admin-main{padding:35px 42px 70px;min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.admin-header p{font-size:11px;color:#3478ed;letter-spacing:2px;font-weight:700;margin:0 0 7px}.admin-header h1{font-size:28px;margin:0}.admin-header a{color:#3478ed;text-decoration:none;font-size:14px}.admin-alert{display:flex;justify-content:space-between;padding:12px 15px;border-radius:8px;margin-bottom:15px;font-size:13px}.admin-alert.error{background:#fff0f0;color:#a13939}.admin-alert.success{background:#e9f9f0;color:#20784b}.admin-alert button{border:0;background:none;color:inherit;cursor:pointer;font-size:18px}.admin-loading{padding:80px;text-align:center;color:#75849e}.admin-section{background:#fff;border:1px solid #e5eaf2;border-radius:12px;padding:23px;margin-bottom:22px;box-shadow:0 5px 20px #223a5e09}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.section-heading h2{font-size:18px;margin:0 0 5px}.section-heading p{font-size:13px;color:#8190a7;margin:0}.section-heading>span{font-size:12px;color:#76869e;background:#f0f4fa;padding:6px 10px;border-radius:20px}.admin-app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-app-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;grid-template-rows:auto auto;gap:4px 10px;align-items:center;border:1px solid #e5eaf2;border-radius:10px;padding:15px}.admin-app-icon{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#eaf3ff;color:#2875e7;font-size:20px;font-weight:700}.admin-app-info h3{font-size:15px;margin:0 0 4px}.admin-app-info p{font-size:11px;color:#8996aa;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-button{align-self:start;border:1px solid #d9e2ef;border-radius:6px;background:#fff;color:#4c6688;font-size:10px;padding:4px 8px;cursor:pointer}.health-dot{align-self:start;border:0;background:none;cursor:pointer;font-size:9px;color:#8a96a8}.health-dot.up{color:#1d9a5e}.health-dot.down{color:#c04747}.switch{grid-column:3/5;justify-self:end;display:flex;align-items:center;gap:7px;border:0;background:none;cursor:pointer;color:#8895a8;font-size:11px}.switch i{position:relative;width:32px;height:18px;border-radius:12px;background:#ccd4df;transition:.2s}.switch i:after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.2s}.switch.on{color:#23764d}.switch.on i{background:#37b477}.switch.on i:after{left:16px}.mapping-toolbar{display:flex;gap:10px;margin-bottom:17px}.mapping-toolbar select{min-width:270px;height:38px;border:1px solid #dce3ee;border-radius:7px;padding:0 11px;background:#fff}.mapping-toolbar button,.mapping-form button{border:0;border-radius:7px;background:#3478ed;color:#fff;padding:0 18px;cursor:pointer}.mapping-content{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mapping-column{border:1px solid #e7ebf2;border-radius:10px;padding:16px;min-width:0}.mapping-column>h3{font-size:14px;margin:0 0 13px}.mapping-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mapping-form input{min-width:0;height:35px;border:1px solid #dce3ee;border-radius:6px;padding:0 9px;font-size:12px;outline:0}.mapping-form input:focus{border-color:#72a6f2}.mapping-form button{height:35px;grid-column:1/-1}.mapping-list{margin-top:14px;display:grid;gap:7px}.mapping-list article{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:9px;background:#f7f9fc;border-radius:7px}.mapping-list strong,.mapping-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mapping-list strong{font-size:11px}.mapping-list small{font-size:9px;color:#8996aa;margin-top:3px}.mapping-list article>span{text-align:center;color:#8290a5}.mapping-list b{font-size:9px;color:#8d99aa}.mapping-list b.enabled{color:#218050}.mapping-list>p,.mapping-placeholder{text-align:center;color:#96a2b4;font-size:12px}.mapping-placeholder{padding:28px;border:1px dashed #dce3ee;border-radius:8px}.task-filters{display:flex;gap:10px;margin-bottom:16px}.task-filters select,.task-filters input{height:37px;border:1px solid #dce3ee;border-radius:7px;padding:0 11px;background:#fff;color:#35445c;outline:0}.task-filters input{width:190px}.task-filters button{border:0;border-radius:7px;background:#3478ed;color:#fff;padding:0 20px;cursor:pointer}.task-table-wrap{overflow:auto}.task-table{width:100%;border-collapse:collapse;font-size:12px}.task-table th{text-align:left;color:#7d8ba1;font-weight:600;background:#f7f9fc;padding:10px 12px}.task-table td{padding:12px;border-bottom:1px solid #edf0f5;color:#46536a}.link-button{border:0;background:none;padding:0;color:#2c70da;cursor:pointer}.task-status{font-size:10px;font-weight:700;padding:4px 7px;border-radius:5px;background:#edf1f6;color:#63718a}.task-status.failed{background:#fff0f0;color:#c04747}.task-status.succeeded{background:#e8f8ef;color:#258354}.task-status.running{background:#fff6df;color:#a56d13}.task-status.conflict{background:#f4eefe;color:#7652aa}.retry-button{border:1px solid #bcd3f5;background:#eef5ff;color:#276dcf;border-radius:5px;padding:4px 10px;cursor:pointer}.empty-row{text-align:center!important;padding:35px!important;color:#9ba7b8!important}.mono-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a162d59;z-index:20;display:flex;justify-content:flex-end}.task-drawer{width:min(470px,92vw);height:100%;overflow:auto;background:#fff;padding:27px;box-shadow:-15px 0 50px #07143029}.task-drawer header{display:flex;justify-content:space-between;border-bottom:1px solid #e8ecf2;padding-bottom:18px}.task-drawer header small{color:#8190a7}.task-drawer header h2{margin:5px 0 0;font-size:21px}.task-drawer header button{border:0;background:none;font-size:26px;cursor:pointer}.task-drawer dl{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:10px 0}.task-drawer dl div{background:#f7f9fc;padding:11px;border-radius:7px}.task-drawer dt{font-size:10px;color:#8996aa}.task-drawer dd{font-size:12px;margin:5px 0 0;word-break:break-all}.task-drawer>h3{font-size:15px;margin-top:22px}.attempt-list{list-style:none;padding:0}.attempt-list li{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f5}.attempt-list li>span{height:22px;padding:4px 7px;border-radius:5px;background:#fff0f0;color:#bf4848;font-size:10px}.attempt-list li>span.success{background:#e8f8ef;color:#258354}.attempt-list strong{font-size:12px}.attempt-list p,.attempt-list small{font-size:11px;color:#7d8ba1;margin:5px 0 0}.application-config-form{display:grid;gap:14px;padding:22px 0}.application-config-form label{display:grid;gap:6px;color:#66758a;font-size:11px}.application-config-form input,.application-config-form textarea,.application-config-form select{width:100%;box-sizing:border-box;border:1px solid #dce3ee;border-radius:7px;background:#fff;padding:9px 10px;color:#1c2b40;font:inherit;outline:0}.application-config-form textarea{min-height:76px;resize:vertical}.application-config-form input:focus,.application-config-form textarea:focus,.application-config-form select:focus{border-color:#72a6f2}.application-config-form .checkbox-row{display:flex;grid-template-columns:none;align-items:center;gap:9px}.application-config-form .checkbox-row input{width:16px;height:16px}.application-config-form>button{height:40px;border:0;border-radius:8px;background:#3478ed;color:#fff;cursor:pointer}.policy-help{margin:0;padding:10px;border-radius:7px;background:#f4f7fb;color:#7a899e;font-size:10px;line-height:1.6}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;padding:14px 18px;flex-direction:row;align-items:center}.admin-sidebar nav{padding:0;margin-left:auto;display:flex}.admin-sidebar nav a.active{display:none}.admin-account{display:none}.admin-brand{padding:0;border:0}.admin-main{padding:25px 18px}.admin-app-grid,.mapping-content{grid-template-columns:1fr}}
