:root{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Microsoft YaHei",sans-serif;color:#333;background:#f2f2f2;font-size:14px;--green:#009688;--side:200px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button{border:0;background:none;color:inherit}input,select,textarea{border:1px solid #e2e2e2;border-radius:2px;padding:8px 10px;background:#fff;color:#333;min-height:36px}input:focus,select:focus,textarea:focus{outline:1px solid #009688;border-color:#009688}a{color:#009688}.topbar{height:60px;background:#009688;color:#fff;display:flex;align-items:center;position:fixed;z-index:20;inset:0 0 auto}.brand{font-size:22px;font-weight:600;width:200px;text-align:left;padding-left:20px;white-space:nowrap}.brand span{font-size:29px}.collapse{font-size:21px;padding:12px}.topnav{display:flex;align-items:stretch;height:60px;gap:0}.topnav>*{display:flex;align-items:center;padding:0 18px;font-weight:400;white-space:nowrap}.topnav>b{background:#00877a}.topnav>span{opacity:.74}.topright{margin-left:auto;display:flex;gap:17px;align-items:center;padding:0 20px;white-space:nowrap}.env{border:1px solid #ffffff65;border-radius:2px;font-size:12px;padding:4px 8px}.topright button{font-size:22px}aside{position:fixed;inset:60px auto 0 0;width:var(--side);overflow-y:auto;background:#20222a;color:#c2c2c2;z-index:15;scrollbar-width:thin}aside details>summary{padding:16px 18px;list-style:none;cursor:pointer;background:#252731;color:#eee}aside details>summary:after{content:'⌄';float:right}aside details:not([open])>summary:after{content:'›'}aside .menu-item{display:block;width:100%;text-align:left;padding:11px 15px 11px 39px;border-left:4px solid transparent}aside .menu-item:hover{color:#fff;background:#2c2f3a}aside .menu-item.active{border-left-color:#5fb878;color:#fff;background:#009688}main{margin:60px 0 0 var(--side);min-height:calc(100vh - 60px);display:flex;flex-direction:column}.tabs{height:42px;display:flex;background:#fff;border-bottom:1px solid #e8e8e8;position:sticky;top:60px;z-index:10}.tabs>button,#tabs>button{padding:0 18px;border-right:1px solid #eee;white-space:nowrap}.tabs>button:hover,#tabs>button:hover{background:#f6f6f6}#tabs{display:flex;overflow:auto;flex:1}#tabs>button.active{border-bottom:2px solid #009688;background:#f8f8f8;color:#009688}#tabs .x{margin-left:12px;color:#999}.context{height:46px;display:flex;align-items:center;gap:18px;padding:0 18px;color:#888;font-size:12px}.context label{margin-left:auto}.context select{font-size:12px;padding:4px 8px;min-height:28px;max-width:190px}#sync{font-size:12px;color:#588b81}#content{background:#fff;margin:0 15px 15px;padding:15px;flex:1;min-width:0}.welcome{padding:15px 18px;background:#f2f2f2;border-left:5px solid #009688;margin-bottom:20px}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:18px 0}.card{border:1px solid #e6e6e6;display:flex;align-items:center;padding:20px;gap:18px}.card .mark{font-size:28px;color:#009688;background:#eef7f5;padding:14px}.card b{display:block;font-size:28px;font-weight:400;color:#333}.card small{color:#888;display:block;margin-top:6px}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.box{border:1px solid #e6e6e6}.box h3{margin:0;font-size:14px;font-weight:400;padding:12px 16px;background:#f7f7f7;border-bottom:1px solid #e6e6e6}.box .body{padding:18px;line-height:1.9}.plain{border-collapse:collapse;width:100%}.plain th,.plain td{font-weight:400;border:1px solid #e6e6e6;text-align:left;padding:12px 15px;line-height:1.5}.plain th{background:#fafafa;width:140px;color:#777}.notice{font-size:13px;line-height:1.8;background:#f7f8fa;color:#737b80;padding:10px 14px;border-left:3px solid #c5cbd0;margin:0 0 15px}.searchbox{border:1px solid #e6e6e6;padding:16px 15px;margin:0 0 15px}.searchbox legend{font-size:18px;padding:0 10px;font-weight:300}.filters{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}.filters label{display:flex;gap:8px;align-items:center;color:#666}.filters input{width:180px}.filters select{max-width:165px;min-width:115px}.filters .date{width:150px}.filters .query{width:215px}.green,.primary{background:#009688;color:#fff;border:1px solid #009688;border-radius:2px;padding:8px 17px;min-height:36px}.green:hover,.primary:hover{background:#16a397}.outline{border:1px solid #d2d2d2;background:#fff;border-radius:2px;padding:8px 15px;min-height:36px}.outline:hover{border-color:#aaa}.actions{display:flex;align-items:center;gap:10px;margin-bottom:12px}.actions small{margin-left:auto;color:#999}.table-wrap{overflow:auto;border:1px solid #e6e6e6;max-height:calc(100vh - 365px);min-height:170px;position:relative}.data-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}.data-table th{font-weight:400;background:#f2f2f2;color:#666;position:sticky;top:0;z-index:3;text-align:left;white-space:nowrap;height:40px;border-bottom:1px solid #ddd;border-right:1px solid #e6e6e6;padding:8px 12px}.data-table th button{padding:0;display:flex;align-items:center;gap:12px}.data-table th button i{font-size:10px;color:#aaa;font-style:normal}.data-table td{padding:10px 12px;max-width:300px;height:44px;border-bottom:1px solid #e6e6e6;border-right:1px solid #e6e6e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}.data-table tr:nth-child(even) td{background:#fcfcfc}.data-table tr:hover td{background:#f2f9f8}.data-table .operation{position:sticky;left:0;z-index:2;min-width:142px}.data-table th.operation{z-index:5;background:#f2f2f2}.operation button{color:#009688;margin-right:9px;padding:3px 0;white-space:nowrap}.operation button:hover{text-decoration:underline}.badge{display:inline-block;padding:3px 9px;border-radius:2px;font-size:12px;color:#fff;background:#5fb878}.badge.neutral{background:#f0f0f0;color:#777}.badge.orange{background:#ffb800}.badge.red{background:#ff5722}.pager{display:flex;align-items:center;gap:8px;padding-top:16px;color:#666;font-size:13px}.pager button{border:1px solid #e2e2e2;padding:6px 12px}.pager button.active{background:#009688;color:#fff;border-color:#009688}.pager select{margin-left:8px;min-height:30px;padding:3px 8px}.pager input{width:60px;min-height:30px;padding:3px 8px}.pager .total{margin-right:12px}.empty{padding:45px;text-align:center;color:#999}.error{color:#be3d33;background:#fff2ef;padding:16px}.summarybar{display:flex;gap:35px;padding:10px 16px 20px;color:#888}.summarybar b{font-size:24px;color:#009688;font-weight:400;margin-left:12px}.summarybar small{margin-left:auto}.stat-period{display:flex;border-bottom:1px solid #e6e6e6;margin-bottom:15px}.stat-period button{padding:10px 23px}.stat-period .active{color:#009688;border-bottom:2px solid #009688}.section-title{font-size:18px;font-weight:400;margin:8px 0 18px}footer{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#777;font-size:12px;background:#eee}footer span{color:#999}dialog{border:0;padding:0;width:min(960px,94vw);max-height:88vh;box-shadow:0 12px 45px #0003;color:#333;border-radius:2px}dialog::backdrop{background:#0005}.dialog-head{display:flex;justify-content:space-between;align-items:center;background:#f7f7f7;border-bottom:1px solid #eee;padding:13px 20px;position:sticky;top:0;z-index:2}.dialog-head strong{font-weight:400}.dialog-head button{font-size:25px;color:#888}#dialog-body{padding:22px;overflow:auto;max-height:65vh}#dialog-footer{border-top:1px solid #eee;padding:13px 22px;display:flex;justify-content:flex-end;gap:12px;background:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 24px}.form-grid label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#666}.form-grid textarea{width:100%;min-height:90px;resize:vertical}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select{width:100%}.detail-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #eee;border-left:1px solid #eee}.detail-cell{display:flex;gap:10px;padding:11px 14px;border-right:1px solid #eee;border-bottom:1px solid #eee;align-items:flex-start;font-size:13px;overflow-wrap:anywhere}.detail-cell b{font-weight:400;color:#888;min-width:115px;max-width:150px}.detail-cell span{white-space:pre-wrap;line-height:1.65}.detail-cell.wide{grid-column:1/-1}.related{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.related button{border:1px solid #c7e2dd;color:#009688;padding:10px 15px}.field-key{font-size:11px;color:#aaa;display:block}.history{color:#999;font-size:12px;line-height:1.8;margin-top:18px}#toast{position:fixed;bottom:55px;left:50%;transform:translateX(-50%);background:#333e;color:#fff;border-radius:3px;padding:12px 25px;z-index:99;display:none;max-width:70vw;line-height:1.5}.columns-control{position:relative}.column-menu{position:absolute;right:0;top:40px;background:white;border:1px solid #ddd;box-shadow:0 3px 14px #0001;padding:14px;width:200px;max-height:300px;overflow:auto;z-index:9}.column-menu label{display:flex;align-items:center;gap:8px;padding:5px}.column-menu input{min-height:0}.collapsed{--side:0px}.collapsed aside{display:none}.linkhint{color:#999;font-size:12px}.form-note{margin-bottom:20px;color:#8a8274;background:#faf8f2;padding:10px;line-height:1.7}button:focus-visible{outline:2px solid #5fb878;outline-offset:2px}@media(max-width:1250px){.topnav>span{display:none}.topright{gap:9px}.summary-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){:root{--side:165px}.brand{width:165px;font-size:19px}.topnav{display:none}.topright{font-size:12px}.env{display:none}.context{gap:8px}.home-grid{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(2,1fr)}.card{padding:12px}.card b{font-size:23px}.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.table-wrap{max-height:60vh}#content{margin:0 8px 8px;padding:10px}.context select{max-width:115px}.filters input{width:150px}}
.context #source-refresh{font-size:12px;color:#009688;white-space:nowrap;padding:4px;border:1px solid #cfe4df;background:white}.context #conflicts{font-size:12px;background:#fff2d6;color:#986515;padding:4px 8px;white-space:nowrap}.conflict-item{border-bottom:1px solid #eee;padding:5px 0 20px;margin-bottom:15px}.conflict-item h4{font-weight:500}.conflict-values{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}.conflict-values>div{background:#f7f7f7;padding:12px}.conflict-values b{font-weight:400;color:#888}.conflict-values pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-family:inherit;font-size:13px}

main.login{margin:12vh auto;padding:42px;width:min(440px,90vw);background:white;border:1px solid #e3e9e6;border-radius:12px;box-shadow:0 10px 40px #153b2510;text-align:center} .login h1{color:#208957;margin-bottom:20px}.login p{color:#64746b;line-height:1.8;margin-bottom:26px}.login-button{display:inline-block;background:#218a58;color:white;padding:12px 48px;border-radius:7px;text-decoration:none}
