@font-face{font-family:Workspace;src:local("Microsoft YaHei UI"),local("PingFang SC");font-display:swap}*{box-sizing:border-box}body{margin:0;background:#f8f9fb;color:#202d38;font-family:Workspace,"Microsoft YaHei",sans-serif;font-size:14px}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}button{border:0;background:none;color:inherit}input{outline:none}input:focus{border-color:#34786e!important;box-shadow:0 0 0 3px #34786e14}button:focus-visible,a:focus-visible{outline:2px solid #34786e;outline-offset:4px}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100dvh}.sidebar{background:#fff;border-right:1px solid #e7ebed;padding:36px 22px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.brand{display:flex;align-items:center;gap:12px;font-size:29px;font-weight:800;letter-spacing:-2px;color:#286b60}.brand-name{font-size:21px;letter-spacing:2px;color:#253d3a}.brand small{display:block;font-size:9px;letter-spacing:3.2px;font-weight:500;margin-top:3px}.sidebar .brand{margin:0 15px 53px}.workspace-label{font-size:11px;color:#99a2a8;letter-spacing:1px;padding:0 16px;margin-bottom:15px}nav{display:grid;gap:8px}nav button{text-align:left;display:flex;align-items:center;gap:12px;min-height:46px;padding:12px 15px;border-radius:7px;color:#6b7881}nav button:hover{background:#f4f7f6}nav button.active{background:#eaf3ef;color:#286b60;font-weight:600}.nav-symbol{font-size:21px;font-weight:400}.nav-count{margin-left:auto;font-size:11px;background:#d9eae1;border-radius:4px;padding:2px 5px}.sidebar-note{margin-top:auto;background:#f5f7f4;border:1px solid #edf0ea;border-radius:8px;padding:20px 15px;margin-bottom:30px}.small-label{font-size:9px;letter-spacing:1.2px;color:#6c817a}.sidebar-note strong{display:block;font-size:13px;margin-top:12px}.sidebar-note p{font-size:12px;line-height:1.9;color:#8b9692}.note-line{height:3px;width:34px;background:#b6cdbb;margin-top:20px}.profile{border-top:1px solid #edf0f0;padding:21px 4px 0;display:flex;align-items:center;gap:10px}.avatar{height:37px;width:37px;border-radius:50%;display:grid;place-items:center;background:#e7eee9;color:#467466;font-size:14px}.profile b{font-size:12px}.profile small{display:block;color:#929b9f;font-size:10px;margin-top:4px}.profile button{margin-left:auto;font-size:20px;color:#8c999e}.main{min-width:0;padding:0 48px}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e9eb;font-size:12px;color:#6f7c84}.topbar i{font-style:normal;margin:0 14px;color:#bac2c5}.top-right{display:flex;align-items:center;gap:7px;color:#7f898e;font-size:11px}.status-dot{width:6px;height:6px;background:#6c9c86;border-radius:50%}.date{margin-left:18px;border-left:1px solid #dfe5e5;padding-left:20px}.page-heading{display:flex;justify-content:space-between;align-items:center;padding:39px 0 29px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;color:#6c8b80;font-weight:600}h1{font-size:32px;font-weight:600;letter-spacing:-1px;margin:12px 0}h1 span{color:#598c77}.page-heading p{font-size:12px;color:#8b969c;margin:12px 0 0}.heading-index{font-size:23px;color:#99aaa5;font-weight:300}.heading-index span{font-size:9px;letter-spacing:1.2px;margin-left:5px}.overview{min-height:214px;background:#e9f0ea;border:1px solid #dde9df;border-radius:12px;display:grid;grid-template-columns:1.2fr 1fr;position:relative;overflow:hidden;padding:28px 35px;isolation:isolate}.overview-text{z-index:1}.overview h2{font-size:24px;line-height:1.5;letter-spacing:1px;font-weight:500;margin:13px 0 9px;color:#355d4e}.overview p{font-size:11px;line-height:1.9;color:#84988b;margin:0}.overview-stats{display:flex;align-items:center;justify-content:center;gap:45px;z-index:1}.overview-stats>div{display:grid;gap:12px}.overview-stats strong{font-size:52px;font-weight:400;letter-spacing:-3px;color:#416b55;font-variant-numeric:tabular-nums}.overview-stats span{font-size:11px;color:#718a78}.overview-decoration{position:absolute;right:-75px;bottom:-155px;width:370px;height:370px;transform:rotate(-30deg);z-index:0;opacity:.45}.overview-decoration div{position:absolute;border:1px solid #c0d4bd;width:100%;height:100%;border-radius:42px}.overview-decoration div:nth-child(2){transform:scale(.78)}.overview-decoration div:nth-child(3){transform:scale(.56)}.dev-note{font-size:11px;color:#8e7950;background:#faf5e8;border:1px solid #eee4c9;padding:10px 15px;border-radius:6px;margin-top:14px}.application-section{padding-top:31px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-title>div{display:flex;align-items:center;gap:14px}.section-title h2{font-size:18px;margin:0;font-weight:600}.section-title #result-count{color:#9ca6ab;font-size:11px}.search{display:flex;align-items:center;gap:8px;background:white;border:1px solid #e3e8e8;border-radius:6px;height:37px;padding:0 10px;color:#91a099}.search>span{font-size:24px}.search input{border:0;width:158px;font-size:11px;background:none;min-width:0}.search input:focus{box-shadow:none}.search kbd{font-size:9px;color:#a5adb1;border:1px solid #ebeeee;padding:2px 4px;border-radius:3px}.tabs{display:flex;gap:23px;margin-top:21px;border-bottom:1px solid #e4e9ea}.tabs button{color:#94a0a5;font-size:12px;padding:0 1px 13px;position:relative}.tabs button.selected{color:#347565;font-weight:600}.tabs button.selected:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#347565}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;padding-top:22px}.app-card{background:white;border:1px solid #e4e9e9;border-radius:9px;padding:20px 20px 0;transition:transform .2s,border-color .2s;animation:reveal .4s both}.app-card:hover{transform:translateY(-3px);border-color:#a7c5b8}.app-card:nth-child(2n){animation-delay:.04s}.app-card:nth-child(3n){animation-delay:.08s}.card-top{display:flex;justify-content:space-between;align-items:center}.app-mark{width:42px;height:42px;border-radius:10px;background:#edf1f5;color:#6c8297;display:grid;place-items:center;font-size:17px;letter-spacing:-1px}.app-mark.sage{background:#eaf2eb;color:#668c72}.app-mark.sand{background:#f7f0e4;color:#ac9061}.badge{display:inline-block;border:1px solid #e8eaea;color:#99a1a6;border-radius:4px;font-size:9px;padding:3px 6px;white-space:nowrap}.badge.granted{background:#f2f8f3;border-color:#e3efe5;color:#6f947c}.app-category{font-size:9px;letter-spacing:.8px;color:#a0aaa9;margin-top:20px}.app-card h3{font-size:16px;font-weight:600;margin:8px 0}.app-card p{color:#929da3;font-size:11px;margin:0 0 20px;min-height:16px}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0f2f2;min-height:47px;gap:6px}.card-bottom>span{font-size:9px;color:#a4adb0;overflow-wrap:anywhere}.card-bottom a{font-size:21px;color:#5c8c77;display:grid;place-items:center;min-width:38px;height:40px}.card-bottom .lock-label{font-size:10px;white-space:nowrap}.locked{background:#fcfdfd}.main-footer{display:flex;justify-content:space-between;font-size:9px;color:#a6b0b3;letter-spacing:1px;padding:27px 0;margin-top:17px}.primary,.secondary{min-height:42px;border-radius:6px;padding:11px 20px;font-size:12px}.primary{background:#326c5a;color:#fff}.primary:hover{background:#245540}.secondary{border:1px solid #dfe6e3;background:white}.panel{background:white;border:1px solid #e2e8e5;border-radius:10px;padding:26px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:11px;color:#8c9a95;font-weight:500;padding:0 16px 19px}td{padding:19px 16px;border-top:1px solid #edf0ee;font-size:12px}td small{display:block;font-size:10px;color:#9ca6a2;margin-top:5px}.text-button{color:#39745f;font-size:12px;min-height:40px}.empty{padding:60px 25px;text-align:center;color:#8a9791;grid-column:1/-1}.account-form{max-width:520px}.account-form h2{font-size:18px;margin-top:0}label:not(.search):not(.check){display:grid;gap:9px;margin-bottom:19px;font-size:12px;color:#52645b}label input:not([type=checkbox]){border:1px solid #dfe6e2;border-radius:6px;min-height:44px;padding:11px 13px;background:#fff;color:#22352b;width:100%}label small{color:#9ba6a0;font-size:10px}.muted{font-size:12px;color:#909d96;line-height:1.8}.error{font-size:12px;color:#b04d43;min-height:16px;line-height:1.7}.wide{width:100%;display:flex;justify-content:space-between;align-items:center}.login{display:grid;grid-template-columns:1.05fr 1fr;min-height:100dvh}.login-story{background:#e8efe8;padding:47px 11%;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-story:after{content:'';width:560px;height:560px;border:1px solid #cfddcc;position:absolute;right:-280px;bottom:-250px;transform:rotate(-30deg);border-radius:80px;box-shadow:0 0 0 55px #cfddcc33,0 0 0 110px #cfddcc22;pointer-events:none}.login-copy{margin:auto 0;position:relative;z-index:1;padding:75px 0}.login-copy h1{font-size:48px;line-height:1.45;letter-spacing:2px;color:#345a47;margin-top:23px}.login-copy p{font-size:14px;line-height:2;color:#8a9d8b}.orbit{display:flex;gap:22px;margin-top:40px;font-size:10px;color:#72917c}.orbit span:before{content:'·';margin-right:8px}.login footer{font-size:10px;color:#92a08f}.login-form{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:70px 35px;background:#fff}.login-box{max-width:350px;width:100%;margin:auto}.login-box h2{font-size:27px;font-weight:500;margin-bottom:10px}.login-box form{margin-top:38px}.login-help{font-size:11px;color:#a0aaa5;text-align:center;margin-top:25px}.login-form footer{margin-top:55px}.loading{display:grid;place-content:center;min-height:100dvh;text-align:center;letter-spacing:3px;color:#527b65;gap:15px}.loading span{font-size:12px;letter-spacing:1px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:100;background:#254b3d;color:white;padding:14px 23px;border-radius:7px;font-size:13px;transition:transform .2s,opacity .2s}#toast.show{transform:translate(-50%,0);opacity:1}dialog{border:1px solid #d9e3dc;border-radius:12px;width:500px;max-width:calc(100vw - 32px);max-height:90dvh;padding:27px;color:#2d4438}dialog::backdrop{background:#1f332c65;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.modal-heading h2{font-size:18px;margin:0}.close{font-size:25px;min-width:38px;min-height:38px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.grant-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e7ede9;border-bottom:1px solid #e7ede9;margin:18px 0;padding:12px 0;gap:14px}.check{display:flex;align-items:center;gap:8px;font-size:12px;min-height:34px;cursor:pointer}.check input{accent-color:#34745b;width:16px;height:16px}.check small{display:block;font-size:9px;margin-top:5px;overflow-wrap:anywhere}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){.main{padding:0 70px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.overview{min-height:240px}.app-card{padding:25px 25px 0}}@media(max-width:1100px){.layout{grid-template-columns:205px 1fr}.sidebar{padding:30px 13px 20px}.main{padding:0 27px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.heading-index{display:none}.overview{padding:25px}.overview-stats{gap:22px}.overview-stats strong{font-size:44px}.search kbd{display:none}}@media(max-width:700px){.layout{display:block}.sidebar{height:auto;position:static;padding:18px 20px;border-bottom:1px solid #e5ebe6}.sidebar .brand{margin:0;font-size:24px}.brand-name{font-size:17px}.brand small{font-size:8px}.sidebar nav{display:flex;margin-top:20px;gap:5px;overflow:auto}.sidebar nav button{white-space:nowrap;font-size:11px;padding:9px 12px;min-height:38px}.nav-symbol,.workspace-label,.sidebar-note,.profile,.nav-count{display:none}.main{padding:0 20px}.topbar{height:58px;font-size:10px}.top-right{font-size:9px}.date{display:none}.page-heading{padding:28px 0 23px}.page-heading h1{font-size:25px}.page-heading p{font-size:11px;line-height:1.8}.eyebrow{font-size:8px;letter-spacing:1.5px}.overview{grid-template-columns:1fr;gap:23px;padding:24px}.overview h2{font-size:22px}.overview h2 br{display:none}.overview p br{display:none}.overview-stats{justify-content:flex-start;gap:48px}.overview-stats>div{gap:3px}.overview-stats strong{font-size:38px}.overview-stats span{font-size:10px}.dev-note{line-height:1.7}.section-title{align-items:flex-start;flex-direction:column}.search{width:100%}.search input{width:100%}.cards{grid-template-columns:1fr;gap:13px}.app-card{padding:18px 20px 0}.card-top{float:left;margin-right:15px}.card-top .badge{position:absolute;right:20px;top:20px}.app-card{position:relative}.app-category{margin-top:0;padding-top:1px}.app-card h3{margin-top:6px}.app-card p{clear:both;padding-top:14px;margin-bottom:15px}.app-mark{height:43px;width:43px}.main-footer{font-size:8px;letter-spacing:0}.panel{padding:18px}.login{grid-template-columns:1fr}.login-story{padding:26px}.login-copy{padding:40px 0 15px}.login-copy h1{font-size:32px;line-height:1.5}.login-copy h1 br{display:none}.login-copy p,.orbit,.login-story footer{display:none}.login-form{padding:38px 27px}.login-box{max-width:420px}.login-form footer{margin-top:35px}.grant-list{grid-template-columns:1fr}.page-heading:has(#add-user){align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.search input{min-height:0!important;height:auto;border:0!important;padding:0!important;width:158px;box-shadow:none!important}.search kbd{white-space:nowrap;flex-shrink:0}.account-exit{margin-left:10px}@media(max-width:700px){.search input{width:100%}}
.heading-actions,.row-actions{display:flex;gap:10px;align-items:center}.row-actions{gap:4px}.danger-button{color:#ac5a50;font-size:12px;min-height:40px;padding:0 8px}.apps-panel{margin-top:22px;padding:20px 12px}.url-cell{max-width:270px;white-space:normal;overflow-wrap:anywhere;line-height:1.7}.url-cell small{line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid>.check{align-self:center}select{border:1px solid #dfe6e2;border-radius:6px;padding:12px;font:inherit;color:#344e40;background:white;max-width:100%;min-height:44px}.mode-help{background:#f2f6f2;padding:12px;border-radius:5px;font-size:11px}label[hidden]{display:none!important}@media(max-width:700px){.page-heading:has(#new-app){flex-direction:column;align-items:flex-start}.heading-actions{width:100%}.heading-actions button{flex:1}.form-grid{grid-template-columns:1fr}.form-grid>.check{margin-bottom:18px}.apps-panel{padding:14px 8px}.sidebar nav{scrollbar-width:thin}}
a.app-card{display:block;cursor:pointer}.card-bottom>.card-open{font-size:21px;color:#5c8c77;display:grid;place-items:center;min-width:38px;height:40px}.app-card.locked:hover{transform:none;border-color:#e4e9e9}

/* Keep app tiles compact without reducing the full-card click target. */
.cards {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
  padding-top: 16px;
}
.app-card { padding: 15px 16px 0; border-radius: 8px; min-width: 0; }
.app-mark { width: 32px; height: 32px; border-radius: 8px; font-size: 14px; }
.app-category { margin-top: 11px; font-size: 9px; line-height: 14px; }
.app-card h3 { font-size: 14px; line-height: 21px; margin: 5px 0; }
.app-card p {
  font-size: 11px;
  line-height: 16px;
  min-height: 16px;
  margin: 0 0 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-bottom { min-height: 35px; }
.card-bottom > .card-open { height: 34px; min-width: 28px; font-size: 19px; }
@media (max-width: 700px) {
  .cards { grid-template-columns: 1fr; gap: 10px; }
  .card-top { margin-right: 11px; }
  .card-top .badge { top: 15px; right: 16px; }
  .app-category { margin-top: 0; }
  .app-card p { padding-top: 10px; }
}
