:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#25322f;background:#f4f6f5;font-size:14px;letter-spacing:0;--green:#17684f;--border:#dce3df;--muted:#667570}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #cdd8d1;background:white;border-radius:5px;color:#30443b;padding:9px 13px;min-height:38px;white-space:normal}button:hover{background:#eaf3ee;border-color:#aac5b5}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#10573f;color:white}.danger{color:#b23e43}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{width:100%;border:1px solid #cdd8d1;border-radius:4px;padding:9px;background:white;color:inherit;min-width:0}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}textarea{resize:vertical;min-height:105px;line-height:1.7}label{display:block;color:#56665f;font-size:13px}label input,label textarea,label select{margin-top:7px}header{height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:white;border-bottom:1px solid var(--border);padding:0 28px}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:21px}.brand span:not(.brandmark){display:block;font-size:12px;color:var(--muted);margin-top:3px}.brandmark{display:inline-grid;place-items:center;background:var(--green);color:#fff;width:38px;height:38px;border-radius:7px;font-size:22px;font-weight:600;flex-shrink:0}.headerRight,.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.layout{display:grid;grid-template-columns:186px minmax(0,1fr);min-height:calc(100vh - 78px)}nav{padding:24px 12px;background:#fafcfb;border-right:1px solid var(--border)}nav button{display:block;width:100%;text-align:left;border:0;margin-bottom:5px;padding:12px;background:transparent;color:#5f6e68}nav button.active{background:#e3efe8;color:#17684f;font-weight:600}main{padding:28px 32px;min-width:0;max-width:1700px;width:100%;margin:auto;margin-top:0}.pagehead{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}h1{font-size:26px;margin:0}h2{font-size:19px;margin:0}h3{font-size:15px;margin:20px 0 10px}p{line-height:1.7}#eyebrow{font-size:12px;color:var(--muted);margin:0 0 8px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;margin:0 0 25px}.stat{padding:18px;border-right:1px solid var(--border)}.stat:last-child{border:0}.stat span{font-size:12px;color:var(--muted)}.stat strong{font-size:28px;font-weight:600;display:block;margin-top:8px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar select{width:155px}.toolbar input[type=search]{width:225px}.toolbar .spacer{flex:1}.tablewrap{width:100%;overflow:auto;border:1px solid var(--border);background:white}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#edf1ef;color:#65756d;font-weight:500;white-space:nowrap}th,td{padding:13px 12px;border-bottom:1px solid #e8edea;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbf9}.courseName{display:block;min-width:165px;max-width:280px;text-align:left;border:0;background:none;padding:0;font-weight:600;color:#263c31;line-height:1.6}.sub{color:var(--muted);font-size:12px;margin-top:4px}.tag{display:inline-block;white-space:nowrap;border-radius:4px;padding:4px 7px;font-size:12px;background:#edf1ef;color:#56675e}.tag.success{background:#e6f3ea;color:#217444}.tag.failed,.tag.risk{background:#fce8e7;color:#a64240}.tag.pending,.tag.fetching,.tag.analyzing{background:#fff2d8;color:#967017}.tag.ai{background:#eee8f8;color:#6a4994}.error{color:#b63e45;overflow-wrap:anywhere;max-width:290px;font-size:12px}.muted{color:var(--muted)}.empty{text-align:center;padding:65px 20px;color:var(--muted);background:white;border-top:1px solid var(--border)}.job{display:flex;gap:12px;align-items:center;padding:12px 0;margin-bottom:14px;flex-wrap:wrap}.job progress{height:7px;width:220px;accent-color:var(--green)}.importArea{background:white;border-top:2px solid var(--green);padding:26px 0;margin-bottom:22px}.importArea input{max-width:420px}.notice{background:#edf4f9;color:#466579;padding:12px 16px;margin:15px 0;border-left:3px solid #8db3cb;line-height:1.7;font-size:13px}.detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.detailMeta{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.score{font-size:32px;color:var(--green)}.section{border-top:1px solid var(--border);padding-top:18px;margin-top:20px}.checks{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0}.checks label{display:flex;align-items:center;gap:8px}.checks input{margin:0}.scoreRows{display:grid;gap:10px;margin:12px 0}.scoreRow{display:grid;grid-template-columns:140px minmax(60px,1fr) 55px;gap:10px;align-items:center;font-size:12px}.bar{height:7px;background:#e6ece8;border-radius:4px;overflow:hidden}.bar i{height:100%;background:#369773;display:block}pre{white-space:pre-wrap;word-break:break-word;background:#f5f7f6;padding:16px;max-height:340px;overflow:auto;font-size:12px;line-height:1.7}details{margin:16px 0}summary{cursor:pointer;color:var(--green)}.analysisItem{border-top:1px solid var(--border);padding:12px 0}.analysisItem strong{font-size:13px}.analysisItem p{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.analysisItem ul{padding-left:20px;line-height:1.8}.login{min-height:100vh;display:grid;place-items:center}.login[hidden]{display:none}.login form{width:min(380px,90vw);padding:30px 0}.login h1{margin-top:20px}.login form>button{width:100%;margin-top:18px}.login p{color:var(--muted)}dialog{border:1px solid #cfdad3;border-radius:8px;padding:0;width:min(1000px,94vw);max-height:92vh;box-shadow:0 20px 90px #233a3033}dialog::backdrop{background:#172e2355}.modalHead{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:1}#modalBody{padding:10px 24px 26px}.icon{font-size:22px;min-width:38px;padding:3px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.formgrid .wide{grid-column:1/-1}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#234434;color:white;padding:12px 20px;max-width:90vw;border-radius:5px;z-index:10;line-height:1.6}.small{font-size:12px}.rowlink{word-break:break-all}.footerActions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #347b5f;outline-offset:2px}
.dateFilter{width:165px;max-width:calc(50% - 5px)}.dateFilter input{min-width:0;width:100%;height:38px}.dateToolbar{align-items:flex-end}.reportReading{font:inherit;line-height:1.8;overflow-wrap:anywhere}.reportField{margin:14px 0}.reportField h4{font-size:13px;color:#56665f;margin:8px 0 4px}.reportField p{margin:4px 0 10px}.reportField .reportField{padding-left:14px;border-left:2px solid var(--border)}
@media(max-width:900px){main{padding:22px 18px}.layout{grid-template-columns:150px minmax(0,1fr)}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:12px}.stat strong{font-size:24px}.detailgrid{grid-template-columns:1fr}.headerRight .tag{display:none}}
@media(max-width:600px){header{padding:10px 14px;height:auto;min-height:74px}.brand strong{font-size:18px}.headerRight{gap:5px}.headerRight button{font-size:12px;padding:7px}.layout{display:block}nav{display:flex;overflow-x:auto;padding:8px;border-right:0;border-bottom:1px solid var(--border);gap:5px}nav button{white-space:nowrap;width:auto;margin:0;padding:9px 12px;flex-shrink:0}main{padding:18px 12px}.pagehead{align-items:flex-start}h1{font-size:23px}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat span{font-size:11px}.stat strong{font-size:22px}.toolbar{gap:7px}.toolbar select{width:calc(50% - 4px)}.toolbar input[type=search]{width:100%}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}#modalBody{padding:10px 16px 20px}.modalHead{padding:12px 16px}.scoreRow{grid-template-columns:110px minmax(50px,1fr) 44px}.job progress{width:100%}.pagehead #topActions button{max-width:130px}}
.sampleRate{width:110px}.sampleRecipients{border:0;border-top:1px solid var(--border);margin:18px 0;padding:12px 0;min-width:0}.sampleRecipients legend{padding-right:12px;font-weight:600}.sampleRecipients label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0}.sampleRecipients input{margin:0;flex-shrink:0}#sampleBatch{width:100%;max-width:400px}
.caseText{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.caseNote{max-width:360px;white-space:pre-wrap;overflow-wrap:anywhere}.workActions{padding:14px 0;border-bottom:1px solid var(--border)}#caseCandidates td{max-width:260px;overflow-wrap:anywhere}
.followBadge{font-size:12px;min-height:28px;padding:3px 6px;margin-top:5px;border-color:#e4bbbb;background:#fff1f0;color:#923f3f}
.caseSaveArea{position:sticky;bottom:0;background:white;padding:10px 0 2px;border-top:1px solid var(--border);margin-top:20px}.caseSaveArea .footerActions{margin-top:8px}#caseFormError{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;background:#fff1f0;border:1px solid #e4bbbb;border-radius:4px;margin:0}
.trackingFilters{align-items:flex-end}.trackingFilters label{width:180px;max-width:100%}.trackingFilters label input,.trackingFilters label select{width:100%}.checkLine{display:flex;align-items:center;gap:8px;margin:12px 0}.checkLine input{margin:0;flex-shrink:0}.weeklyEntry{border-top:1px solid var(--border);padding:12px 0}.trackingError{white-space:pre-wrap;background:#fff1f0;padding:10px;border:1px solid #e4bbbb;border-radius:4px}
.toolbar.trackingFilters label{flex:1 1 170px;min-width:150px;max-width:220px}.toolbar.trackingFilters label.checkLine{flex:0 0 185px;max-width:100%;white-space:nowrap}.toolbar.trackingFilters label input[type=checkbox]{width:17px;height:17px}.toolbar.trackingFilters input[type=search]{width:100%}
#toast{max-height:35vh;overflow:auto;overflow-wrap:anywhere;width:max-content;max-width:90vw}.toastMessage+.toastMessage{border-top:1px solid #ffffff55;margin-top:8px;padding-top:8px}
.pagination{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 0;font-size:12px}.pagination label{display:flex;align-items:center;gap:6px}.pagination input{width:70px;margin:0}.pagination select{width:72px;margin:0}.pageNumbers{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pagination button{padding:6px 10px;min-width:36px}.pagination [aria-current=page]{background:#17684f;color:#fff}.tablewrap tr[hidden]{display:none}.categoryTabs{display:flex;gap:0;border-bottom:1px solid #cdd8d1;margin-bottom:20px}.categoryTabs button{border:0;border-radius:0;background:transparent;padding:12px 18px}.categoryTabs [aria-selected=true]{color:#17684f;border-bottom:3px solid #17684f;font-weight:600}.evidenceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:16px 0}.evidenceGrid figure{margin:0;min-width:0}.evidenceGrid img{width:100%;height:145px;object-fit:contain;background:#edf1ef;border:1px solid #dce3df;border-radius:4px}.evidenceGrid figcaption{overflow-wrap:anywhere;font-size:12px;line-height:1.6}.pagination>span{color:#667570}@media(max-width:600px){.pagination .pageNumbers{flex-basis:100%;order:1}.pagination{gap:7px}.categoryTabs button{padding:12px;font-size:13px}}
.followBadge.excellent{background:#e6f3ea;color:#217444;border-color:#b7d7c0}
