
:root{--green:#247651;--ink:#28382e;--muted:#768178;--border:#e8ece9;--white:#fff}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:14px/1.6 "Segoe UI","Microsoft YaHei","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button,a,select{cursor:pointer}button{border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button,a,input,select,textarea{transition:color .15s,background .15s,border-color .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #247651;outline-offset:4px}[hidden]{display:none!important}svg{width:18px;height:18px;display:block;flex-shrink:0}.site-header{border-bottom:1px solid var(--border)}.header-inner{max-width:1160px;padding:0 24px;margin:auto;min-height:80px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600}.brand-logo{width:36px;height:32px;object-fit:contain}.header-inner nav{display:flex;gap:30px}.header-link{font-size:13px;color:#7b837d;min-height:44px;padding:0 2px}.header-link:hover,.header-link.active{color:var(--green)}main{max-width:1160px;padding:47px 24px 0;margin:auto}.section-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.section-top h1{font-size:27px;font-weight:600;letter-spacing:-.5px}.section-top p{color:#7a857e;font-size:13px;margin-top:7px}.section-actions{display:flex;gap:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 13px;font-size:12px;border-radius:5px}.button svg{width:15px;height:15px}.primary{background:var(--green);color:white;border:1px solid var(--green)}.primary:hover{background:#1b603f}.secondary{background:white;border:1px solid #dfe5e0;color:#627467}.secondary:hover{background:#f4f7f4}.filterbar{display:flex;gap:12px}.search-box{display:flex;align-items:center;gap:11px;min-height:46px;border:1px solid #e1e6e2;border-radius:6px;padding:0 15px;flex:1;background:#fafbf9;color:#8c978f}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:13px;height:44px;color:var(--ink)}.search-box input:focus-visible{outline:0}.search-box:focus-within{border-color:#8caf99}.search-box input::placeholder{color:#939c95}kbd{font-family:inherit;font-size:11px;color:#98a098;border:1px solid #e2e7e3;border-radius:3px;padding:0 5px}.filterbar select{width:180px;border:1px solid #e1e6e2;border-radius:6px;padding:0 12px;background:white;color:#737f76;font-size:12px}.category-tabs{display:flex;gap:27px;border-bottom:1px solid var(--border);margin:23px 0 25px;overflow:auto;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tab{white-space:nowrap;padding:10px 0 13px;font-size:12px;color:#7d877f;border-bottom:2px solid transparent}.category-tab:hover{color:var(--green)}.category-tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid #e6ebe7;border-radius:7px;padding:21px 22px 16px;background:#fff;transition:border-color .15s}.project-card:hover{border-color:#b3c7b9}.card-top{display:flex;position:absolute;left:22px;right:18px;top:19px;align-items:center;justify-content:space-between}.app-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;color:#55866a;background:#f0f5f1;flex-shrink:0}.app-icon svg{width:18px;height:18px}.card-badges{display:flex;align-items:center}.status-badge{display:none}.favorite-btn{width:32px;height:32px;display:grid;place-items:center;color:#a7b0a8;border-radius:5px}.favorite-btn:hover{background:#f7f8f4;color:#8d9d66}.favorite-btn svg{width:16px;height:16px}.favorite-btn.is-favorite{color:#a18a3b}.favorite-btn.is-favorite svg{fill:#eadba5}.card-name{display:block;max-width:calc(100% - 42px);text-align:left;padding:3px 0 0 44px;min-height:32px;font-size:14px;font-weight:600;line-height:1.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-name:hover{color:var(--green)}.card-description{font-size:12px;line-height:1.9;color:#7c877f;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:46px;margin:19px 0 18px}.card-tags{margin-top:auto;min-height:20px}.tag{font-size:11px;color:#8b948c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.category-tag,.card-meta{display:none}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.card-open{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green);min-height:28px}.card-open svg{width:12px;height:12px}.card-open:hover{text-decoration:underline}.card-open.disabled{color:#929990}.card-tools{display:none;gap:13px}.managing .card-tools{display:flex}.card-edit{display:flex;gap:5px;align-items:center;font-size:11px;color:#7b8d7e;min-height:32px}.card-edit svg{width:13px;height:13px}.delete-card{color:#ac766f}.catalog-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:15px;margin-top:32px;padding:20px 0 30px;font-size:11px;color:#939d95}.empty-state{text-align:center;padding:65px 15px;background:#fafbf9;border-radius:7px}.empty-state>span{display:inline-block;color:#9ab29f}.empty-state h3{font-size:17px;font-weight:500;margin:15px 0 7px}.empty-state p{font-size:12px;color:#8a958d;margin-bottom:18px}
@media(max-width:900px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner{min-height:72px}.header-inner nav{gap:22px}main{padding-top:33px}.category-tabs{gap:23px}.section-top{align-items:flex-start}.section-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:560px){.header-inner{padding:0 20px;min-height:68px}.brand{font-size:15px;gap:8px}.brand-logo{width:29px;height:27px}.header-inner nav{gap:14px}.header-link{font-size:11px}main{padding:28px 20px 0}.section-top{margin-bottom:21px}.section-top h1{font-size:24px}.section-top p{font-size:12px;margin-top:5px}.filterbar{gap:8px}.filterbar>select{width:112px;min-width:0;padding:0 7px;font-size:11px}.search-box{padding:0 11px;min-width:0}.search-box input{font-size:12px}.search-box kbd{display:none}.category-tabs{gap:24px;margin:17px 0 20px}.project-grid{grid-template-columns:1fr;gap:12px}.project-card{padding:18px 19px 13px}.card-top{left:19px;top:16px;right:16px}.card-name{font-size:14px}.card-description{margin-top:16px;margin-bottom:12px;height:auto;max-height:46px}.card-footer{margin-top:5px}.catalog-footer{font-size:10px;flex-wrap:wrap;margin-top:24px;padding-top:17px}.section-actions .button{font-size:10px;padding:5px 9px}.managing .section-top{flex-wrap:wrap;gap:14px}.managing .filterbar{flex-wrap:wrap}.managing .search-box{flex-basis:100%}.managing .filterbar>select{flex:1;min-height:38px}.form-row{flex-wrap:wrap}.form-row label{flex-basis:40%}#toast{left:50%!important;width:max-content;max-width:90vw}.detail-heading h2{font-size:17px}.detail-body{padding:20px}.dialog-head{padding:20px}.form-fields{padding:20px}.dialog-footer{padding:15px 20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
dialog{border:1px solid #dce7df;border-radius:15px;padding:0;width:min(570px,calc(100% - 32px));max-height:90vh;color:var(--ink);box-shadow:0 24px 100px #142e3426}dialog::backdrop{background:#17382d60;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 26px 18px;border-bottom:1px solid var(--border)}.dialog-head h2{font-size:20px}.dialog-head p{font-size:12px;color:var(--muted);margin-top:4px}.icon-button{width:32px;height:32px;display:grid;place-items:center;border-radius:5px;color:#86938b}.icon-button:hover{background:#f0f5f1}.form-fields{padding:21px 26px}.form-fields label{display:block;font-size:12px;color:#576c60;margin-bottom:15px}.form-fields input,.form-fields textarea,.form-fields select{width:100%;display:block;margin-top:6px;border:1px solid #dce5de;border-radius:6px;padding:9px 11px;background:#fff;color:var(--ink);font-size:12px}.form-fields textarea{resize:vertical}.form-fields label>small{display:block;color:#92a096;font-size:10px;margin-top:5px}.required{color:#a86755}.form-row{display:flex;gap:14px}.form-row label{flex:1;min-width:0}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--border);padding:16px 26px;background:#fafcfb}.form-error{font-size:12px;color:#ad5447}.form-error:empty{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,10px);background:#214f3a;color:#fff;border-radius:8px;padding:12px 22px;z-index:20;font-size:12px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.detail-body{padding:25px 26px}.detail-heading{display:flex;align-items:center;gap:14px}.detail-heading h2{font-size:20px;line-height:1.5}.detail-description{white-space:pre-wrap;color:#6f8275;font-size:13px;line-height:2;margin:23px 0}.detail-rows{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:12px}.detail-rows dt{font-size:10px;color:#8b9a90}.detail-rows dd{margin:3px 0}.detail-link{background:#f3f7f4;border-radius:6px;padding:12px;margin-top:20px;word-break:break-all;font-size:11px;color:#64866e}.detail-actions{display:flex;gap:10px;align-items:center}.detail-actions .danger-text{color:#b16c61;margin-right:auto;font-size:12px}.danger{background:#b95548;color:#fff;border:1px solid #b95548}.danger:hover{background:#9e443a}.confirm-body{padding:30px;text-align:center}.delete-symbol{display:inline-grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#fbefec;color:#b65f51;margin-bottom:14px}.confirm-body h2{font-size:19px}.confirm-body p{font-size:12px;color:var(--muted);margin:10px 0 25px}.confirm-actions{display:flex;gap:10px;justify-content:center}#confirm-dialog{max-width:400px}.import-body{padding:24px}.upload-zone{display:flex;flex-direction:column;gap:9px;align-items:center;text-align:center;background:#f6faf7;border:1px dashed #afcbb8;border-radius:9px;padding:25px 15px;font-size:12px;color:#6e8575;cursor:pointer}.upload-zone svg{width:27px;height:27px}.upload-zone>span{font-size:11px}.upload-zone input{font-size:11px;max-width:100%;margin-top:8px}.import-body>p{font-size:11px;color:#88998c;margin:16px 0}.text-button{color:var(--green);font-size:12px;padding:0}.text-button:hover{text-decoration:underline}#import-preview{padding:13px;background:#edf6ef;font-size:12px;border-radius:6px;margin-top:15px}

/* Restrained flat panels retain a clear visual hierarchy. */
body{background:#f6f8f7}
.site-header{background:#fff}
.header-link{position:relative}
.header-link.active:after{content:"";position:absolute;height:2px;background:var(--green);bottom:0;left:0;right:0}
main{padding-top:35px}
.section-top{margin-bottom:24px}
.section-top h1{font-size:26px}
.search-box{background:#fff;border-radius:6px}
.filterbar select{border-radius:6px}
.category-tabs{gap:8px;border:0;margin:21px 0 23px;align-items:center}
.category-tab{border:0;padding:7px 15px;min-height:36px;border-radius:5px;color:#6c7d71}
.category-tab:hover{background:#edf2ee}
.category-tab.active{background:#e4eee7;color:#226c49}
.project-grid{gap:18px}
.project-card{background:#fff;border:1px solid #e2e8e3;border-radius:8px;padding:23px 22px 14px;min-height:224px}
.project-card:hover{border-color:#acc4b3;background:#fefefe}
.card-top{left:22px;right:17px;top:20px}
.app-icon{width:38px;height:38px;border-radius:8px;background:var(--app-bg,#edf3ef);color:var(--app-color,#55866a)}
.app-icon svg{width:21px;height:21px}
.card-name{padding:6px 0 0 51px;min-height:38px;font-size:14px;max-width:calc(100% - 26px);font-weight:600}
.card-description{margin:18px 0 18px;font-size:12px;line-height:1.9;color:#718075;height:46px}
.card-tags{display:flex;align-items:center;gap:12px;justify-content:space-between;min-width:0;margin-top:auto}
.tag{color:#849087;font-size:10px;min-width:0}
.card-owner{font-size:10px;color:#849087;white-space:nowrap;flex-shrink:0}
.card-footer{border-top:1px solid #eff2ef;margin-top:15px;padding-top:10px;min-height:40px}
.card-open{font-size:11px;min-height:28px;gap:7px}
.favorite-btn{border-radius:4px}
.catalog-footer{border:0;margin-top:8px;color:#8b978f}
.dialog-head,.dialog-footer{background:white}
dialog{border-radius:8px}
@media(max-width:900px){.project-grid{gap:16px}.category-tabs{gap:5px}.category-tab{padding-left:12px;padding-right:12px}}
@media(max-width:560px){main{padding-top:26px}.category-tabs{gap:4px;margin:18px 0}.category-tab{padding:7px 12px;min-height:34px}.project-grid{gap:13px}.project-card{padding:21px 19px 13px;min-height:214px}.card-top{left:19px;right:14px;top:18px}.card-name{padding-left:50px;padding-top:5px;font-size:14px}.card-description{margin:16px 0;font-size:12px;height:46px}.card-footer{margin-top:14px}.catalog-footer{margin-top:8px}}

.card-indicators{display:flex;align-items:center;gap:5px}
.access-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:4px;white-space:nowrap;font-size:10px;line-height:1.5}
.access-badge svg{width:11px;height:11px}
.internal-network{background:#f0f4f1;color:#647c6b}
.external-network{background:#edf3fb;color:#517da6}
.card-name{max-width:calc(100% - 84px)}
@media(max-width:560px){.card-name{max-width:calc(100% - 79px)}.card-indicators{gap:2px}.access-badge{font-size:9px;padding:3px 5px}}

button.card-owner{padding:3px 0 3px 5px;color:#41795a;font-size:10px;min-height:28px;border-radius:3px}
button.card-owner>span{color:#859188;margin-right:4px}
button.card-owner:hover{color:#205938;text-decoration:underline}
.manager-detail-link{padding:0;color:var(--green);font-size:12px;text-decoration:underline;text-underline-offset:3px}
.manager-label{margin:0 0 4px!important;font-size:11px!important;color:#7b8c7e}
.manager-projects{padding:5px 24px 17px}
.manager-project{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;padding:15px 0;border-bottom:1px solid #edf1ed}
.manager-project:last-child{border:0}
.manager-project:hover strong{color:var(--green)}
.manager-project strong{display:block;font-size:13px;font-weight:500}
.manager-project small{display:block;color:#829087;font-size:11px;margin-top:5px}
.manager-project>svg{width:15px;height:15px;color:#8da695;flex-shrink:0}

/* Category sections follow the supplied four-column sketch. */
.header-inner,main{max-width:1320px}
.project-grid{display:block}
.application-group{margin:0 0 34px}
.group-title{display:flex;align-items:center;font-size:17px;line-height:1.6;font-weight:600;color:#344b3c;margin:0 0 15px;padding-left:11px;border-left:3px solid #6e9e7c}
.group-title>span{font-size:13px;font-weight:400;color:#8b968e;margin-left:3px}
.group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.project-card{min-height:238px;padding:20px 18px 12px}
.card-top{top:17px;left:18px;right:13px}
.app-icon{width:34px;height:34px;border-radius:6px}
.app-icon svg{width:19px;height:19px}
.card-name{padding:0;max-width:100%;width:100%;min-height:25px;margin-top:44px;font-size:14px}
.card-description{margin:9px 0 14px;font-size:12px;height:46px}
.card-tags{gap:8px}
button.card-owner>span{font-size:9px;margin-right:2px}
.card-footer{margin-top:10px;padding-top:8px}
.category-tabs{margin-bottom:27px}
@media(max-width:1100px){.group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.application-group{margin-bottom:29px}}
@media(max-width:560px){.group-grid{grid-template-columns:1fr;gap:12px}.group-title{font-size:16px;margin-bottom:13px}.project-card{min-height:222px;padding:19px 18px 12px}.card-top{left:18px;right:13px;top:15px}.card-name{margin-top:41px;padding:0;max-width:100%}.card-description{margin:8px 0 13px}.category-tabs{margin-bottom:24px}.application-group{margin-bottom:28px}}

.grouping-toolbar{display:flex;align-items:center;gap:15px;margin-top:23px}
.grouping-toolbar>span{font-size:12px;color:#7a897e}
.grouping-switch{display:inline-flex;gap:3px;border:1px solid #dfe7e1;padding:3px;border-radius:6px;background:#edf2ee}
.grouping-switch button{padding:6px 17px;min-height:33px;border-radius:4px;color:#6e8073;font-size:12px}
.grouping-switch button:hover{color:#247651}
.grouping-switch button.active{background:#fff;color:#247651;font-weight:600}
.category-tabs{margin-top:12px;margin-bottom:24px}
@media(max-width:560px){.grouping-toolbar{gap:10px;margin-top:18px}.grouping-toolbar>span{font-size:11px}.grouping-switch button{padding:6px 12px;font-size:11px}.category-tabs{margin-top:10px;margin-bottom:20px}}

.category-tab{display:inline-flex;align-items:center;gap:7px}
.tab-count{font-size:10px;line-height:1.5;font-weight:400;color:#87958a;font-variant-numeric:tabular-nums}
.category-tab.active .tab-count{color:#397b52}
.favorite-count{margin-left:4px;font-size:11px;font-variant-numeric:tabular-nums;color:#819186}.header-link.active .favorite-count{color:var(--green)}

/* Wrap all group filters so long department lists remain visible. */
.category-tabs{flex-wrap:wrap;overflow:visible;row-gap:8px}.category-tab{max-width:100%;white-space:normal;text-align:left;overflow-wrap:anywhere}.tab-count{flex-shrink:0}

/* Compact counters: a distinct, aligned data slot within each filter. */
.category-tabs{gap:9px;margin-top:15px;margin-bottom:26px}
.category-tab{gap:13px;padding:7px 8px 7px 13px;min-height:38px;border:1px solid #e1e8e2;background:#fff;border-radius:6px;color:#687b6d;font-size:12px;justify-content:space-between}
.category-tab:hover{border-color:#adc9b7;background:#f9fcfa}
.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 6px;border-radius:4px;background:#eff3f0;color:#718878;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;flex-shrink:0}
.category-tab.active{background:#e9f3ed;border-color:#b9d7c4;color:#246b46;font-weight:600}
.category-tab.active .tab-count{background:#28754f;color:#fff}
.favorite-count{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:19px;padding:0 5px;margin-left:5px;border-radius:4px;background:#edf3ef;color:#577561;font-size:10px;font-weight:600;line-height:1}
.header-link.active .favorite-count{background:#28754f;color:white}
.group-title>span{display:inline-flex;align-items:center;justify-content:center;font-size:11px;min-width:25px;height:22px;padding:0 7px;margin-left:9px;border-radius:4px;background:#e8efea;color:#60816b;font-weight:500}
@media(max-width:560px){.category-tabs{gap:7px}.category-tab{gap:9px;padding:6px 7px 6px 10px;min-height:35px;font-size:11px}.tab-count{min-width:23px;height:22px;font-size:10px}.favorite-count{min-width:18px;height:17px;margin-left:2px;font-size:9px}}

/* A dense toolbar and compact cards keep projects above the fold. */
.header-inner{min-height:64px}
main{padding-top:22px}
.section-top{margin-bottom:15px}
.section-top>div:first-child{display:flex;align-items:baseline;gap:16px}
.section-top h1{font-size:23px}
.section-top p{margin:0;font-size:12px}
.catalog-controls{display:flex;align-items:center;gap:16px}
.catalog-controls .filterbar{flex:1;min-width:0;gap:9px}
.search-box{min-height:38px;padding:0 12px}
.search-box input{height:36px;font-size:12px}
.filterbar>select{width:155px;font-size:11px}
.grouping-toolbar{margin:0;gap:9px;flex-shrink:0}
.grouping-toolbar>span{font-size:11px}
.grouping-switch{padding:2px}
.grouping-switch button{min-height:30px;padding:4px 12px;font-size:11px}
.category-tabs{margin:12px 0 19px;gap:7px}
.category-tab{min-height:30px;padding:4px 6px 4px 10px;gap:9px;font-size:11px}
.tab-count{height:20px;min-width:23px;font-size:10px}
.group-title{font-size:15px;margin-bottom:10px}
.group-title>span{height:20px;font-size:10px}
.application-group{margin-bottom:24px}
.group-grid{gap:12px}
.project-card{min-height:174px;padding:12px 14px 10px}
.card-top{left:14px;right:10px;top:10px}
.card-top .app-icon{width:25px;height:25px;border-radius:5px}
.card-top .app-icon svg{width:16px;height:16px}
.favorite-btn{height:26px;width:26px}
.card-name{margin-top:29px;min-height:21px;font-size:13px;line-height:1.6}
.card-description{height:34px;margin:5px 0 8px;font-size:11px;line-height:1.55}
.card-tags{padding-right:76px;align-items:flex-start;flex-direction:column;justify-content:flex-end;gap:0;min-height:33px}
.tag{font-size:10px;max-width:100%}
button.card-owner{min-height:18px;padding:0;font-size:10px;line-height:1.7}
.card-footer{position:absolute;right:14px;bottom:10px;min-height:26px;margin:0;padding:0;border:0}
.card-open{font-size:10px;min-height:26px}
.managing .card-footer{position:static;min-height:29px;margin-top:7px;padding-top:5px;border-top:1px solid #edf1ed}
.managing .card-tags{padding-right:0;flex-direction:row;align-items:center;min-height:22px}
@media(max-width:1000px){.catalog-controls{flex-wrap:wrap;gap:9px}.catalog-controls .filterbar{flex-basis:100%}.grouping-toolbar{margin:0}.category-tabs{margin-top:10px}}
@media(max-width:560px){.header-inner{min-height:60px}main{padding-top:18px}.section-top>div:first-child{display:block}.section-top h1{font-size:21px}.section-top p{font-size:11px;margin-top:3px}.filterbar>select{width:113px}.category-tabs{margin-bottom:16px;gap:6px}.category-tab{padding:4px 6px 4px 9px;min-height:29px}.group-grid{gap:10px}.project-card{min-height:170px;padding:12px 14px 10px}.card-top{left:14px;right:10px;top:9px}.card-name{margin-top:27px;font-size:13px}.card-description{margin:5px 0 8px;height:34px;font-size:11px}.card-footer{right:14px;bottom:9px}.application-group{margin-bottom:21px}}

/* A brighter palette: sky blue, warm white, and small sunny accents. */
:root{--green:#237bb4;--ink:#2e4358;--muted:#758798;--border:#e3ebf3;--white:#fff}
body{background:#f5f9ff;color:var(--ink)}
.site-header{background:#fff;border-color:#e5edf5}
.brand{color:#2c455f}
.header-link{color:#75879a}
.header-link:hover,.header-link.active{color:#237bb4}
.header-link.active:after{background:#3b9bda}
.section-top h1{color:#2b465f}
.section-top p,.grouping-toolbar>span{color:#7b8da0}
.search-box{background:#fff;border-color:#dce8f3;color:#80a0ba}
.search-box:focus-within{border-color:#7fbde7;background:#fff}
.search-box input::placeholder{color:#90a3b4}
.filterbar>select{border-color:#dce8f3;color:#70879a}
kbd{border-color:#e3ecf4;color:#91a8bb}
.grouping-switch{background:#eaf2fb;border-color:#dce8f5}
.grouping-switch button{color:#7088a0}
.grouping-switch button:hover{color:#237bb4}
.grouping-switch button.active{background:#fff;color:#237bb4}
.category-tab{border-color:#e0eaf5;color:#68829c;background:#fff}
.category-tab:hover{border-color:#9ecbec;background:#f5fbff}
.category-tab.active{background:#e6f4ff;border-color:#acd6f3;color:#237bb4}
.tab-count{background:#eff5fb;color:#7994ad}
.category-tab.active .tab-count{background:#328dc9;color:#fff}
.favorite-count{background:#fff2d5;color:#a07829}
.header-link.active .favorite-count{background:#ffebbb;color:#91651b}
.group-title{color:#3b5975;border-left-color:#6cb4e5}
.group-title>span{background:#e6f0fc;color:#6294bd}
.project-card{background:#fff;border-color:#e1ebf5}
.project-card:hover{background:#fff;border-color:#9fc9e9}
.card-name{color:#354f69}
.card-name:hover{color:#237bb4}
.card-description{color:#7c8d9b}
.tag{color:#8b9aaa}
button.card-owner{color:#4886b1}
button.card-owner>span{color:#91a0ae}
button.card-owner:hover{color:#237bb4}
.card-open{color:#2985bc}
.card-open.disabled{color:#98a5b0}
.card-edit{color:#668fae}
.delete-card{color:#cc8d80}
.internal-network{background:#eaf6f3;color:#609989}
.external-network{background:#fff3e3;color:#b28a52}
.favorite-btn{color:#b3c2cf}
.favorite-btn:hover{background:#fff8e7;color:#c59d42}
.favorite-btn.is-favorite{color:#c59d42}
.favorite-btn.is-favorite svg{fill:#ffe3a0}
.catalog-footer{color:#93a4b4}
.primary{background:#237bb4;border-color:#237bb4}
.primary:hover{background:#1c6b9e;border-color:#1c6b9e}
.secondary{border-color:#dce8f3;color:#6886a0}
.secondary:hover{background:#eff7ff}
.card-footer,.manager-project,.dialog-head,.dialog-footer{border-color:#e8eff6}
.detail-description{color:#71889d}
.detail-link{background:#f0f7ff;color:#638aa9}
.manager-project small{color:#8c9eaf}
.manager-project>svg{color:#8ab3d3}
.upload-zone{background:#f5faff;border-color:#adcee7;color:#6c92b0}
#import-preview{background:#eaf6ff;color:#4f84ab}
#toast{background:#2b82b8}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#5ea9da}

/* Apply color to the actual controls and project hierarchy, not only the canvas. */
:root{--green:#327bd8;--ink:#30425d}
body{background:#f7f9fd}
.section-top h1{color:#304a72}
.header-link.active{color:#357cd5}
.header-link.active:after{height:3px;background:#5a9aee;border-radius:3px}
.category-tab{border-color:#e4eaf5;color:#657b99}
.category-tab.active{background:#397fd5;border-color:#397fd5;color:white}
.category-tab.active .tab-count{background:#fff;color:#397fd5}
.category-tab[data-category="智能办公"]:not(.active){background:#edf5ff;border-color:#d7e8ff;color:#4a80ba}
.category-tab[data-category="业务提效"]:not(.active){background:#eaf8f2;border-color:#cdeedf;color:#3a9174}
.category-tab[data-category="知识助手"]:not(.active){background:#f4eeff;border-color:#e5d9ff;color:#8a68ba}
.category-tab[data-category="创意生成"]:not(.active){background:#fff5df;border-color:#f8e5b4;color:#ae853a}
.category-tab[data-category="数据洞察"]:not(.active){background:#e8f7ff;border-color:#cdeaf7;color:#438caa}
.category-tab[data-category="风险合规"]:not(.active){background:#fff0ea;border-color:#f7dace;color:#ba7a66}
.tab-count{background:#ffffffb3;color:inherit}
.grouping-switch{background:#eaf0fc;border-color:#dbe5f8}
.grouping-switch button.active{background:#fff;color:#397fd5}
.project-card{border-color:#e1e8f3;border-top:3px solid var(--app-color,#7aabe5)}
.project-card:hover{border-color:var(--app-color,#7aabe5)}
.card-top{top:8px}
.card-top .app-icon{background:var(--app-bg);color:var(--app-color);width:27px;height:27px}
.card-name{color:#354e71}
.card-name:hover{color:#327bd8}
.card-description{color:#72849a}
.card-open{background:#edf4ff;color:#397fd5;padding:4px 9px;border-radius:4px;min-height:25px;font-size:10px}
.card-open:hover{background:#397fd5;color:#fff;text-decoration:none}
.card-open.disabled{background:#f2f4f8;color:#9aa5b5}
.group-title{border-left:0;padding-left:0;gap:0;color:#375784}
.group-title:before{content:"";display:block;width:7px;height:7px;background:#76a5e1;border-radius:2px;margin-right:9px;flex-shrink:0}
.group-title>span{background:#e7eefb;color:#6c8db9}
.application-group[data-group-name="智能办公"] .group-title{color:#4a80ba}
.application-group[data-group-name="业务提效"] .group-title{color:#3a9174}
.application-group[data-group-name="知识助手"] .group-title{color:#8a68ba}
.application-group[data-group-name="创意生成"] .group-title{color:#ae853a}
.application-group[data-group-name="数据洞察"] .group-title{color:#438caa}
.application-group[data-group-name="风险合规"] .group-title{color:#ba7a66}
.application-group[data-group-name="业务提效"] .group-title:before{background:#73bd9f}
.application-group[data-group-name="知识助手"] .group-title:before{background:#b193dc}
.application-group[data-group-name="创意生成"] .group-title:before{background:#e2ba62}
.application-group[data-group-name="数据洞察"] .group-title:before{background:#7abbd3}
.application-group[data-group-name="风险合规"] .group-title:before{background:#d99d86}
.internal-network{background:#e5f6ed;color:#459775}
.external-network{background:#fff0d9;color:#b78634}
.favorite-btn:hover{background:#fff4d8;color:#bf9639}
.favorite-count{background:#fff0c4;color:#af8121}
.header-link.active .favorite-count{background:#fff0c4;color:#af8121}
button.card-owner{color:#6e85bb}
button.card-owner:hover{color:#397fd5}
.primary{background:#397fd5;border-color:#397fd5}
.primary:hover{background:#2869bd;border-color:#2869bd}

#management-dialog{max-width:400px}
body:not(.managing) .detail-actions .danger-text,body:not(.managing) .detail-actions [data-action="edit"]{display:none}
body{background:#fff}

/* Strong section labels make the grouped directory easy to scan. */
.application-group{--group-accent:#387fc7;--group-tint:#edf5ff}
.application-group[data-group-name="业务提效"]{--group-accent:#26866a;--group-tint:#eaf7f1}
.application-group[data-group-name="知识助手"]{--group-accent:#8359b5;--group-tint:#f3edfc}
.application-group[data-group-name="创意生成"]{--group-accent:#a97c25;--group-tint:#fff5df}
.application-group[data-group-name="数据洞察"]{--group-accent:#267f9e;--group-tint:#eaf7fc}
.application-group[data-group-name="风险合规"]{--group-accent:#b56650;--group-tint:#fff0e9}
.application-group .group-title{width:fit-content;max-width:100%;padding:7px 12px 7px 0;margin-bottom:12px;gap:0;font-size:18px;line-height:1.5;font-weight:700;color:var(--group-accent);background:transparent}
.application-group .group-title:before{width:4px;height:24px;margin-right:10px;border-radius:2px;background:var(--group-accent)}
.application-group .group-title>span{height:25px;min-width:28px;padding:0 8px;margin-left:12px;border-radius:5px;font-size:12px;font-weight:700;background:var(--group-accent);color:#fff}
@media(max-width:560px){.application-group .group-title{font-size:17px;padding-top:5px;padding-bottom:5px;margin-bottom:10px}.application-group .group-title:before{height:22px}.application-group .group-title>span{height:23px;font-size:11px}}

/* Dialogs share a softer frame; manager profiles keep their header in view. */
body:has(dialog[open]){overflow:hidden}
dialog{border:1px solid #e5ebf4;border-radius:16px;box-shadow:0 22px 85px #233c6530;max-height:88vh}
dialog::backdrop{background:#283b5b55;backdrop-filter:blur(5px)}
.dialog-head{padding:23px 25px;border-color:#edf1f7}
.dialog-head h2{font-size:19px;color:#304967}
.dialog-head p{color:#8a99ac;font-size:12px}
.icon-button{background:#f4f7fb;border-radius:50%;color:#8293a9;width:32px;height:32px}
.icon-button:hover{background:#e6effb;color:#397fd5}
.dialog-footer{background:#fafcff;border-color:#edf1f7}
.form-fields input,.form-fields textarea,.form-fields select{border-radius:7px;border-color:#dfe7f2}
#manager-dialog{width:min(760px,calc(100% - 32px));overflow:hidden}
#manager-content{display:flex;flex-direction:column;max-height:86vh}
.manager-profile{display:flex;align-items:center;gap:16px;padding:27px 28px 24px;background:#fafcff;border-bottom:1px solid #edf1f7;flex-shrink:0}
.manager-avatar{display:grid;place-items:center;width:64px;height:64px;background:#e9effd;border:1px solid #dce6fc;border-radius:20px;color:#6084c0;font-size:21px;font-weight:600;flex-shrink:0}
.manager-identity{min-width:0}
.manager-role{font-size:11px;color:#8193ad}
.manager-identity h2{font-size:24px;font-weight:650;line-height:1.5;color:#304969;margin:2px 0 5px}
.manager-identity p{font-size:11px;color:#8b9aaf}
.manager-identity p strong{color:#6484b0;font-weight:600}
.manager-dot{margin:0 9px;color:#b9c6d8}
.manager-close{align-self:flex-start;margin-left:auto}
.manager-list-heading{display:flex;align-items:center;justify-content:space-between;padding:19px 28px 12px;flex-shrink:0}
.manager-list-heading h3{font-size:13px;color:#536c8b;font-weight:600}
.manager-list-heading>span{font-size:10px;color:#9aa9bb}
.manager-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 24px 18px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d6e0ef transparent;min-height:0}
.manager-project{margin:0;border:1px solid #e8edf5!important;border-radius:9px;background:#fff;padding:13px;gap:10px;align-items:flex-start;min-width:0;transition:background .15s,border-color .15s}
.manager-project:hover{background:#f5f9ff;border-color:#c5d9f3!important}
.manager-app-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;flex-shrink:0;margin-top:1px}
.manager-app-icon svg{width:17px;height:17px}
.manager-project-info{flex:1;min-width:0}
.manager-project strong{font-size:12px;line-height:1.7;color:#425d7d;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.manager-project small{font-size:10px;color:#91a0b4;margin-top:4px;line-height:1.6;overflow-wrap:anywhere}
.manager-project-meta{display:flex;align-items:center;gap:7px;margin-top:8px}
.manager-status{font-size:9px;color:#7aab96}
.manager-project-meta .access-badge{font-size:9px;padding:1px 5px}
.manager-project-arrow{align-self:center;color:#9fb6d2}
.manager-project-arrow svg{width:13px;height:13px}
.manager-bottom{border-top:1px solid #edf1f7;background:#fafcff;display:flex;align-items:center;justify-content:space-between;padding:12px 27px;flex-shrink:0}
.manager-bottom>span{font-size:10px;color:#a0aec0}
.manager-bottom .button{min-height:31px;padding:5px 17px;font-size:11px;border-radius:6px}
@media(max-width:600px){.manager-profile{padding:22px 20px;gap:12px}.manager-avatar{width:52px;height:52px;border-radius:16px;font-size:18px}.manager-identity h2{font-size:21px}.manager-projects{grid-template-columns:1fr;padding:0 17px 15px;gap:8px}.manager-list-heading{padding:15px 20px 11px}.manager-project{padding:12px}.manager-bottom{padding:11px 20px}.manager-project strong{-webkit-line-clamp:2}.manager-project-meta{margin-top:6px}}
.project-card{cursor:pointer}.project-card:hover .card-name{color:#327bd8}

/* The application launch is the main action in project details. */
#detail-dialog{overflow:hidden}
#detail-content{max-height:86vh;display:flex;flex-direction:column}
#detail-content>.dialog-head{flex-shrink:0}
#detail-content>.detail-body{overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d6e0ef transparent}
#detail-content>.detail-actions{flex-shrink:0;padding:17px 25px;background:#f5f9ff;border-top:1px solid #e0eafa;gap:12px}
.detail-actions .detail-launch{flex:1;min-height:48px;border-radius:9px;font-size:16px;font-weight:600;gap:10px;background:#347fd7;border-color:#347fd7;color:#fff;box-shadow:0 4px 12px #347fd71f}
.detail-actions .detail-launch:hover{background:#246bc1;border-color:#246bc1}
.detail-actions .detail-launch svg{width:19px;height:19px}
.managing .detail-actions .detail-launch{flex:1;min-width:145px}
@media(max-width:560px){#detail-content>.detail-actions{padding:15px 20px;flex-wrap:wrap}.detail-actions .detail-launch{min-height:46px;font-size:15px}.managing .detail-actions .detail-launch{flex-basis:100%}}

.group-filters{display:flex;align-items:flex-start;gap:16px;margin:12px 0 19px}
.group-filters .category-tabs{order:0;flex:1;min-width:0;margin:0}
.catalog-sort{order:1;display:flex;align-items:center;gap:6px;flex-shrink:0;min-height:30px}
.catalog-sort label{color:#8798ac;font-size:10px}
.catalog-sort select{background:#fff;border:1px solid #e0e8f3;border-radius:5px;padding:5px 7px;font-size:11px;color:#6583a6;min-height:30px}
@media(max-width:560px){.group-filters{flex-wrap:wrap;gap:9px;margin:11px 0 16px}.catalog-sort{order:0;width:100%;justify-content:flex-end}.group-filters .category-tabs{order:1;flex-basis:100%}}

.sort-label{color:#8798ac;font-size:10px;margin-right:3px}
.sort-icons{display:flex;align-items:center;gap:3px;border:1px solid #e0e8f3;border-radius:6px;padding:3px;background:#f4f7fc}
.sort-icon{width:30px;height:28px;display:grid;place-items:center;border-radius:4px;color:#8a9cb3}
.sort-icon svg{width:18px;height:18px}
.sort-icon:hover{color:#397fd5;background:#eaf2ff}
.sort-icon.active{color:#fff;background:#397fd5}

/* Give the primary launch action a clear visual anchor on each card. */
.card-footer a.card-open{background:#347fd7;border:1px solid #347fd7;color:#fff;padding:5px 11px;min-height:31px;border-radius:6px;font-size:11px;font-weight:600;gap:7px;box-shadow:0 2px 6px #347fd71a}
.card-footer a.card-open svg{width:13px;height:13px}
.card-footer a.card-open:hover{background:#2269bd;border-color:#2269bd;color:#fff;box-shadow:0 3px 8px #347fd72b;text-decoration:none}
.card-footer a.card-open:active{background:#1d5ca6;border-color:#1d5ca6}

/* Immediate favorite confirmation, with a persistent selected state. */
.favorite-btn.is-favorite{background:#fff0bf;color:#b27d16}
.favorite-btn.is-favorite svg{fill:#f8ce59;stroke:#b27d16}
.favorite-feedback{animation:favorite-confirm .38s ease-out}
@keyframes favorite-confirm{0%{transform:scale(1)}45%{transform:scale(1.28)}100%{transform:scale(1)}}
#toast{max-width:calc(100vw - 32px);line-height:1.7;box-shadow:0 6px 24px #24456a24;font-size:13px;padding:12px 22px}
@media(prefers-reduced-motion:reduce){.favorite-feedback{animation:none}}

.management-guide{display:flex;align-items:center;gap:20px;background:#f0f8ff;border:1px solid #d7eafa;border-radius:8px;padding:12px 16px;margin:0 0 16px;outline-offset:3px}
.management-ready{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#347fb6;font-size:12px}
.management-ready>span{display:grid;place-items:center;width:25px;height:25px;background:#e0f2e9;border-radius:50%;color:#3a9b72}
.management-ready svg{width:17px;height:17px}
.management-ready strong{font-weight:600}
.management-guide p{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11px;color:#6c879e}
.management-guide p>span{display:block}
.management-action-highlight{animation:management-action-confirm .9s ease-out 2}
@keyframes management-action-confirm{0%,100%{box-shadow:0 0 0 0 #3988d600}45%{box-shadow:0 0 0 5px #3988d62b}}
@media(max-width:850px){.management-guide{align-items:flex-start;flex-direction:column;gap:8px;padding:12px 14px}.management-guide p{gap:4px 14px}}
@media(prefers-reduced-motion:reduce){.management-action-highlight{animation:none}}

.catalog-loading{min-height:250px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#93a5b9}
.catalog-loading strong{font-size:14px;font-weight:500;color:#6e89a6}
.catalog-loading>span{font-size:12px}
.loading-mark{width:30px;height:4px;border-radius:2px;background:#bcd9f8}
.shared-update{position:fixed;bottom:23px;right:24px;z-index:15;padding:11px 16px;min-height:40px;background:#edf5ff;border:1px solid #bcd7f6;border-radius:8px;color:#3577bb;font-size:12px;box-shadow:0 3px 14px #294a7012}
.shared-update:hover{background:#e1efff;border-color:#8fbae9}
.shared-update:disabled{opacity:.7;cursor:wait}
.management-action-highlight{animation:none}
@media(max-width:560px){.shared-update{right:16px;bottom:75px;max-width:calc(100vw - 32px)}}

/* Visible confirmation near the user's main controls; no blocking backdrop. */
#toast{top:80px;bottom:auto;left:50%;width:min(580px,calc(100vw - 32px));max-width:none;display:flex;align-items:center;gap:13px;padding:18px;background:#fff;color:#304967;border:1px solid #dcebe4;border-left:4px solid #39a778;border-radius:11px;box-shadow:0 10px 38px #28466526;transform:translateX(-50%);opacity:0;pointer-events:none;z-index:30;transition:opacity .18s}
#toast.show{transform:translateX(-50%);opacity:1;pointer-events:auto}
.notice-icon{width:38px;height:38px;border-radius:50%;background:#e5f6ed;color:#29986a;display:grid;place-items:center;flex-shrink:0}
.notice-icon svg{width:23px;height:23px}
.notice-copy{flex:1;min-width:0}
.notice-copy strong{display:block;font-size:15px;line-height:1.6;font-weight:600;color:#304967}
.notice-copy p{font-size:12px;line-height:1.7;color:#7c8fa3;margin:3px 0 0}
.notice-action{background:#347fd7;color:white;min-height:36px;padding:7px 13px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap}
.notice-action:hover{background:#246bc1}
.notice-close{width:26px;height:30px;color:#9aabbc;display:grid;place-items:center;flex-shrink:0}
.notice-close:hover{color:#547394}
.notice-close svg{width:16px;height:16px}
@media(max-width:560px){#toast{top:72px;left:50%!important;width:calc(100vw - 24px);padding:14px 12px;gap:9px}.notice-icon{width:31px;height:31px}.notice-icon svg{width:20px;height:20px}.notice-copy strong{font-size:14px}.notice-copy p{font-size:11px}.notice-action{padding:6px 9px;font-size:11px}.notice-close{width:20px}}

#toast{margin:0;overflow:visible}
#toast::backdrop{background:transparent;pointer-events:none}
#toast[data-kind="info"]{border-color:#dce8f8;border-left-color:#4a91d5}
#toast[data-kind="info"] .notice-icon{background:#eaf3ff;color:#3d82c3}
#toast[data-kind="warning"]{border-color:#f0e3c4;border-left-color:#d8a343}
#toast[data-kind="warning"] .notice-icon{background:#fff5de;color:#b58a31}
#toast[data-kind="error"]{border-color:#f0dcd8;border-left-color:#d97d70}
#toast[data-kind="error"] .notice-icon{background:#fff0ec;color:#ce7366}
#toast:not(.show){visibility:hidden}#toast.show{visibility:visible}

.list-stage{position:relative}
.list-stage.is-loading #project-grid{opacity:.3;pointer-events:none}
.list-loading{position:absolute;inset:0;z-index:3;background:#ffffff8c;cursor:progress}
.list-loading-message{position:sticky;top:90px;display:flex;align-items:center;justify-content:center;gap:9px;width:fit-content;max-width:calc(100% - 24px);margin:22px auto;padding:11px 17px;background:#fff;border:1px solid #dce9f7;border-radius:8px;box-shadow:0 4px 18px #28456d14;color:#4d7cad;font-size:12px}
.list-spinner{display:block;width:17px;height:17px;border:2px solid #dfebf8;border-top-color:#3b86d5;border-radius:50%;animation:list-spin .7s linear infinite;flex-shrink:0}
@keyframes list-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.list-spinner{animation:none;border-right-color:#3b86d5}}
