:root{--navy:#142b49;--navy2:#1d3c60;--blue:#2563a6;--green:#15945e;--green-soft:#e9f7f0;--ink:#172536;--muted:#718096;--line:#e5eaf0;--surface:#fff;--canvas:#f4f7fa;--shadow:0 14px 40px rgba(24,45,72,.08);--radius:16px;font-family:Inter,"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{margin:0;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(37,99,166,.22);outline-offset:2px}[hidden]{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.92fr) minmax(440px,1.08fr);background:#fff}.login-brand-panel{padding:48px clamp(32px,6vw,92px);background:linear-gradient(145deg,#10233d 0%,#17395e 55%,#1f4c70 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-brand-panel:after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-230px;bottom:-220px;box-shadow:0 0 0 46px rgba(255,255,255,.025),0 0 0 95px rgba(255,255,255,.02)}.brand-lockup{display:flex;align-items:center;gap:12px;color:var(--navy)}.brand-lockup-light{color:#fff;position:relative;z-index:1}.brand-mark{width:42px;height:42px;border-radius:12px;background:var(--green);display:grid;place-items:center;color:#fff;font-family:Georgia,serif;font-size:28px;font-weight:700;box-shadow:0 6px 16px rgba(21,148,94,.25)}.brand-lockup strong,.sidebar-brand strong{display:block;font-size:15px;letter-spacing:2.5px;font-weight:800}.brand-lockup span,.sidebar-brand span{display:block;margin-top:3px;font-size:9px;letter-spacing:1.45px;opacity:.72;font-weight:700}.login-intro{max-width:540px;position:relative;z-index:1;margin:80px 0}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--green);margin-bottom:13px}.login-brand-panel .eyebrow{color:#8bd3b1}.login-intro h1{font-size:clamp(40px,5vw,66px);letter-spacing:-2.8px;line-height:1.08;margin:0 0 22px;font-weight:750}.login-intro h1 em{font-family:Georgia,serif;font-weight:400;color:#a5dfc4}.login-intro p{font-size:15px;line-height:1.8;color:rgba(255,255,255,.7);max-width:440px;margin:0}.login-panel-foot{font-size:11px;letter-spacing:.4px;color:rgba(255,255,255,.58);position:relative;z-index:1}.login-form-panel{display:grid;place-items:center;padding:48px 30px}.login-form-wrap{width:min(100%,420px)}.mobile-brand{display:none}.form-heading{margin-bottom:34px}.form-heading h2{font-size:32px;letter-spacing:-1.2px;margin:0 0 9px}.form-heading p{color:var(--muted);font-size:14px;margin:0}.login-form-wrap form{display:flex;flex-direction:column}.login-form-wrap label{font-size:12px;font-weight:700;margin:0 0 9px;color:#34445a}.login-form-wrap input{width:100%;height:49px;border:1px solid #dce3eb;border-radius:10px;padding:0 14px;background:#fbfcfe;color:var(--ink);font-size:14px;margin-bottom:19px;transition:.2s}.login-form-wrap input:focus{border-color:#6ca5d7;background:#fff;outline:none;box-shadow:0 0 0 4px rgba(37,99,166,.08)}.login-form-wrap input::placeholder{color:#a2acb9}.password-wrap{position:relative}.password-wrap input{padding-right:90px}.password-toggle{position:absolute;right:12px;top:1px;height:47px;border:0;background:transparent;color:var(--blue);font-size:11px;font-weight:800}.btn{border:0;border-radius:10px;min-height:44px;padding:0 16px;font-size:12px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .16s,background .16s,box-shadow .16s}.btn:disabled{opacity:.65;cursor:wait}.btn-primary{background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(21,148,94,.18)}.btn-primary:hover{background:#0e8050;transform:translateY(-1px)}.btn-full{width:100%;height:50px;margin-top:6px}.btn-light{background:#f1f5f9;color:#31465e;border:1px solid #e3eaf1}.btn-light:hover{background:#e9eff5}.btn-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:none;animation:spin .7s linear infinite}.is-loading .btn-spinner{display:inline-block}.is-loading .btn-label{opacity:.85}@keyframes spin{to{transform:rotate(360deg)}}.form-error{margin-top:15px;border:1px solid #f4c8c8;border-radius:9px;background:#fff4f4;color:#ae3030;padding:11px 12px;font-size:12px;line-height:1.55}.login-security{margin-top:24px;display:flex;align-items:center;gap:8px;font-size:10px;color:#8492a3}.security-dot,.tiny-dot,.branch-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}.login-copyright{margin-top:65px;font-size:10px;color:#a0aab7}.app-shell{min-height:100vh;display:flex;background:var(--canvas)}.sidebar{width:258px;background:var(--navy);color:#fff;min-height:100vh;padding:25px 17px 18px;display:flex;flex-direction:column;flex-shrink:0;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 31px;color:#fff}.sidebar-brand .brand-mark{width:38px;height:38px;font-size:25px}.sidebar-brand strong{font-size:14px}.sidebar-brand span{font-size:8px;letter-spacing:1.05px}.workspace-label,.nav-section-label{font-size:9px;font-weight:800;letter-spacing:1.5px;color:#8ca2ba;padding:0 9px;margin:0 0 11px}.workspace-card{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px 10px;margin-bottom:27px}.workspace-avatar{width:32px;height:32px;border-radius:9px;background:#d8eee4;color:#116b48;display:grid;place-items:center;font-size:11px;font-weight:850;flex-shrink:0}.workspace-copy{min-width:0;flex:1}.workspace-copy strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-copy span{display:block;margin-top:4px;font-size:9px;color:#9eb2c7;letter-spacing:.7px}.workspace-status{width:7px;height:7px;border-radius:50%;background:#47d795;box-shadow:0 0 0 4px rgba(71,215,149,.12)}.side-nav{display:flex;flex-direction:column;gap:4px}.nav-section-label{margin:0 0 7px}.nav-section-modules{margin-top:23px}.nav-item{width:100%;height:42px;padding:0 11px;border:0;border-radius:9px;background:transparent;color:#b8c7d7;text-align:left;display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;transition:.15s}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.is-active{background:#fff;color:var(--navy);box-shadow:0 4px 12px rgba(0,0,0,.08)}.nav-icon{width:18px;text-align:center;font-size:17px;line-height:1;color:inherit}.sidebar-bottom{margin-top:auto}.api-mini-status{height:37px;display:flex;align-items:center;gap:8px;padding:0 11px;margin-bottom:9px;color:#a9c2b6;font-size:10px}.api-mini-status small{margin-left:auto;color:#8198b0}.status-pulse{width:7px;height:7px;border-radius:50%;background:#43d18b;box-shadow:0 0 0 4px rgba(67,209,139,.12)}.nav-logout{color:#d5b4b4}.nav-logout:hover{color:#fff;background:rgba(211,76,76,.13)}.sidebar-version{font-size:8px;letter-spacing:1.1px;color:#7289a3;padding:17px 11px 0}.main-column{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:10}.breadcrumb{display:flex;align-items:center;gap:11px;font-size:11px;color:#9aa7b5}.breadcrumb b{font-weight:400;color:#c5cdd6}.breadcrumb strong{color:#31445b;font-weight:750}.topbar-right{display:flex;align-items:center;gap:25px}.topbar-date{font-size:10px;color:#8a97a7}.user-menu{display:flex;align-items:center;gap:10px;border-left:1px solid var(--line);padding-left:22px}.user-avatar{width:34px;height:34px;border-radius:50%;background:#e3f2eb;color:#14724c;display:grid;place-items:center;font-size:11px;font-weight:800}.user-copy strong{display:block;font-size:11px;color:#263a51}.user-copy span{display:block;font-size:9px;color:#8d9aa9;margin-top:3px}.mobile-menu-btn{display:none;border:0;background:transparent;font-size:21px;color:var(--navy)}.content-area{width:100%;max-width:1500px;margin:0 auto;padding:34px 36px 45px;flex:1}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{font-size:29px;letter-spacing:-1px;margin:0 0 7px;color:#1b2d42}.page-heading p{font-size:12px;color:var(--muted);margin:0}.branch-chip{display:flex;align-items:center;gap:8px;border:1px solid #dce8e1;background:#f4fbf7;border-radius:30px;padding:9px 13px;font-size:10px;font-weight:750;color:#287453;white-space:nowrap}.welcome-banner{min-height:166px;border-radius:var(--radius);padding:27px 31px;background:linear-gradient(110deg,#17395e,#23587b);color:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;margin-bottom:29px}.welcome-banner:after{content:"";position:absolute;width:300px;height:300px;right:95px;top:-190px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 30px rgba(255,255,255,.035),0 0 0 65px rgba(255,255,255,.025)}.welcome-kicker{font-size:9px;letter-spacing:1.7px;color:#9cd6bb;font-weight:800;margin-bottom:9px}.welcome-banner h2{font-size:23px;letter-spacing:-.5px;margin:0 0 9px}.welcome-banner p{font-size:11px;line-height:1.65;color:rgba(255,255,255,.7);max-width:580px;margin:0}.welcome-art{width:125px;height:110px;position:relative;display:grid;place-items:center;z-index:1;flex-shrink:0}.cup{font-size:67px;filter:drop-shadow(0 12px 13px rgba(0,0,0,.18));transform:rotate(-7deg)}.cup-steam{position:absolute;top:-5px;right:25px;font-size:39px;color:#a8dec4;transform:rotate(90deg)}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title-row h2,.panel-heading h2{font-size:15px;margin:0 0 5px;color:#23374e}.section-title-row p,.panel-heading p{font-size:10px;color:#8794a4;margin:0}.btn-refresh{min-height:35px;font-size:10px;padding:0 12px}.btn-refresh.is-loading{opacity:.65}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid #e8edf2;border-radius:13px;padding:16px 17px;min-height:128px;box-shadow:0 3px 12px rgba(30,50,75,.025)}.stat-top{display:flex;align-items:center;justify-content:space-between}.stat-label{font-size:8px;letter-spacing:1.1px;font-weight:850;color:#91a0ae}.stat-symbol{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:17px}.green-symbol{background:#e8f7ef;color:#15945e}.blue-symbol{background:#eaf2fb;color:#397ab6}.amber-symbol{background:#fff5e4;color:#b77c21}.purple-symbol{background:#f3edfb;color:#8666b4}.stat-value{font-size:28px;letter-spacing:-1px;font-weight:800;color:#1f344c;margin:11px 0 5px}.stat-value-sm{font-size:19px;letter-spacing:-.3px;margin-top:15px}.stat-foot{display:flex;align-items:center;gap:6px;font-size:9px;color:#8492a2}.green-dot{width:6px;height:6px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:17px}.panel-card{background:#fff;border:1px solid #e7edf2;border-radius:14px;padding:20px;box-shadow:0 3px 12px rgba(30,50,75,.025);min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-count{font-size:9px;color:#718397;background:#f2f5f8;padding:6px 9px;border-radius:20px}.module-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module-card{border:1px solid #e8edf2;border-radius:11px;padding:13px;min-width:0;background:#fff}.module-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}.module-icon{width:30px;height:30px;border-radius:9px;background:#eff5f9;color:#2b5d85;display:grid;place-items:center;font-size:17px}.module-state{font-size:8px;font-weight:750;padding:5px 7px;border-radius:20px;white-space:nowrap}.state-ready{background:#eaf7f0;color:#16804f}.state-pending{background:#fff5e5;color:#9a6817}.state-off{background:#f0f2f5;color:#758294}.module-card h3{font-size:11px;margin:0 0 5px;color:#263b52}.module-card p{font-size:9px;line-height:1.5;color:#8693a2;margin:0;min-height:27px}.module-card-foot{display:flex;justify-content:space-between;gap:7px;border-top:1px solid #edf0f4;padding-top:9px;margin-top:12px;font-size:8px;color:#8b98a7}.info-list{display:flex;flex-direction:column}.info-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf0f4;font-size:10px}.info-row:last-child{border-bottom:0}.info-row span{color:#8492a2}.info-row strong{font-size:10px;color:#344960;text-align:right;overflow-wrap:anywhere}.notice-panel{display:flex;gap:13px;background:#f0f6fb;border:1px solid #deebf5;border-radius:12px;padding:15px 17px;margin-top:18px}.notice-icon{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:#dcebf7;color:#326b98;display:grid;place-items:center;font-size:12px;font-weight:800}.notice-panel strong{font-size:10px;color:#315774}.notice-panel p{font-size:9px;line-height:1.7;color:#6d8295;margin:5px 0 0}.app-footer{padding:17px 36px;border-top:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:.7px;color:#95a1ae}.all-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.settings-panel{max-width:850px}.setting-group{padding:4px 0 15px}.setting-group+ .setting-group{border-top:1px solid var(--line);padding-top:18px}.setting-group h3{font-size:9px;letter-spacing:1.2px;color:#8492a2;margin:0 0 6px}.setting-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #f0f2f5;font-size:11px}.setting-row:last-child{border-bottom:0}.setting-row span{color:#758597}.setting-row strong{color:#344960;text-align:right;overflow-wrap:anywhere}.api-panel{max-width:900px}.live-badge{font-size:9px;color:#16804f;background:#eaf7f0;padding:7px 10px;border-radius:20px;display:flex;align-items:center;gap:6px}.live-badge i{width:6px;height:6px;background:#15945e;border-radius:50%}.api-url-row{display:flex;align-items:center;gap:12px;background:#f4f7fa;border:1px solid #e8edf2;border-radius:10px;padding:11px 12px}.api-url-row code{font-size:11px;color:#315a7d;flex:1;overflow-wrap:anywhere}.api-url-row .btn{min-height:33px;white-space:nowrap}.endpoint-list{margin-top:19px;border-top:1px solid var(--line)}.endpoint-list>div{display:grid;grid-template-columns:55px minmax(110px,170px) 1fr;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf0f4}.method{font-size:8px;font-weight:850;letter-spacing:.5px}.method-get{color:#16804f}.method-post{color:#b4771e}.endpoint-list code{font-size:10px;color:#35506b}.endpoint-list small{font-size:9px;color:#8996a4}.api-security-note{font-size:9px;color:#8291a1;line-height:1.7;margin:16px 0 0}.empty-state{padding:22px;text-align:center;color:#8794a2;background:#f8fafc;border:1px dashed #dce4ec;border-radius:10px;font-size:10px}.toast-region{position:fixed;right:18px;top:18px;z-index:100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{max-width:min(380px,calc(100vw - 36px));padding:12px 15px;border-radius:10px;color:#fff;background:#274866;box-shadow:0 10px 30px rgba(10,30,50,.2);font-size:11px;line-height:1.5;opacity:0;transform:translateY(-6px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast-success{background:#16764e}.toast-error{background:#a63c3c}.sidebar-overlay{display:none}
@media(max-width:1100px){.sidebar{width:230px}.content-area{padding:28px 25px}.topbar{padding:0 25px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.all-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh;padding:32px 24px}.mobile-brand{display:flex;margin-bottom:55px}.form-heading h2{font-size:29px}.login-copyright{margin-top:48px}.sidebar{position:fixed;left:0;top:0;bottom:0;min-height:100dvh;transform:translateX(-105%);transition:transform .22s;box-shadow:15px 0 40px rgba(12,30,50,.15)}.sidebar.sidebar-open{transform:translateX(0)}.sidebar-overlay.visible{display:block;position:fixed;inset:0;background:rgba(7,20,35,.42);z-index:15}.topbar{height:62px;padding:0 16px;gap:12px}.mobile-menu-btn{display:block}.breadcrumb{margin-right:auto}.topbar-date{display:none}.user-menu{padding-left:12px}.user-copy{display:none}.content-area{padding:24px 16px 32px}.page-heading{align-items:flex-start;flex-direction:column;gap:13px}.page-heading h1{font-size:26px}.welcome-banner{padding:22px 20px;min-height:150px}.welcome-banner h2{font-size:19px}.welcome-banner p{max-width:420px;font-size:10px}.welcome-art{width:78px}.cup{font-size:48px}.cup-steam{font-size:27px;right:13px}.stat-grid{gap:9px}.stat-card{padding:13px;min-height:118px}.stat-value{font-size:25px}.stat-value-sm{font-size:17px}.dashboard-grid{grid-template-columns:1fr}.module-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{padding:15px 16px;flex-wrap:wrap}.all-module-grid{grid-template-columns:1fr 1fr}.endpoint-list>div{grid-template-columns:48px minmax(85px,120px) 1fr;gap:7px}.endpoint-list small{line-height:1.4}.notice-panel{padding:13px}.section-title-row h2{font-size:14px}}
@media(max-width:420px){.branch-chip{font-size:9px}.module-card{padding:10px}.module-state{font-size:7px}.module-card h3{font-size:10px}.all-module-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-right{gap:8px}.user-menu{padding-left:8px}.api-url-row{align-items:stretch;flex-direction:column}.api-url-row .btn{width:100%}}
