:root{--green:#126a55;--green-deep:#0e483e;--green-dark:#092f2c;--text:#1c302b;--muted:#65736e;--edge:#e0e9e4;--paper:#f5f8f6;--white:#fff}
*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,"Microsoft YaHei","PingFang SC",sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}
body{margin:0;min-height:100vh;background:var(--paper)}
button,input{font:inherit}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
.brand{display:inline-flex;align-items:center;gap:11px;font-size:21px;letter-spacing:-.5px;font-weight:400;white-space:nowrap}
.brand strong{font-weight:750}
.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--green);color:white;display:grid;place-items:center;font-family:Georgia,serif;font-size:26px;font-weight:bold;line-height:1;box-shadow:0 5px 18px #0e483e20}
.brand-on-dark .brand-mark{background:#e0f1e8;color:var(--green-deep)}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,48%)}
.login-intro{position:relative;overflow:hidden;background:linear-gradient(140deg,#0c4c42 0%,#0b352f 72%,#102d2a 100%);color:white}
.intro-inner{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;padding:52px clamp(40px,5.5vw,95px)}
.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}
.intro-main{margin:auto 0;max-width:570px}
.intro-main .eyebrow{color:#9fd3b5;margin-bottom:23px}
.intro-main h1{font-size:clamp(38px,4vw,61px);line-height:1.24;letter-spacing:-2px;font-weight:680;margin:0 0 25px}
.intro-main p{color:#b9d5ca;font-size:17px;line-height:2;max-width:410px}
.intro-foot{font-size:12px;opacity:.66;letter-spacing:1px}
.ring{position:absolute;border:1px solid #bfe8cf27;border-radius:50%;pointer-events:none}
.ring-one{width:720px;height:720px;right:-380px;top:10%}
.ring-two{width:540px;height:540px;right:-290px;top:24%}
.ring-three{width:360px;height:360px;right:-200px;top:37%}
.login-form-wrap{display:flex;justify-content:center;align-items:center;padding:52px 32px;background:#fbfcfb}
.login-card{width:min(400px,100%)}
.mobile-brand{display:none}
.card-topline{font-size:12px;font-weight:700;color:var(--green);letter-spacing:2px;margin-bottom:13px}
.login-card h2{font-size:31px;font-weight:700;letter-spacing:-.8px;margin:0 0 13px}
.helper{color:var(--muted);font-size:14px;margin:0 0 36px;line-height:1.8}
.login-card label{display:block;color:#32463e;font-size:14px;font-weight:600;margin:19px 0 9px}
.login-card input{display:block;width:100%;height:49px;border:1px solid #d1ded7;background:white;border-radius:11px;padding:0 15px;outline:0;transition:box-shadow .2s,border-color .2s}
.login-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px #126a551a}
.login-card input::placeholder{color:#9aa8a1}
.btn-primary{background:var(--green);color:#fff;border:0;border-radius:11px;font-weight:650;transition:background .2s,transform .2s}
.btn-primary:hover{background:#0d5545}
.btn-primary:active{transform:translateY(1px)}
.login-button{width:100%;height:51px;margin-top:32px}
.form-error{background:#fff0ed;border:1px solid #f6c4b8;border-radius:9px;padding:12px 14px;color:#993b2a;font-size:13px}
.login-support{color:var(--muted);font-size:13px;text-align:center;margin:22px 0 50px}
.login-footnote{font-size:12px;color:#a0aca7;text-align:center}
.main-header{background:white;border-bottom:1px solid var(--edge)}
.header-inner{max-width:1190px;margin:auto;min-height:84px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.header-right{display:flex;align-items:center;gap:23px;font-size:13px}
.account{display:flex;align-items:center;gap:10px;color:#365149}
.account-avatar{width:34px;height:34px;border-radius:50%;background:#e9f3ed;color:var(--green);display:grid;place-items:center;font-weight:700}
.admin-link,.logout-button{color:#557067;font-size:13px}
.logout-button{border:0;background:none;padding:8px 0}
.logout-button:hover,.admin-link:hover{color:var(--green)}
.dashboard-container{max-width:1190px;margin:auto;padding:70px 24px 28px}
.welcome{padding-bottom:55px;border-bottom:1px solid var(--edge)}
.welcome .eyebrow{color:var(--green);margin-bottom:18px}
.welcome h1{font-size:38px;margin:0 0 13px;letter-spacing:-1px}
.welcome p{color:var(--muted);margin:0;font-size:15px;line-height:1.8}
.apps-section{margin-top:41px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:21px}
.section-title h2{font-size:20px;margin:0}
.section-title span{font-size:12px;color:#8a9b93}
.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}
.app-card{position:relative;min-height:224px;background:white;border:1px solid #e2eae5;border-radius:16px;padding:28px;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 3px 13px #2c5b4307}
.app-card-active{transition:transform .2s,border-color .2s,box-shadow .2s}
.app-card-active:hover{transform:translateY(-3px);border-color:#acd0bd;box-shadow:0 12px 26px #2c5b4313}
.app-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#e5f4ec;color:var(--green);font-size:27px;font-weight:bold}
.app-icon-database{background:#eaf0fb;color:#486b9a}
.app-main h3{font-size:19px;letter-spacing:-.3px;margin:17px 0 8px}
.app-main p{font-size:13px;color:var(--muted);margin:0;line-height:1.7}
.app-state{margin-top:auto;padding-top:20px;color:#82948b;font-size:12px;font-weight:650}
.app-state.live{color:var(--green)}
.app-state.live span{font-size:17px;margin-left:5px}
.app-empty{grid-column:1/-1;border:1px dashed var(--edge);background:white;border-radius:14px;padding:60px 20px;text-align:center;color:var(--muted)}
.dashboard-footer{display:flex;justify-content:space-between;border-top:1px solid var(--edge);margin-top:75px;padding-top:20px;color:#9ca9a2;font-size:12px}
@media(max-width:940px){.login-layout{grid-template-columns:minmax(0,1fr) minmax(360px,54%)}.intro-inner{padding:40px 32px}.intro-main h1{font-size:42px}}
@media(max-width:720px){.login-layout{display:block}.login-intro{display:none}.login-form-wrap{min-height:100vh;padding:34px 25px}.mobile-brand{display:flex;margin-bottom:72px}.login-card{max-width:400px}.dashboard-container{padding-top:46px}.app-grid{grid-template-columns:1fr}.welcome{padding-bottom:35px}.welcome h1{font-size:31px}.header-inner{min-height:75px}.brand{font-size:17px}.brand-mark{width:34px;height:34px;font-size:23px}.header-right{gap:12px}.account-name{display:none}.app-card{min-height:206px}.dashboard-footer{margin-top:50px}}
@media(max-width:380px){.header-inner{padding:0 15px}.dashboard-container{padding-left:17px;padding-right:17px}.header-right{gap:8px}.admin-link{display:none}}
