:root{font-family:Noto Sans SC,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#0f172a;background:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;--navy-950: #071a35;--blue-700: #075cad;--blue-600: #0872d1;--blue-50: #eff6ff;--slate-950: #020617;--slate-900: #0f172a;--slate-700: #334155;--slate-500: #64748b;--slate-300: #cbd5e1;--slate-200: #e2e8f0;--slate-100: #f1f5f9;--slate-50: #f8fafc;--success: #0f806f;--pending: #0b72cf;--warning: #ad6600;--danger: #c92a2a;--radius: 12px;--focus: 0 0 0 3px rgba(8, 114, 209, .25)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--slate-50)}body{margin:0;min-width:320px;min-height:100vh;background:var(--slate-50);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus)}.skip-link{position:fixed;z-index:1000;top:12px;left:116px;padding:10px 16px;border-radius:8px;color:#fff;background:var(--blue-700);transform:translateY(-150%);transition:transform .18s ease-out}.skip-link:focus{transform:translateY(0)}.portal-shell{display:grid;grid-template-columns:96px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;align-items:stretch;height:100vh;overflow-y:auto;color:#d8e6f6;background:var(--navy-950);border-right:1px solid rgba(255,255,255,.06)}.portal-mark{display:grid;place-items:center;height:76px;flex:0 0 76px;color:#fff}.sidebar-nav{display:flex;flex-direction:column;gap:6px;padding:10px 8px}.nav-item,.collapse-button{display:flex;min-height:78px;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:0;border-radius:9px;color:#d8e6f6;background:transparent;transition:background-color .18s ease-out,color .18s ease-out}.nav-item span,.collapse-button span{font-size:14px;line-height:1.2;white-space:nowrap}.nav-item:hover,.collapse-button:hover{color:#fff;background:#ffffff14}.nav-item.active{color:#fff;background:var(--blue-600)}.collapse-button{min-height:70px;margin:auto 8px 8px}.portal-page{display:flex;min-width:0;min-height:100vh;flex-direction:column}.topbar{position:sticky;top:0;z-index:15;display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:24px;padding:0 30px;background:#fffffffa;border-bottom:1px solid var(--slate-200)}.portal-title{display:flex;min-width:0;align-items:center;gap:18px}.portal-title h1{margin:0;color:var(--slate-950);font-size:25px;font-weight:700;letter-spacing:-.02em}.portal-title p{margin:0;color:var(--slate-500);font-size:16px}.title-divider{width:1px;height:22px;background:var(--slate-300)}.account-area{position:relative;display:flex;align-items:center;gap:14px}.admin-login-button{display:inline-flex;min-height:44px;align-items:center;gap:8px;padding:0 15px;border:1px solid #a9bdd3;border-radius:9px;color:var(--blue-700);background:#fff;font-size:14px;font-weight:600}.admin-login-button:hover{border-color:var(--blue-600);background:var(--blue-50)}.admin-login-button:disabled{cursor:wait;opacity:.65}.icon-button{display:inline-grid;width:44px;height:44px;flex:0 0 44px;place-items:center;padding:0;border:0;border-radius:9px;color:var(--slate-700);background:transparent;transition:color .16s ease-out,background-color .16s ease-out}.icon-button:hover{color:var(--blue-700);background:var(--blue-50)}.profile-button{display:flex;min-height:52px;align-items:center;gap:12px;padding:4px 0 4px 4px;border:0;border-radius:10px;background:transparent}.profile-button:hover{background:var(--slate-100)}.avatar{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;color:#fff;background:#075f76;font-size:15px;font-weight:600}.profile-copy{display:flex;min-width:136px;flex-direction:column;align-items:flex-start;gap:3px}.profile-copy strong{color:var(--slate-950);font-size:15px;font-weight:600}.profile-copy small{color:var(--slate-500);font-size:13px}.profile-menu{position:absolute;z-index:30;top:60px;right:0;display:grid;width:180px;padding:8px;border:1px solid var(--slate-200);border-radius:10px;background:#fff;box-shadow:0 14px 35px #0f172a24}.profile-menu button{display:flex;min-height:42px;align-items:center;gap:8px;padding:0 12px;border:0;border-radius:7px;text-align:left;background:transparent}.profile-menu button:hover{background:var(--slate-100)}.main-content{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:48px;width:100%;max-width:1370px;margin:0 auto;padding:34px 36px 0}.workspace,.right-rail{min-width:0}.search-block{margin-bottom:34px}.search-field{display:flex;height:66px;align-items:center;gap:15px;padding:0 18px;border:1px solid #a7b6ca;border-radius:8px;color:var(--slate-500);background:#fff;box-shadow:0 1px 1px #0f172a05;transition:border-color .16s ease-out,box-shadow .16s ease-out}.search-field:focus-within{border-color:var(--blue-600);box-shadow:var(--focus)}.search-field input{min-width:0;height:100%;flex:1;border:0;outline:0;color:var(--slate-900);background:transparent;font-size:17px}.search-field input::placeholder{color:#66768b;opacity:1}.search-field kbd{padding:5px 9px;border:1px solid var(--slate-200);border-radius:7px;color:var(--slate-500);background:var(--slate-50);font-family:inherit;font-size:13px;box-shadow:0 1px 2px #0f172a0a}.clear-search{width:38px;height:38px;flex-basis:38px}.suggestions{margin-top:21px}.suggestions>strong{display:block;margin-bottom:10px;color:var(--slate-900);font-size:14px;font-weight:600}.suggestion-list{display:flex;flex-wrap:wrap;gap:10px}.suggestion-list button{display:inline-flex;min-height:42px;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--slate-200);border-radius:7px;color:var(--slate-700);background:#fff;font-size:14px;transition:border-color .16s ease-out,color .16s ease-out,background-color .16s ease-out}.suggestion-list button svg{color:var(--blue-600)}.suggestion-list button:hover{border-color:#a9c9eb;color:var(--blue-700);background:var(--blue-50)}.system-group{margin-bottom:20px}.system-group h2{margin:0 0 10px;color:var(--slate-900);font-size:18px;font-weight:700;letter-spacing:-.01em}.system-group:nth-child(2){margin-bottom:8px}.system-group:nth-child(3) h2{margin-bottom:4px}.system-list{overflow:hidden;border:1px solid var(--slate-200);border-radius:var(--radius);background:#fff}.system-row{display:grid;width:100%;min-height:84px;grid-template-columns:64px minmax(0,1fr) 90px 48px;align-items:center;gap:16px;padding:14px 18px;border:0;border-bottom:1px solid var(--slate-200);text-align:left;background:#fff;transition:background-color .16s ease-out}.system-group:first-child .system-row{min-height:96px}.system-group:nth-child(2) .system-row{min-height:88px}.system-group:nth-child(3) .system-row{min-height:84px;padding-block:9px}.system-row:last-child{border-bottom:0}.system-row:hover{background:#f8fbff}.system-row:focus-visible{position:relative;z-index:2}.system-icon,.favorite-icon{display:grid;place-items:center;color:#0b4f9c;background:#fbfdff;border:1px solid #d8e1ed}.system-icon{width:62px;height:62px;border-radius:11px}.system-copy{display:flex;min-width:0;flex-direction:column;gap:7px}.system-copy strong{overflow:hidden;color:var(--slate-950);font-size:18px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.system-copy small{overflow:hidden;color:var(--slate-500);font-size:14px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.availability{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--success);font-size:14px;white-space:nowrap}.availability.pending{color:var(--warning)}.availability.danger{color:var(--danger)}.system-row.status-pending .launch-arrow{color:var(--warning);background:#fffaf0}.system-row.status-unavailable .launch-arrow{color:var(--danger);background:#fff5f5}.launch-arrow{display:grid;width:48px;height:48px;place-items:center;border:1px solid var(--slate-200);border-radius:9px;color:var(--slate-900);background:#fff;transition:border-color .16s ease-out,color .16s ease-out,transform .16s ease-out}.system-row:hover .launch-arrow{border-color:#9fc4e8;color:var(--blue-700);transform:translate(2px)}.right-rail{display:flex;flex-direction:column;gap:28px;margin-top:10px}.rail-card{overflow:hidden;border:1px solid var(--slate-200);border-radius:var(--radius);background:#fff;box-shadow:0 1px 2px #0f172a08}.card-heading{display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;border-bottom:1px solid var(--slate-200)}.card-heading h2{margin:0;color:var(--slate-950);font-size:19px;font-weight:700}.card-heading button{display:inline-flex;min-height:44px;align-items:center;gap:5px;padding:0 5px;border:0;border-radius:7px;color:var(--blue-700);background:transparent;font-size:14px}.card-heading button:hover{text-decoration:underline}.favorites-list{padding:0 24px}.favorite-row{display:flex;min-height:70px;align-items:center;gap:8px;border-bottom:1px solid var(--slate-200)}.favorite-row:last-child{border-bottom:0}.favorite-launch{display:flex;min-width:0;min-height:62px;flex:1;align-items:center;gap:12px;padding:0;border:0;text-align:left;background:transparent}.favorite-launch span:last-child{overflow:hidden;flex:1;font-size:15px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.favorite-icon{width:38px;height:38px;flex:0 0 38px;border-radius:8px}.favorite-row>.icon-button{color:var(--blue-700)}.favorites-list:not(.editing) .favorite-row>.icon-button{pointer-events:none}.favorites-empty{margin:0;padding:24px 0;color:var(--slate-500);font-size:14px}.access-list{padding:0 24px}.access-list>button{display:flex;width:100%;min-height:63px;align-items:center;justify-content:space-between;gap:14px;padding:0;border:0;border-bottom:1px solid var(--slate-200);background:transparent;font-size:15px}.access-list>button:last-child{border-bottom:0}.access-list>button:hover{color:var(--blue-700)}.access-list>button>span:last-child{display:inline-flex;align-items:center;gap:8px;color:var(--slate-500)}.access-label{display:inline-flex;align-items:center;gap:12px;color:var(--slate-700);font-weight:500}.access-label.success svg{color:var(--success)}.access-label.pending svg{color:var(--pending)}.access-label.warning svg{color:var(--warning)}.access-label.danger svg{color:var(--danger)}.empty-state{display:grid;min-height:330px;place-items:center;align-content:center;padding:40px;border:1px solid var(--slate-200);border-radius:var(--radius);color:var(--slate-500);text-align:center;background:#fff}.empty-state h2{margin:16px 0 6px;color:var(--slate-900);font-size:20px}.empty-state p{margin:0 0 18px}.empty-state button{min-height:44px;padding:0 16px;border:0;border-radius:8px;color:#fff;background:var(--blue-700)}.dialog-backdrop{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#020a18ad;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.config-dialog{display:flex;width:min(1050px,100%);max-height:min(860px,calc(100vh - 48px));flex-direction:column;overflow:hidden;border:1px solid #c8d5e4;border-radius:16px;background:#f8fafc;box-shadow:0 30px 90px #020a1857}.login-dialog{width:min(460px,100%);overflow:hidden;border:1px solid #c8d5e4;border-radius:16px;background:#fff;box-shadow:0 30px 90px #020a1857}.login-dialog-header{display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:start;gap:14px;padding:24px 24px 20px;border-bottom:1px solid var(--slate-200)}.login-dialog-header h2{margin:0;color:var(--slate-950);font-size:21px;letter-spacing:-.02em}.login-dialog-header p{margin:7px 0 0;color:var(--slate-500);font-size:13px;line-height:1.5}.login-icon{display:grid;width:48px;height:48px;place-items:center;border:1px solid #c8dcf0;border-radius:12px;color:var(--blue-700);background:var(--blue-50)}.login-form{display:grid;gap:17px;padding:22px 24px 26px}.login-form .config-error{margin:0}.login-submit{width:100%;margin-top:3px}.config-dialog-header{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 28px 22px;border-bottom:1px solid var(--slate-200);background:#fff}.dialog-eyebrow{display:block;margin-bottom:5px;color:var(--blue-700);font-size:12px;font-weight:700;letter-spacing:.12em}.config-dialog-header h2{margin:0;color:var(--slate-950);font-size:24px;letter-spacing:-.02em}.config-dialog-header p{margin:7px 0 0;color:var(--slate-500);font-size:14px}.dialog-close{margin-top:2px;border:1px solid var(--slate-200);background:var(--slate-50)}.config-system-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;overflow-y:auto;padding:22px 28px}.config-system-card{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:14px 16px;min-width:0;margin:0;padding:18px;border:1px solid var(--slate-200);border-radius:12px;background:#fff}.config-system-card legend{display:flex;align-items:center;gap:9px;padding:0 8px;color:var(--slate-950);font-size:16px;font-weight:700}.config-system-icon{display:inline-grid;width:31px;height:31px;place-items:center;border:1px solid #d8e1ed;border-radius:8px;color:var(--blue-700);background:#fbfdff}.config-field{display:grid;min-width:0;gap:7px}.config-field>span{color:var(--slate-700);font-size:12px;font-weight:600}.config-field input,.config-field select{width:100%;height:42px;min-width:0;padding:0 11px;border:1px solid #b9c6d5;border-radius:8px;color:var(--slate-900);background:#fff}.config-field input:hover,.config-field select:hover{border-color:#8194aa}.config-url-field{grid-column:1 / -1}.test-entry-link{display:inline-flex;min-height:42px;align-items:center;justify-content:flex-end;gap:5px;color:var(--blue-700);font-size:13px;font-weight:600;text-decoration:none}.test-entry-link:hover{text-decoration:underline}.test-entry-link.disabled{pointer-events:none;color:#94a3b8}.config-error{display:flex;flex:0 0 auto;align-items:center;gap:9px;margin:0 28px 16px;padding:11px 14px;border:1px solid #f3b7b7;border-radius:8px;color:#9f1d1d;background:#fff5f5;font-size:14px}.config-dialog-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:24px;padding:18px 28px;border-top:1px solid var(--slate-200);background:#fff}.config-dialog-footer p{margin:0;color:var(--slate-500);font-size:13px}.config-dialog-footer>div{display:flex;gap:10px}.primary-button,.secondary-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 17px;border-radius:8px;font-weight:600}.primary-button{border:1px solid var(--blue-700);color:#fff;background:var(--blue-700)}.primary-button:hover{background:#064d91}.secondary-button{border:1px solid var(--slate-300);color:var(--slate-700);background:#fff}.secondary-button:hover{background:var(--slate-100)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.65}.footer{display:grid;place-items:center;gap:7px;margin-top:auto;padding:12px 20px 10px;color:var(--slate-500);font-size:13px}.footer div{display:flex;align-items:center;gap:12px}.footer div span{width:1px;height:13px;background:var(--slate-300)}.footer button{padding:4px;border:0;color:inherit;background:transparent}.footer button:hover{color:var(--blue-700);text-decoration:underline}.footer p{margin:0}.toast{position:fixed;z-index:100;right:28px;bottom:28px;display:grid;width:min(400px,calc(100vw - 40px));grid-template-columns:28px minmax(0,1fr) 44px;align-items:center;gap:12px;padding:14px 12px 14px 16px;border:1px solid #bdd3e8;border-radius:12px;color:var(--slate-900);background:#fff;box-shadow:0 18px 50px #0f172a2e;animation:toast-in .22s ease-out}.toast>svg{color:var(--blue-700)}.toast>div{display:flex;min-width:0;flex-direction:column;gap:3px}.toast strong{font-size:14px}.toast span{overflow:hidden;color:var(--slate-500);font-size:13px;text-overflow:ellipsis;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1180px){.main-content{grid-template-columns:minmax(0,1fr) 340px;gap:28px;padding-inline:26px}.system-row{grid-template-columns:58px minmax(0,1fr) 48px}.availability{display:none}}@media(max-width:920px){.portal-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar-nav{padding-inline:6px}.nav-item span,.collapse-button span{display:none}.nav-item{min-height:58px}.main-content{grid-template-columns:minmax(0,1fr)}.right-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-copy,.portal-title p,.title-divider{display:none}.config-system-list{grid-template-columns:minmax(0,1fr)}}@media(max-width:680px){.portal-shell{display:block}.sidebar{position:fixed;top:auto;right:0;bottom:0;left:0;z-index:50;display:block;width:auto;height:68px;overflow:hidden;border-top:1px solid rgba(255,255,255,.08)}.portal-mark,.collapse-button,.nav-item:nth-child(n+5){display:none}.sidebar-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:5px 8px}.nav-item{min-height:58px;gap:3px}.nav-item span{display:block;font-size:11px}.topbar{min-height:66px;padding:0 16px}.portal-title h1{font-size:20px}.account-area>.icon-button,.profile-button>svg,.profile-copy{display:none}.admin-login-button{padding-inline:11px}.avatar{width:38px;height:38px}.main-content{gap:20px;padding:20px 14px 0}.search-field{height:56px}.search-field input{font-size:16px}.suggestion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.suggestion-list button{justify-content:flex-start;padding-inline:10px}.system-row{min-height:88px;grid-template-columns:50px minmax(0,1fr) 40px;gap:12px;padding:12px}.system-icon{width:48px;height:48px}.system-copy strong{font-size:16px}.system-copy small{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.launch-arrow{width:40px;height:40px}.right-rail{display:flex}.footer{padding-bottom:94px}.toast{right:12px;bottom:82px}.dialog-backdrop{align-items:end;padding:0}.config-dialog{max-height:calc(100vh - 24px);border-radius:16px 16px 0 0}.login-dialog{width:100%;border-radius:16px 16px 0 0}.config-dialog-header{padding:20px 18px 17px}.config-dialog-header h2{font-size:21px}.config-dialog-header p{max-width:260px;line-height:1.5}.config-system-list{padding:18px 14px}.config-system-card{grid-template-columns:minmax(0,1fr)}.config-url-field{grid-column:auto}.test-entry-link{justify-content:flex-start}.config-dialog-footer{align-items:stretch;flex-direction:column;padding:15px 18px 20px}.config-dialog-footer>div{display:grid;grid-template-columns:1fr 1.3fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
