@charset "UTF-8";
:root{--bg:#f6f7f4;--surface:#fff;--surface-2:#f0f2ed;--text:#1e302b;--muted:#738078;--line:#e2e7df;--accent:#244d40;--accent-soft:#e7efe7;--orange:#c77240;--shadow:0 8px 32px #163b2310;--radius:16px;color-scheme:light}
:root[data-theme=dark]{--bg:#141c19;--surface:#1c2722;--surface-2:#24312a;--text:#e7ede6;--muted:#a5b3a8;--line:#334139;--accent:#acd1b4;--accent-soft:#2c4234;--orange:#efac72;--shadow:0 8px 32px #0002;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 "Segoe UI","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:3px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.6px;font-size:clamp(28px,3vw,42px);font-weight:650;line-height:1.3}h2{font-size:18px;font-weight:600}h3{font-size:17px;font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.skip{position:fixed;left:20px;top:-60px;z-index:100;background:var(--accent);color:var(--bg);padding:12px}.skip:focus{top:10px}.brand{display:flex;align-items:center;gap:12px;font-weight:750;letter-spacing:2px;font-size:17px;white-space:nowrap}.brand-mark{position:relative;width:41px;height:44px;display:grid;place-items:center;background:#244d40;color:#fff;border-radius:12px;font-size:27px;letter-spacing:-3px;padding-right:4px;font-weight:600}.brand-mark span{position:absolute;top:-4px;right:-5px;width:19px;height:19px;border-radius:6px;background:#efac72;color:#244d40;font-size:14px;line-height:19px;letter-spacing:0;text-align:center;border:2px solid var(--surface)}.brand-caption{display:block;font-size:9px;color:var(--muted);font-weight:500;letter-spacing:1.5px;margin-top:2px}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:var(--surface);border-right:1px solid var(--line);padding:35px 23px;display:flex;flex-direction:column;z-index:10}.rail-label{font-size:11px;letter-spacing:1px;color:var(--muted);margin:54px 12px 18px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;border-radius:10px;padding:12px;color:var(--muted);text-align:left}.nav-item span:first-child{font-size:16px;width:18px;text-align:center}.nav-item small{margin-left:auto;min-width:22px;text-align:center;font-size:10px}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav-item.active small{background:var(--surface);border-radius:5px}.rail-bottom{margin-top:auto;font-size:11px;color:var(--text);padding:30px 8px 0}.rail-bottom p{font-size:10px;color:var(--muted);margin:8px 0}.small-dot{display:inline-block;width:6px;height:6px;background:#4b855b;border-radius:50%;margin-right:5px}.workspace{margin-left:232px}.topbar{height:87px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{padding:0 13px;color:var(--line)}.top-actions{display:flex;align-items:center;gap:10px}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px 15px;font-size:12px;line-height:1.5;white-space:nowrap;transition:background .15s,border-color .15s}.button:hover,.icon-button:hover{background:var(--surface-2);border-color:var(--muted)}.button.quiet{background:transparent;border-color:transparent}.button.primary{background:#244d40;color:#fff;border-color:#244d40}.button.primary:hover{background:#32634f}.icon-button{height:36px;width:36px;padding:0;font-size:20px}main{max-width:1480px;margin:auto;padding:48px 42px 26px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px;gap:20px}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:600;margin:0 0 16px}.eyebrow>span{display:inline-block;width:6px;height:6px;background:var(--orange);border-radius:50%;margin-right:8px}.intro h1{margin-bottom:14px}.intro h1>span,.story-copy h1>span{color:var(--orange)}.lead{color:var(--muted);font-size:14px;margin-bottom:0}.intro-note{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:11px;border-left:1px solid var(--line);padding-left:25px;min-width:175px}.intro-note small{font-size:10px;line-height:2.5}.intro-number{font-size:43px;font-weight:300;color:var(--accent);letter-spacing:-3px}.toolbar{display:flex;gap:14px;margin-bottom:35px}.search{display:flex;align-items:center;gap:12px;flex:1;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 16px;max-width:620px}.search:focus-within{border-color:var(--accent)}.search>span{font-size:25px;color:var(--muted);line-height:1}.search input{background:transparent;border:0;outline:none;color:var(--text);width:100%;min-width:0;font-size:12px}.search kbd{font-size:11px;border:1px solid var(--line);padding:0 5px;border-radius:4px;color:var(--muted)}.toolbar>.button{margin-left:auto;padding:10px 16px;background:transparent}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px}.section-head h2{margin-bottom:0;font-size:15px;letter-spacing:-.2px}.section-head h2>span{display:inline-block;color:var(--muted);font-size:11px;font-weight:400;margin-left:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:0 6px}.section-head>.muted{font-size:10px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.service-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 21px 16px;min-width:0;transition:border-color .15s,box-shadow .15s,transform .15s}.service-card:hover{border-color:var(--muted);box-shadow:var(--shadow);transform:translateY(-2px)}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:8px}.app-icon{display:flex;align-items:center;justify-content:center;flex:none;width:43px;height:43px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:19px;color:var(--accent);font-weight:650}.app-icon[data-group="1"]{color:#bc6e3e;background:#faf0e7;border-color:#f1e3d4}.app-icon[data-group="3"]{color:#536caa;background:#edf1fb;border-color:#dce3f2}.app-icon[data-group="4"]{color:#926b9b;background:#f5edf8;border-color:#e8ddeb}:root[data-theme=dark] .app-icon{background:var(--surface-2);border-color:var(--line)}.star{background:none;border:0;color:var(--muted);font-size:20px;padding:4px 0 4px 12px}.star.selected{color:var(--orange)}.service-card h3{font-size:15px;letter-spacing:-.2px;margin:0 0 6px;overflow-wrap:anywhere}.card-description{color:var(--muted);font-size:11px;line-height:1.8;margin-bottom:17px;min-height:20px}.card-domain{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:10px;letter-spacing:.1px;font-family:Consolas,monospace;margin-bottom:18px}.card-bottom{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:14px;min-height:42px}.service-state{display:inline-flex;gap:6px;align-items:center;font-size:10px;color:var(--muted);white-space:nowrap}.service-state::before{content:"";width:5px;height:5px;background:#aeb7b0;border-radius:50%}.service-state[data-state=reachable]::before{background:#648f67}.service-state[data-state=auth_required]::before{background:#d2a453}.service-state[data-state=failed]::before{background:#c48175}.card-open{font-size:11px;margin-left:auto;color:var(--accent);font-weight:650;white-space:nowrap}.card-open:hover{text-decoration:underline}.copy-link{border:0;background:none;color:var(--muted);font-size:11px;padding:4px 0 4px 8px}.copy-link:hover{color:var(--accent)}.copy-api{margin-top:10px;display:block;font-size:10px;color:var(--muted);border:0;background:none;padding:0;max-width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-api:hover{color:var(--accent)}footer{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);margin-top:40px;padding-top:20px}.empty{padding:60px 20px;text-align:center;color:var(--muted)}.empty>span{font-size:35px}.empty h3{margin:12px 0 5px}.empty p{font-size:12px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);padding:11px 22px;border-radius:10px;box-shadow:var(--shadow);background:#244d40;color:#fff;font-size:12px;z-index:100;max-width:calc(100% - 32px)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#244d40;color:#f3f4ed;padding:40px 52px;display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden}.login-story::after{content:"↗";position:absolute;right:-15px;bottom:-80px;line-height:1;font-size:380px;color:#ffffff06;pointer-events:none}.login-story .brand-caption{color:#afc6b8}.login-story .brand-mark{background:#ffffff12}.story-copy{margin:auto 0;padding:60px 0}.story-copy .eyebrow{color:#b2c8b9}.story-copy h1{font-size:clamp(34px,4vw,55px);font-weight:500;line-height:1.4;letter-spacing:-2px;margin-bottom:25px}.story-copy>p:not(.eyebrow){font-size:13px;line-height:2;color:#bacebd}.story-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.story-tags span{font-size:10px;border:1px solid #ffffff2b;border-radius:6px;padding:7px 11px;color:#d7e5d8}.login-story>small{font-size:9px;letter-spacing:1px;color:#a5bcad}.login-main{display:flex;align-items:center;justify-content:center;position:relative;padding:50px 35px;max-width:none}.login-theme{position:absolute;top:32px;right:32px}.login-box{width:100%;max-width:340px}.login-box h2{font-size:29px;letter-spacing:-1px;margin:0 0 6px}.login-box>.muted{font-size:12px;margin-bottom:32px}.login-box label,dialog label{display:block;font-size:12px;font-weight:500;margin-top:18px;margin-bottom:8px}input,select{border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:var(--surface);color:var(--text);width:100%;min-width:0}input:focus,select:focus{border-color:var(--accent)}input[type=checkbox]{width:auto;accent-color:var(--accent)}.password-wrap{position:relative}.password-wrap input{padding-right:60px}.password-wrap button{position:absolute;right:12px;top:11px;border:0;background:none;font-size:11px;color:var(--muted)}.login-box .primary{width:100%;justify-content:space-between;padding:13px 16px;margin-top:27px;font-size:13px}.login-hint{font-size:10px;color:var(--muted);line-height:1.9;margin-top:24px}.error,.notice{border:1px solid #cb86704d;border-radius:8px;background:#dc9c7b12;color:var(--orange);font-size:12px;padding:12px 15px;margin-top:18px}.error{color:#bb6250}.admin-top{display:flex;align-items:center;justify-content:space-between;padding:24px max(24px,calc((100vw - 1120px)/2));border-bottom:1px solid var(--line);background:var(--surface);gap:16px}.admin-main{max-width:1120px;padding:40px 24px}.admin-main>h1{font-size:29px}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-top:25px}.password-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end}.password-form label{font-size:11px;color:var(--muted)}.password-form input{display:block;margin-top:8px}.password-form>.button{padding:11px}.settings-panel .section-head p{font-size:11px;margin:8px 0 0}.admin-search{display:block;max-width:350px;margin-bottom:20px}.admin-search input{font-size:12px}.manage-row{display:flex;gap:15px;align-items:center;border-top:1px solid var(--line);padding:15px 0}.manage-info{flex:1;min-width:0}.manage-info strong{display:block;font-size:13px}.manage-info small{display:block;font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-row[data-disabled=true]{opacity:.6}.manage-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.manage-actions .button{padding:6px 9px;font-size:11px}.category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:9px;padding:12px;font-size:12px}.category-row small{color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);padding:25px;width:min(520px,calc(100vw - 30px));max-height:90vh;overflow:auto;box-shadow:var(--shadow)}dialog::backdrop{background:#12241c88;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-head h2{margin:0}.dialog-head .icon-button{background:none;border:0}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:15px}.checkbox{display:flex;align-items:center;gap:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
@media(min-width:1600px){.service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:210px;padding:30px 18px}.workspace{margin-left:210px}main{padding:35px 28px}.topbar{padding:0 28px}.intro-note{display:none}.password-form{grid-template-columns:repeat(2,minmax(0,1fr))}.login-story{padding:35px}}
@media(max-width:700px){.sidebar{position:static;width:auto;padding:22px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:15px}.rail-label,.rail-bottom{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;gap:4px;margin:20px -5px 0;padding-bottom:12px}.nav-item{width:auto;flex-shrink:0;gap:6px;padding:8px 10px;font-size:11px}.nav-item span:first-child{font-size:13px;width:auto}.nav-item small{display:none}.workspace{margin-left:0}.topbar{height:60px;padding:0 20px}.breadcrumb{font-size:10px}.breadcrumb span{padding:0 7px}.top-actions{gap:2px}.top-actions .button{font-size:10px;padding:7px 8px}.icon-button{height:32px;width:32px;font-size:18px}main{padding:27px 20px 20px}.intro{margin-bottom:25px}.intro h1{font-size:29px;letter-spacing:-1.3px}.eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:12px}.lead{font-size:11px}.toolbar{gap:8px;margin-bottom:26px}.search{padding:9px 10px;gap:7px}.search input{font-size:11px}.search kbd{display:none}.toolbar>.button{font-size:10px;padding:8px 9px}.service-grid{gap:12px}.service-card{padding:16px 14px 13px;border-radius:12px}.service-card h3{font-size:13px}.card-top{margin-bottom:14px}.app-icon{width:35px;height:35px;font-size:15px;border-radius:10px}.card-description{font-size:10px;min-height:36px;margin-bottom:12px;line-height:1.8}.card-domain{font-size:8px;margin-bottom:13px}.card-bottom{gap:4px;flex-wrap:wrap;padding-top:10px;min-height:34px}.service-state{font-size:8px;gap:4px}.service-state::before{width:4px;height:4px}.card-open{font-size:10px}.copy-link{font-size:10px;padding-left:5px}.copy-api{font-size:9px}.section-head>.muted{font-size:8px}.section-head h2{font-size:13px}footer{font-size:9px;flex-direction:column;gap:5px;margin-top:28px}.login-page{grid-template-columns:1fr}.login-story{min-height:auto;padding:27px 25px 30px}.story-copy{padding:40px 0 5px}.story-copy h1{font-size:32px;margin-bottom:15px}.story-copy>p:not(.eyebrow){font-size:11px}.story-tags,.login-story>small{display:none}.login-story::after{font-size:240px;bottom:-40px}.login-main{padding:45px 25px 30px}.login-theme{top:15px;right:20px}.login-box{max-width:420px}.login-box h2{font-size:25px}.admin-top{padding:20px 16px}.admin-top .brand{font-size:13px;gap:8px}.admin-top .brand-caption{font-size:9px}.admin-main{padding:28px 16px}.admin-main>h1{font-size:24px;letter-spacing:-1px}.settings-panel{padding:18px 14px}.password-form{grid-template-columns:1fr}.manage-row{gap:8px;align-items:flex-start}.manage-actions{max-width:125px}.manage-actions .button{padding:5px 7px;font-size:10px}.category-list{grid-template-columns:1fr}.settings-panel .section-head p{font-size:10px}.settings-panel .section-head .button{padding:8px;font-size:10px}}
@media(max-width:359px){.service-grid{grid-template-columns:1fr}.card-description{min-height:0}.breadcrumb{display:none}.topbar{justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
