:root{--ink:#172d2c;--muted:#84908e;--green:#257363;--green-dark:#194f44;--paper:#f6f8f7;--line:#e6ece9;--sidebar:#132c2a;--amber:#bb8d4d}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-size:14px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}button{border:0}button,input,select,a{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid #57a891}input:focus,select:focus{outline:2px solid #80b7a8;outline-offset:1px}[hidden]{display:none!important}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);color:#e1ebe7;padding:35px 22px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:650;letter-spacing:5px;padding-left:8px}.brand-mark{display:flex;align-items:center;justify-content:center;border:1px solid #abc4b4;border-radius:9px;width:40px;height:42px;font-size:25px;font-family:serif;color:#d3e6da;letter-spacing:0}.brand-sub{display:block;font-size:9px;font-weight:400;letter-spacing:3.5px;margin-top:3px;color:#91b0a4}.workspace-label{margin:51px 10px 20px;color:#abc0b7;font-size:10px;letter-spacing:2px}.workspace-label span{display:block;color:#52786b;font-size:9px;letter-spacing:2px;margin-top:6px}nav a{display:flex;align-items:center;gap:13px;padding:15px 17px;margin:6px 0;border-radius:7px;color:#96afa4;font-size:13px}nav a:hover{background:#1b3833;color:white}nav a.active{background:#2a4b40;color:#e8f2d8;border:1px solid #365844;box-shadow:inset 3px 0 #bad394}.nav-icon{font-size:21px;line-height:20px;width:20px;text-align:center}.sidebar-bottom{margin-top:auto}.connection{display:flex;align-items:center;gap:11px;padding:17px 12px;border-bottom:1px solid #29433c;font-size:12px}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:#a3b8af;margin-right:7px;flex:none}.connection span:not(.status-dot){display:block;font-size:10px;color:#6e9486;margin-top:7px}.user-row{display:flex;align-items:center;gap:10px;padding:23px 7px 0;font-size:12px}.user-row div span{display:block;margin-top:5px;font-size:10px;color:#6e9486}.avatar{height:33px;width:33px;border-radius:50%;background:#35564a;color:#c5d8ca;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}.icon-btn{background:transparent;color:#97b1a6;margin-left:auto;font-size:21px}main{margin-left:224px}header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#fff}.breadcrumb{font-size:11px;color:#91a09a}.breadcrumb span{padding:0 13px;color:#c4cdc8}.breadcrumb strong{font-weight:500;color:#53675e}.header-right{display:flex;align-items:center;gap:25px;font-size:10px;color:#94a09b}.private-badge{background:#f4f7f4;padding:7px 11px;border:1px solid #eaf0e9;border-radius:5px;color:#6e8276}.main-inner{max-width:1550px;margin:auto;padding:36px 42px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#859b8e;font-weight:550}.page-heading h1{font-size:29px;font-weight:600;letter-spacing:1px;margin:10px 0}.title-dot{color:#7fa48b}.page-heading p{font-size:12px;color:var(--muted);margin:9px 0 0;letter-spacing:.2px}.heading-actions{display:flex;gap:10px}.primary,.secondary{border-radius:6px;padding:11px 17px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:var(--green-dark)}.secondary{background:#fff;color:#51685e;border:1px solid #dfe8e1}.secondary:hover{background:#f0f5f1}.filter-bar{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);padding:14px 17px;border-radius:8px;margin-bottom:22px;flex-wrap:wrap}.range-group{background:#f4f6f4;padding:3px;border-radius:5px;display:flex;gap:1px}.range-group button{background:transparent;padding:7px 12px;font-size:11px;color:#89968d;border-radius:4px}.range-group button.selected{background:#fff;color:#286952;box-shadow:0 1px 5px #153c2112}.custom-dates{display:flex;align-items:center;gap:8px;color:#a1ada5}.custom-dates input{border:0;max-width:128px;font-size:11px;color:#64756b;padding:7px 1px;background:transparent}.filter-select{display:flex;margin-left:auto;gap:10px}.filter-select select{border:1px solid #e7ede8;background:#fff;border-radius:5px;color:#6a7d70;font-size:11px;padding:9px 25px 9px 10px;max-width:160px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px 23px 0;overflow:hidden;min-height:151px}.metric>div:first-child{font-size:12px;color:#667b6e;display:flex;justify-content:space-between;align-items:center}.metric>div:first-child>span{font-size:19px;color:#9fb5a8}.metric strong{display:block;font-size:34px;letter-spacing:-1.5px;font-weight:550;margin-top:15px;line-height:1.2;font-variant-numeric:tabular-nums}.metric p{font-size:10px;color:#94a297;margin:11px 0 20px}.metric-line{height:3px;background:#dbe7df;transform:translateX(-23px);width:calc(100% + 46px)}.metric-line.green{background:#67957a}.metric-line.amber{background:#d7c4a4}.chart-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;margin-bottom:22px}.card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.card-heading{padding:23px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px}.card-heading h2{font-size:14px;margin:0;font-weight:600;letter-spacing:.2px}.card-heading p{font-size:10px;color:#94a097;margin:8px 0 0;line-height:1.6}.legend{font-size:10px;color:#8b9b90;white-space:nowrap}.legend i{display:inline-block;width:6px;height:6px;background:#5d9681;border-radius:50%;margin-right:5px}.chip{font-size:9px;padding:4px 8px;border-radius:4px;background:#f1f5f2;color:#829b8a;white-space:nowrap;font-weight:400}.trend-chart{min-height:210px;padding:8px 25px 23px;display:flex;align-items:center;justify-content:center}.trend-chart svg{display:block;width:100%;height:207px;overflow:visible}.trend-chart text{font-size:10px;font-family:inherit;fill:#a1ada4}.source-list{padding:0 25px 23px;min-height:218px}.source-row{margin:16px 0}.source-label{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#5d7464;margin-bottom:8px}.source-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-label small{font-size:9px;color:#a4afa7;margin-left:6px}.source-track{height:5px;background:#f1f5f2;border-radius:3px;overflow:hidden}.source-fill{height:100%;background:#5d8b72;border-radius:3px}.source-row:nth-child(2) .source-fill{background:#8bad96}.source-row:nth-child(3) .source-fill{background:#b1c9ae}.source-row:nth-child(4) .source-fill{background:#cbbb9b}.source-row:nth-child(5) .source-fill{background:#abc5c6}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:196px;padding:25px;color:#a6b3a9;gap:9px}.empty .empty-icon{font-size:30px;color:#b7c9bd;line-height:1.4}.empty strong{color:#849b8c;font-size:12px;font-weight:500}.empty p{font-size:10px;max-width:310px;line-height:1.8;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}th{background:#f8faf8;text-align:left;color:#8c9b91;font-weight:400;font-size:10px;padding:13px 25px;border-top:1px solid #edf1ed;border-bottom:1px solid #edf1ed}td{padding:17px 25px;border-bottom:1px solid #f0f3f0;color:#667b6d}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf9}.name-cell{display:flex;gap:11px;align-items:center;color:#354f3e}.name-cell .avatar{background:#edf3e9;color:#74966c;width:29px;height:29px;font-size:11px}.name-cell small{display:block;font-size:9px;color:#a1ada4;margin-top:4px}.row-link{background:none;padding:0;color:#4d7e63;font-size:11px}.row-link:hover{text-decoration:underline}.source-tag{display:inline-block;background:#f1f6ef;color:#6d8b61;padding:5px 8px;border-radius:4px;font-size:10px;margin-right:4px;max-width:180px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.subtle{color:#a0aea4;font-size:10px}.text-btn{background:none;color:#4c7b60;padding:5px 0;font-size:11px;white-space:nowrap}.footnote{color:#95a298;font-size:10px;line-height:1.8;margin:17px 2px}.search{display:flex;align-items:center;border:1px solid #e3eae3;border-radius:5px;padding:1px 10px;gap:8px}.search span{font-size:20px;color:#9aaa9d}.search input{border:0;padding:8px 0;width:155px;font-size:11px;outline:none}.pagination{display:flex;justify-content:space-between;align-items:center;padding:18px 25px;border-top:1px solid var(--line);font-size:10px;color:#96a49a}.pagination>div{display:flex;gap:8px}.pagination .secondary{padding:8px 13px;font-size:10px}.settings-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;margin-bottom:22px}.settings-card form{padding:0 25px 24px}.settings-card label,.login-card label{display:block;color:#62776a;font-size:12px;margin:0 0 18px}.settings-card input,.login-card input{display:block;width:100%;padding:12px 13px;border:1px solid #e0e8e0;background:#fff;border-radius:5px;margin-top:8px;font-size:12px;color:#244334}.settings-card small{display:block;font-size:10px;color:#9caba0;line-height:1.8;margin-top:7px}.settings-card input::placeholder{color:#b3bdb4}.setup-guide{padding:28px}.setup-guide h2{font-size:20px;font-weight:500;margin:15px 0 28px}.setup-guide ol{list-style:none;margin:0;padding:0}.setup-guide li{display:flex;gap:18px;margin-bottom:25px}.setup-guide li>span{font-size:12px;color:#9cb29f;font-variant-numeric:tabular-nums;line-height:1.4}.setup-guide strong{font-size:12px;font-weight:500;color:#536e58}.setup-guide p{font-size:11px;color:#96a397;line-height:1.9;margin:7px 0 0}.guide-note{background:#f5f8f3;color:#8da086;padding:12px 14px;border-radius:5px;font-size:10px;line-height:1.8}.mapping-row{display:grid;grid-template-columns:1fr 1.5fr 35px;gap:12px;align-items:center;margin:10px 0}.mapping-row input{margin:0}.mapping-row button{background:#f7f7f3;color:#a18d72;border-radius:4px;height:37px}.mapping-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:21px}.mapping-footer small{max-width:480px}.notice{padding:12px 16px;border-radius:6px;background:#eef4ed;color:#6b8566;font-size:11px;border:1px solid #dee8d9;margin-bottom:18px;line-height:1.8}.error{color:#a45548!important}.notice.error{background:#fff3ef;border-color:#f0d8ce}.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-card{padding:9vh max(40px,13vw);display:flex;flex-direction:column;justify-content:center}.login-card .brand-mark{color:#4d7a62;border-color:#9fbba5;margin-bottom:25px}.login-card h1{font-size:33px;font-weight:500;line-height:1.65;letter-spacing:1px;margin:16px 0 10px}.login-card>p{font-size:12px;color:#96a197;line-height:1.8;margin-bottom:33px}.login-card .primary{width:100%;justify-content:space-between;margin-top:3px}.login-card>small{font-size:10px;color:#acb5ab;margin-top:30px}.login-card .error{font-size:11px}.login-decoration{background:#163a31;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.orbit{position:absolute;border:1px solid #65826744;border-radius:50%;width:550px;height:550px;transform:rotate(-40deg)}.orbit.one{width:780px;height:780px}.orbit.two{width:600px;height:600px;left:12%;top:13%}.orbit.three{width:860px;height:860px;top:-60px;left:0}.login-quote{position:relative;font-family:serif;font-size:54px;letter-spacing:10px;line-height:1.65;color:#c7d6bd}.login-quote span{display:block;font-size:12px;font-family:inherit;letter-spacing:3px;color:#799782;margin-top:30px}footer{display:flex;align-items:center;justify-content:space-between;padding:25px 0 22px;margin-top:6px;font-size:9px;color:#a6b1a7}footer b{font-size:8px;letter-spacing:1.5px;font-weight:400;color:#bbc5bd;margin-left:11px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#254a39;color:#fff;padding:13px 25px;border-radius:7px;font-size:12px;z-index:20;box-shadow:0 5px 25px #12382726}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spin{display:inline-block;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1700px){.main-inner{padding-top:50px}.metrics{gap:22px}.metric{min-height:168px}.trend-chart{min-height:270px}.trend-chart svg{height:245px}.source-list{min-height:266px}.source-row{margin:23px 0}}@media(max-width:1200px){.sidebar{width:190px;padding:30px 14px}main{margin-left:190px}.main-inner{padding:30px 26px 0}header{padding:0 26px}.metrics{gap:12px}.metric{padding-left:17px;padding-right:17px}.metric p{font-size:9px}.chart-grid{grid-template-columns:1.3fr 1fr}.filter-select{margin-left:0}.filter-bar{gap:10px}.custom-dates{margin-left:auto}.settings-grid{grid-template-columns:1fr 1fr}.login-card{padding:7vh 7vw}}@media(max-width:850px){.sidebar{width:72px;padding:25px 9px}.brand{padding:0;justify-content:center}.brand>span:last-child,.workspace-label,.sidebar-bottom,.nav-icon+span{display:none}.brand-mark{width:36px;height:39px}nav{margin-top:45px}nav a{font-size:0;justify-content:center;padding:15px 4px}nav .nav-icon{font-size:23px}.main-inner{padding:25px 21px 0}main{margin-left:72px}header{height:62px;padding:0 21px}.metrics{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.filter-select{margin-left:auto}.settings-grid{grid-template-columns:1fr}.page-heading h1{font-size:26px}.heading-actions{gap:6px}.heading-actions button{padding:10px 12px}.custom-dates{margin-left:0}.login-card h1{font-size:26px}.login-quote{font-size:38px;letter-spacing:5px}}@media(max-width:580px){.sidebar{position:static;width:auto;padding:14px 16px;flex-direction:row;align-items:center}.brand{font-size:20px}.brand>span:last-child{display:block}.brand-sub{display:none}.brand-mark{height:30px;width:29px;font-size:20px}nav{display:flex;margin:0 0 0 auto;gap:4px}nav a{margin:0;padding:8px 10px}nav a .nav-icon{font-size:18px}.sidebar-bottom{display:none}main{margin:0}header{height:47px;padding:0 17px}.header-right{gap:10px}.header-right>span:last-child{display:none}.main-inner{padding:24px 16px 0}.page-heading{align-items:flex-start;gap:14px;flex-wrap:wrap}.page-heading p{font-size:11px}.page-heading h1{font-size:25px}.heading-actions{width:100%}.heading-actions button{flex:1}.filter-bar{padding:12px;gap:13px}.range-group{width:100%}.range-group button{flex:1;padding:8px}.custom-dates{justify-content:center;width:100%}.filter-select{width:100%}.filter-select select{max-width:none;width:50%}.metrics{gap:10px}.metric{min-height:138px;padding:16px 14px 0}.metric strong{font-size:30px}.metric p{line-height:1.6;margin-bottom:15px}.metric>div:first-child{font-size:11px}.metric>div:first-child>span{display:none}.chart-grid{gap:16px;margin-bottom:16px}.card-heading{padding:19px 17px;align-items:flex-start;flex-wrap:wrap}.source-list{padding:0 17px 16px}.trend-chart{padding:5px 17px 19px;min-height:210px}.trend-chart svg{height:180px}.card-heading h2{font-size:13px}th,td{padding:13px 17px}.search{width:100%}.search input{flex:1;width:0}.pagination{padding:16px}.settings-card form{padding:0 17px 20px}.setup-guide{padding:23px 20px}.mapping-row{grid-template-columns:1fr 1fr 29px;gap:7px}.mapping-row input{font-size:10px;padding:10px 8px}.mapping-footer{align-items:flex-end}.mapping-footer small{font-size:9px}.mapping-footer .primary{padding:11px}.login-screen{grid-template-columns:1fr}.login-decoration{display:none}.login-card{padding:10vh 10vw}.login-card h1{font-size:31px}footer{align-items:flex-start;gap:10px;line-height:1.8}footer>span:last-child{text-align:right}footer b{display:block}.notice{font-size:10px}}

/* Shared account access. */
.login-card>p a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.login-card>small{line-height:1.9}
#captcha-field{margin-bottom:20px}
#captcha-field>label{margin-bottom:9px}
.captcha-controls{display:flex;align-items:center;gap:12px;min-height:48px}
#captcha-image{display:block;max-width:180px;width:calc(100% - 90px);height:48px;object-fit:contain;object-position:left center;border:1px solid var(--line);border-radius:5px;background:#f8faf8}
#captcha-field .secondary{padding:9px 12px;flex-shrink:0}
#captcha-message{line-height:1.6;margin:8px 0 0}
.user-row>div{min-width:0;flex:1}
.user-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;max-width:113px}
.user-row #user-roles{line-height:1.6}
#access-placeholder .empty{min-height:250px}
#access-placeholder .empty p{max-width:430px}

@media(max-width:580px){.captcha-controls{gap:9px}#captcha-image{max-width:200px}}

.server-connection{padding:0 25px 24px}
.connection-details{margin:0 0 22px}
.connection-details>div{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}
.connection-details dt{color:#91a095}
.connection-details dd{margin:0;text-align:right;color:#4b6a58}
.server-connection .guide-note{line-height:1.9}
.server-connection code{font-family:inherit;overflow-wrap:anywhere}
.server-connection #settings-message{font-size:11px;line-height:1.8;color:#8b9b90}
@media(max-width:580px){.server-connection{padding:0 17px 20px}}
