:root{--font-family:"Pretendard Variable", "Pretendard", "Malgun Gothic", sans-serif;--font-page:28px;--font-section:20px;--font-body:16px;--font-control:15px;--font-secondary:14px;--font-brand:24px;--font-metric:32px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-brand:730;--weight-page:600;--weight-section:500;--weight-course:500;--line-heading:1.4;--line-body:1.55;--color-bg:#f6f6f4;--color-surface:#fff;--color-subtle:#eff1ef;--color-hover:#e8ecef;--color-text:#252728;--color-secondary:#50565d;--color-muted:#626a73;--color-border:#dde1de;--color-border-strong:#a9b4bd;--color-accent:#426b91;--color-accent-hover:#315472;--color-accent-soft:#eaf0f5;--color-on-accent:#fff;--color-success:#2468aa;--color-success-soft:#edf3f9;--color-excel:#1b6947;--color-excel-soft:#eaf4ee;--color-danger:#b42318;--color-danger-soft:#fbeeed;--color-warning:#825900;--color-warning-soft:#faf2df;--color-disabled:#e0e3e5;--color-disabled-text:#677079;--color-overlay:#25272866;--color-tooltip:#252728;--color-tooltip-text:#fff;--color-focus:#426b9140;--shadow-card:0 2px 8px #202b3405;--shadow-popover:0 12px 36px #202b3420;--content-width:1200px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--color-bg:#191b1e;--color-surface:#24272b;--color-subtle:#2c3035;--color-hover:#343a41;--color-text:#eef0f2;--color-secondary:#d0d5dc;--color-muted:#adb5bf;--color-border:#3e444b;--color-border-strong:#6d7a88;--color-accent:#9ebfdd;--color-accent-hover:#bed5e9;--color-accent-soft:#2c3c4b;--color-on-accent:#172431;--color-success:#8cbeef;--color-success-soft:#253c52;--color-excel:#a1d9b5;--color-excel-soft:#243b2d;--color-danger:#ffaba2;--color-danger-soft:#432d2d;--color-warning:#ebc779;--color-warning-soft:#403929;--color-disabled:#343940;--color-disabled-text:#a0a8b3;--color-overlay:#00000080;--color-tooltip:#e7ebf0;--color-tooltip-text:#20252c;--color-focus:#9ebfdd50;--shadow-card:none;--shadow-popover:0 12px 36px #00000050;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:Pretendard Variable;src:url(./PretendardVariable-CJuje-Rk.woff2)format("woff2");font-weight:var(--weight-regular) 920;font-style:normal;font-display:swap}:root{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--color-bg);min-width:1024px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--color-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;align-items:center;height:76px;padding:0 38px;display:flex;position:sticky;top:0}.brand-copy{flex-direction:column;gap:3px;display:flex}.brand-copy strong{font-size:var(--font-section);line-height:var(--line-heading);font-weight:var(--weight-bold);letter-spacing:-.018em}.brand-copy span{font-size:var(--font-secondary);line-height:var(--line-heading);color:var(--muted)}.privacy-chip{border:1px solid var(--color-border);background:var(--color-border);color:var(--color-muted);font-size:var(--font-secondary);border-radius:999px;align-items:center;gap:7px;margin-left:auto;padding:7px 11px;display:flex}.privacy-chip>span{background:var(--color-subtle);width:7px;height:7px;box-shadow:var(--shadow-card);border-radius:50%}.settings-button{border:1px solid var(--color-border);background:var(--color-border);height:34px;color:var(--color-muted);font-size:var(--font-secondary);cursor:pointer;border-radius:7px;align-items:center;gap:6px;margin-left:auto;padding:0 12px;display:flex}.settings-button:hover{background:var(--color-surface);border-color:var(--color-border)}main{flex:1;width:min(1380px,100% - 64px);margin:0 auto}.page-head{justify-content:flex-end;align-items:center;padding:20px 2px 14px;display:flex}.page-head h1{font-size:var(--font-brand);font-weight:var(--weight-bold);letter-spacing:-.025em;margin:0}.page-head p{color:var(--muted);font-size:var(--font-secondary);margin:7px 0 0}.mode-switch{border:1px solid var(--border);background:var(--color-subtle);border-radius:9px;gap:2px;padding:3px;display:flex}.mode-switch button{height:36px;color:var(--color-muted);font-size:var(--font-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;padding:0 16px;display:flex}.mode-switch button.active{color:var(--color-muted);background:var(--color-surface);box-shadow:var(--shadow-card);font-weight:var(--weight-semibold)}.hero{justify-content:space-between;align-items:center;min-height:258px;padding:46px 14px 34px;display:flex}.eyebrow{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-bold);letter-spacing:.08em;margin-bottom:12px;display:block}.hero h1{color:var(--color-text);font-size:var(--font-page);line-height:var(--line-heading);font-weight:var(--weight-bold);letter-spacing:-.035em;margin:0}.hero p{color:var(--color-muted);font-size:var(--font-body);margin:18px 0 0}.year-control{border:1px solid var(--color-border);background:var(--color-border);width:250px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:22px}.year-control label{font-size:var(--font-secondary);color:var(--muted);font-weight:var(--weight-semibold);margin-bottom:10px;display:block}.year-control>div{align-items:baseline;gap:7px;display:flex}.year-control input{border:0;border-bottom:2px solid var(--color-border);width:115px;font-size:var(--font-metric);font-weight:var(--weight-semibold);letter-spacing:-.03em;background:0 0;outline:0}.year-control>div span{font-size:var(--font-body);font-weight:var(--weight-semibold)}.year-control small{color:var(--color-muted);font-size:var(--font-secondary);margin-top:12px;display:block}.setup-card,.results-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card);border-radius:14px;overflow:hidden}.setup-card{padding:25px}.section-heading,.section-heading>div{align-items:center;display:flex}.section-heading{justify-content:space-between;margin-bottom:20px}.section-actions{align-items:center;gap:8px;display:flex}.step{background:var(--color-subtle);width:28px;height:28px;color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-bold);border-radius:50%;place-items:center;margin-right:11px;display:grid}.section-heading h2{font-size:var(--font-body);font-weight:var(--weight-semibold);margin:0}.section-heading p{color:var(--muted);font-size:var(--font-secondary);margin:4px 0 0}.ghost-button{color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:7px 10px;display:inline-flex}.ghost-button:hover{background:var(--color-subtle)}.upload-grid{grid-template-columns:1fr 1fr 1.2fr;gap:12px;display:grid}.upload-grid.personal{grid-template-columns:1fr}.upload-grid.team{grid-template-columns:1fr 1.2fr}.roster-upload{min-width:0}.roster-upload .upload-tile{width:100%}.roster-template-button{border:1px solid var(--color-border);min-width:178px;height:44px;color:var(--color-muted);background:var(--color-subtle);cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:0 11px;display:flex}.roster-template-button>span{flex-direction:column;flex:1;align-items:flex-start;gap:2px;display:flex}.roster-template-button strong{font-size:var(--font-secondary)}.roster-template-button small{color:var(--color-muted);font-size:var(--font-secondary)}.upload-tile{text-align:left;border:1px dashed var(--color-border);background:var(--color-subtle);cursor:pointer;border-radius:10px;align-items:center;min-width:0;height:91px;padding:15px;transition:all .16s;display:flex;position:relative}.upload-tile:hover,.upload-tile.dragging{border-color:var(--color-border);background:var(--color-subtle);transform:translateY(-1px)}.upload-tile:focus-visible{outline:2px solid var(--color-border);outline-offset:2px}.upload-tile.has-file{border-style:solid;border-color:var(--color-border);background:var(--color-subtle)}.upload-icon{width:44px;height:44px;color:var(--color-muted);background:var(--color-subtle);border-radius:10px;flex:none;place-items:center;display:grid}.upload-copy{flex-direction:column;gap:6px;min-width:0;margin:0 12px;display:flex}.upload-title{font-size:var(--font-secondary);font-weight:var(--weight-semibold);align-items:center;gap:7px;display:flex}.upload-title small{background:var(--color-subtle);color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-semibold);border-radius:4px;padding:2px 5px}.upload-description{color:var(--color-muted);font-size:var(--font-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.upload-action{color:var(--accent);font-size:var(--font-secondary);font-weight:var(--weight-semibold);white-space:nowrap;margin-left:auto}.upload-actions{flex-shrink:0;gap:7px;margin-left:auto;display:flex}.upload-actions button{border:1px solid var(--color-border);background:var(--color-border);color:var(--accent);font-size:var(--font-secondary);font-weight:var(--weight-semibold);cursor:pointer;border-radius:7px;padding:7px 10px}.upload-actions button:hover{background:var(--color-subtle);border-color:var(--accent)}.upload-clear{border:1px solid var(--color-border);width:30px;height:30px;color:var(--color-muted);background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;border-radius:50%;flex:0 0 30px;place-items:center;margin-left:9px;transition:all .15s;display:grid}.upload-clear:hover{border-color:var(--color-border);color:var(--color-muted);background:var(--color-subtle)}.upload-clear:focus-visible{outline:2px solid var(--color-border);outline-offset:1px}.upload-clear.is-empty{visibility:hidden;pointer-events:none}.action-row{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:19px;padding-top:18px;display:flex}.action-row>span{color:var(--color-muted);font-size:var(--font-secondary)}.primary-button{border:1px solid var(--color-border);min-width:176px;height:40px;color:var(--color-on-accent);background:var(--color-accent);box-shadow:var(--shadow-card);font-size:var(--font-secondary);font-weight:var(--weight-semibold);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:0 17px;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--color-subtle)}.primary-button:disabled{border-color:var(--color-border);background:var(--color-subtle);box-shadow:var(--shadow-card);cursor:default}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner,.notice{font-size:var(--font-secondary);border-radius:7px;align-items:center;gap:9px;display:flex}.error-banner{color:var(--color-muted);background:var(--color-subtle);margin-top:14px;padding:10px 12px}.summary-grid{grid-template-columns:repeat(4,1fr);gap:11px;margin:17px 0;display:grid}.summary-card{border:1px solid var(--border);background:var(--color-border);min-height:102px;box-shadow:var(--shadow-card);border-radius:12px;grid-template-rows:auto 1fr;grid-template-columns:1fr auto;align-items:center;padding:16px 17px;display:grid}.summary-card>span{color:var(--color-muted);font-size:var(--font-secondary);align-items:center;gap:7px;display:flex}.summary-card strong{font-size:var(--font-metric);font-weight:var(--weight-semibold);grid-area:1/2/3}.summary-card small{color:var(--color-muted);font-size:var(--font-secondary);align-self:end}.missing-summary{position:relative}.missing-tooltip{z-index:30;border:1px solid var(--color-border);background:var(--color-surface);width:max-content;max-width:380px;max-height:320px;color:var(--color-muted);box-shadow:var(--shadow-card);font-size:var(--font-secondary);line-height:var(--line-body);opacity:0;visibility:hidden;pointer-events:none;border-radius:10px;flex-direction:column;gap:7px;padding:13px 15px;display:flex;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.missing-summary:hover .missing-tooltip,.missing-summary:focus-visible .missing-tooltip,.missing-summary:focus-within .missing-tooltip{opacity:1;visibility:visible;pointer-events:auto}.summary-card.passed svg{color:var(--green)}.summary-card.failed svg{color:var(--red)}.summary-card.outside svg{color:var(--accent)}.summary-card.review svg{color:var(--amber)}.results-card{min-height:350px;margin-bottom:24px}.tabs-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:61px;padding:0 19px;display:flex}.tabs{align-self:stretch;gap:6px;display:flex}.tabs button{color:var(--color-muted);font-size:var(--font-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:0 12px;display:flex;position:relative}.tabs button.active{color:var(--color-muted);font-weight:var(--weight-semibold)}.tabs button.active:after{content:"";background:var(--color-subtle);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:9px;right:9px}.tab-count{background:var(--color-subtle);min-width:18px;font-size:var(--font-secondary);text-align:center;border-radius:10px;padding:2px 5px}.download-group{gap:7px;display:flex}.download-group button{border:1px solid var(--color-border);background:var(--color-surface);height:34px;font-size:var(--font-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 11px;display:inline-flex;position:relative}.download-group button:hover{background:var(--color-subtle)}.download-group .accent{border-color:var(--color-border);color:var(--color-on-accent);background:var(--color-subtle)}.download-group button[data-tooltip]:after{content:attr(data-tooltip);z-index:20;background:var(--color-subtle);width:max-content;max-width:310px;color:var(--color-on-accent);box-shadow:var(--shadow-card);font-size:var(--font-secondary);font-weight:var(--weight-regular);line-height:var(--line-body);white-space:normal;opacity:0;visibility:hidden;pointer-events:none;border-radius:6px;padding:8px 10px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-2px)}.download-group button[data-tooltip]:hover:after,.download-group button[data-tooltip]:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)}.table-tools{border-bottom:1px solid var(--color-border);background:var(--color-subtle);align-items:center;gap:9px;padding:14px 18px;display:flex}.search-box{border:1px solid var(--color-border);background:var(--color-surface);width:280px;height:32px;color:var(--color-muted);border-radius:6px;align-items:center;gap:7px;padding:0 10px;display:flex}.search-box input{width:100%;font-size:var(--font-secondary);border:0;outline:0}.select-wrap{position:relative}.select-wrap select{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);min-width:134px;height:32px;font-size:var(--font-secondary);border-radius:6px;outline:0;padding:0 27px 0 10px}.select-wrap svg{pointer-events:none;position:absolute;top:9px;right:8px}.result-count{min-width:42px;color:var(--color-muted);font-size:var(--font-secondary);text-align:right;font-variant-numeric:tabular-nums}.table-scroll{max-height:550px;overflow:auto}table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1330px}th{z-index:2;text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-subtle);height:40px;color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-semibold);padding:0 11px;position:sticky;top:0}td{border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:var(--font-secondary);padding:15px 11px}tbody tr:hover{background:var(--color-subtle)}th:first-child{width:155px}th:nth-child(2){width:75px}th:nth-child(3){width:235px}th:nth-child(4){width:125px}th:nth-child(5){width:70px}th:nth-child(6){width:80px}th:nth-child(7){width:180px}th:nth-child(8){width:260px}th:nth-child(9){width:45px}td strong{font-weight:var(--weight-semibold);display:block}td small{color:var(--color-muted);font-size:var(--font-secondary);margin-top:4px;display:block}.person-cell{font-weight:var(--weight-semibold)}.filename-cell{white-space:nowrap;text-overflow:ellipsis;color:var(--color-muted);overflow:hidden}.status-badge{width:max-content;font-size:var(--font-secondary);font-weight:var(--weight-semibold);line-height:var(--line-heading);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:6px 9px;display:flex}.status-badge.수료-인정,.status-badge.조건-미충족,.status-badge.현황표-외-교육,.status-badge.확인-필요{color:var(--color-muted);background:var(--color-subtle)}.reason{max-width:145px;color:var(--color-muted);font-size:var(--font-secondary);line-height:var(--line-body);margin-top:7px;display:block}.icon-button{width:30px;height:30px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.missing-view{background:var(--color-subtle);padding:18px}.checklist-head{border:1px solid var(--color-border);background:var(--color-subtle);border-radius:9px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:15px 16px;display:flex}.checklist-head>div{flex-direction:column;gap:3px;display:flex}.checklist-head strong{font-size:var(--font-secondary)}.checklist-head span{color:var(--color-muted);font-size:var(--font-secondary)}.checklist-head>span{color:var(--color-muted);font-size:var(--font-body);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.criteria-list{gap:7px;display:grid}.criteria-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:78px 1.05fr 1fr .72fr 1.35fr 130px;align-items:center;gap:14px;min-height:88px;padding:14px;display:grid}.criteria-row.complete,.criteria-row.incomplete{border-left:3px solid var(--color-border)}.criteria-state{font-size:var(--font-secondary);font-weight:var(--weight-bold);align-items:center;gap:6px;display:flex}.complete .criteria-state,.incomplete .criteria-state{color:var(--color-muted)}.criteria-row>strong{font-size:var(--font-secondary);line-height:var(--line-heading)}.criteria-row>div{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.criteria-row>div span{color:var(--color-muted);font-size:var(--font-secondary)}.criteria-row>div b{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-semibold)}.criteria-row i{background:var(--color-subtle);border-radius:3px;width:100%;height:4px;display:block;overflow:hidden}.criteria-row i em{background:var(--color-subtle);height:100%;display:block}.time-details{align-content:center}.time-details>span{justify-content:space-between;gap:8px;width:100%;display:flex}.count-details{flex-direction:column;align-items:flex-start!important}.institution-details{flex-direction:column;min-width:0;align-items:flex-start!important}.institution-details b{line-height:var(--line-heading)}.institution-details small{color:var(--color-muted);font-size:var(--font-secondary);line-height:var(--line-heading)}.institution-link{color:var(--color-muted);text-underline-offset:2px;text-decoration:none}.institution-link:hover{color:var(--color-muted);text-decoration:underline}.institution-link:focus-visible{outline:2px solid var(--color-border);outline-offset:2px;border-radius:3px}.institution-separator{color:inherit}.criteria-row>.criteria-result{color:var(--color-muted);font-size:var(--font-secondary);text-align:right;line-height:var(--line-heading)}.team-summary{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.team-summary-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;flex-direction:column;flex:220px;gap:8px;min-width:220px;max-width:340px;padding:19px 21px;display:flex;position:relative}.team-summary-card>strong{color:var(--color-muted);font-size:var(--font-body);font-weight:var(--weight-semibold)}.team-member-count{color:var(--color-muted);font-size:var(--font-secondary)}.team-missing-count{color:var(--color-danger);align-items:baseline;gap:8px;display:flex}.team-missing-count b{font-size:var(--font-page);line-height:var(--line-heading);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.team-missing-count>span{font-size:var(--font-body);font-weight:var(--weight-semibold)}.team-missing-count.all-complete{color:var(--color-muted)}.team-roster-tooltip{z-index:35;border:1px solid var(--color-border);background:var(--color-surface);min-width:220px;max-height:340px;color:var(--color-muted);box-shadow:var(--shadow-card);opacity:0;visibility:hidden;pointer-events:none;border-radius:10px;flex-direction:column;gap:7px;padding:15px 18px;display:flex;position:absolute;top:calc(100% + 7px);left:0;overflow-y:auto}.team-roster-tooltip>strong{font-size:var(--font-secondary);margin-bottom:4px}.team-roster-tooltip>span{font-size:var(--font-secondary);line-height:var(--line-body)}.team-summary-card:hover .team-roster-tooltip,.team-summary-card:focus-visible .team-roster-tooltip,.team-summary-card:focus-within .team-roster-tooltip{opacity:1;visibility:visible;pointer-events:auto}.team-summary-card:focus-visible{outline:2px solid var(--color-border);outline-offset:3px}.person-card{position:relative}.team-label{color:var(--color-muted);background:var(--color-subtle);font-size:var(--font-secondary);border-radius:4px;padding:3px 7px;position:absolute;top:16px;right:16px}.notice{color:var(--color-muted);background:var(--color-subtle);margin-bottom:14px;padding:11px 13px}.team-tools{align-items:center;gap:10px;margin-bottom:12px;display:flex}.team-tools .search-box{width:min(380px,100%)}.person-list{gap:12px;display:grid}.person-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:9px;padding:17px}.person-head{grid-template-columns:245px 1fr;align-items:center;gap:20px;display:grid}.person-head strong,.person-head span{display:block}.person-head strong{font-size:var(--font-body)}.person-head span{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-medium);margin-top:5px}.progress-track{background:var(--color-subtle);border-radius:4px;height:6px;overflow:hidden}.progress-track i{background:var(--color-subtle);border-radius:4px;height:100%;display:block}.team-course-list{border:1px solid var(--color-border);border-radius:9px;margin-top:15px;overflow:hidden}.team-course-row{border-bottom:1px solid var(--color-border);background:var(--color-border);grid-template-columns:84px minmax(220px,1.4fr) minmax(160px,.8fr) minmax(160px,.8fr);align-items:center;gap:14px;min-height:54px;padding:10px 13px;display:grid}.team-course-row:last-child{border-bottom:0}.team-course-row>strong{font-size:var(--font-secondary);font-weight:var(--weight-semibold);line-height:var(--line-heading)}.team-course-row>span:not(.team-course-status){flex-direction:column;gap:3px;display:flex}.team-course-row small{color:var(--color-muted);font-size:var(--font-secondary)}.team-course-row b{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-semibold)}.team-course-status{font-size:var(--font-secondary);font-weight:var(--weight-bold);align-items:center;gap:6px;display:flex}.team-course-row.complete .team-course-status{color:var(--color-muted)}.team-course-row.incomplete .team-course-status{color:var(--color-danger)}.criteria-banner{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.criteria-banner>div{border:1px solid var(--color-border);color:var(--color-muted);background:var(--color-subtle);border-radius:9px;align-items:center;gap:11px;padding:13px 14px;display:flex}.criteria-banner span{flex-direction:column;gap:3px;display:flex}.criteria-banner strong{font-size:var(--font-secondary)}.criteria-banner small{color:var(--color-muted);font-size:var(--font-secondary)}.rules-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.rule-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:9px;padding:16px}.rule-card.is-hold{background:var(--color-subtle);border-style:dashed}.rule-title{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.rule-title strong{font-size:var(--font-secondary)}.hold-badge{color:var(--color-muted);background:var(--color-subtle);font-size:var(--font-secondary);font-weight:var(--weight-semibold);border-radius:4px;padding:3px 6px}.rule-card dl{grid-template-columns:1fr 1fr;gap:11px;margin:0;display:grid}.rule-card dl>div{flex-direction:column;gap:3px;display:flex}.rule-card dl>.wide{grid-column:1/-1}.rule-card dt{color:var(--color-muted);font-size:var(--font-secondary)}.rule-card dd{color:var(--color-muted);font-size:var(--font-secondary);line-height:var(--line-body);margin:0}footer{width:min(1380px,100% - 64px);color:var(--color-muted);font-size:var(--font-secondary);margin:auto auto 0;padding:15px 3px 22px;display:flex}.modal-backdrop{z-index:100;background:var(--color-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.settings-modal{border:1px solid var(--color-border);background:var(--color-subtle);width:min(980px,100%);max-height:min(860px,100vh - 48px);box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--border);background:var(--color-surface);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.settings-content{scrollbar-width:thin;scrollbar-color:var(--color-muted) transparent;min-height:0;overflow-y:auto}.settings-content::-webkit-scrollbar{width:10px}.settings-content::-webkit-scrollbar-track{background:0 0;margin:6px 0}.settings-content::-webkit-scrollbar-thumb{background:var(--color-subtle);background-clip:padding-box;border:3px solid #0000;border-radius:10px}.settings-content::-webkit-scrollbar-thumb:hover{background:var(--color-subtle);background-clip:padding-box}.modal-head h2{font-size:var(--font-body);margin:0}.modal-head p{color:var(--muted);font-size:var(--font-secondary);margin:4px 0 0}.setting-block{padding:20px}.setting-block+.setting-block{border-top:1px solid var(--border)}.setting-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.setting-title>div{flex-direction:column;gap:4px;display:flex}.setting-title strong{font-size:var(--font-secondary)}.setting-title span{color:var(--color-muted);font-size:var(--font-secondary)}.source-badge{background:var(--color-subtle);font-weight:var(--weight-semibold);border-radius:5px;flex:none;padding:4px 7px;color:var(--color-muted)!important;font-size:var(--font-secondary)!important}.source-badge.custom{background:var(--color-subtle);color:var(--color-muted)!important}.setting-block .upload-tile{width:100%}.setting-help{color:var(--color-muted);background:var(--color-subtle);font-size:var(--font-secondary);line-height:var(--line-body);border-radius:7px;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 11px;display:flex}.setting-help svg{flex:none;margin-top:1px}.settings-message{color:var(--color-muted);font-size:var(--font-secondary);align-items:center;gap:7px;margin-top:10px;display:flex}.modal-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:18px;padding-top:15px;display:flex}.secondary-button{border:1px solid var(--color-border);background:var(--color-surface);height:38px;color:var(--color-muted);font-size:var(--font-secondary);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:0 13px;display:inline-flex}.secondary-button:hover,.current-rules{background:var(--color-subtle)}.current-rules .criteria-banner{margin-bottom:12px}.current-rules .criteria-banner strong,.current-rules .criteria-banner small{font-size:var(--font-secondary)}.settings-rules-list{border:1px solid var(--color-border);background:var(--color-surface);border-radius:9px;overflow:hidden}.settings-rule-row{border-bottom:1px solid var(--color-border);grid-template-columns:155px 180px minmax(210px,1fr) minmax(190px,1fr);align-items:center;gap:14px;min-height:76px;padding:13px 14px;display:grid}.settings-rule-row:last-child{border-bottom:0}.settings-rule-row:hover,.settings-rule-row.is-hold{background:var(--color-subtle)}.settings-rule-name{align-items:center;gap:7px;min-width:0;display:flex}.settings-rule-name strong{font-size:var(--font-secondary);line-height:var(--line-heading)}.requirement-pills{grid-template-columns:1fr 1fr;gap:6px;display:grid}.requirement-pills>span{background:var(--color-subtle);border-radius:7px;flex-direction:column;gap:3px;min-width:0;padding:8px 9px;display:flex}.requirement-pills small,.settings-rule-detail small{color:var(--color-muted);font-size:var(--font-secondary)}.requirement-pills b{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-semibold);white-space:nowrap}.settings-rule-detail{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-rule-detail span{color:var(--color-muted);font-size:var(--font-secondary);line-height:var(--line-body)}.hidden-source-badge{background:var(--color-subtle);font-weight:var(--weight-semibold);border-radius:5px;flex:none;padding:5px 8px;color:var(--color-muted)!important;font-size:var(--font-secondary)!important}.hidden-rules-list{border:1px solid var(--color-border);background:var(--color-border);border-radius:9px;overflow:hidden}.hidden-rule-row{border-bottom:1px solid var(--color-border);grid-template-columns:210px 160px 1fr;align-items:center;gap:14px;min-height:62px;padding:11px 14px;display:grid}.hidden-rule-row:last-child{border-bottom:0}.hidden-rule-row>div{flex-direction:column;gap:3px;display:flex}.hidden-rule-row strong,.hidden-rule-row>div span,.hidden-rule-row>span{color:var(--color-muted);font-size:var(--font-secondary)}.hidden-rule-row>small{color:var(--color-muted);font-size:var(--font-secondary);line-height:var(--line-body)}@media (max-width:1120px){main{width:calc(100% - 34px)}.upload-grid.personal{grid-template-columns:1fr}.upload-grid.team{grid-template-columns:1fr 1.15fr}.summary-grid{grid-template-columns:repeat(3,1fr)}}body.portal-view{background:var(--color-bg);min-width:320px}[hidden]{display:none!important}.portal-shell{min-height:100svh;color:var(--color-text);background:var(--color-bg);flex-direction:column;display:flex}.portal-brand{width:min(1120px,100% - 80px);font-size:var(--font-brand);font-weight:var(--weight-brand);letter-spacing:-.04em;align-items:center;gap:18px;margin:0 auto;padding:38px 0;display:flex}.portal-brand span{color:var(--color-muted);font-size:var(--font-body);font-weight:var(--weight-medium);letter-spacing:-.01em;border-left:1px solid var(--color-border);padding-left:18px}.portal-main{width:min(1120px,100% - 80px);margin:0 auto;padding:28px 0 80px}.portal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.tool-block{border:1px solid var(--color-border);background:var(--color-surface);min-height:300px;color:inherit;box-shadow:var(--shadow-card);border-radius:22px;flex-direction:column;padding:30px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.tool-block:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card);transform:translateY(-4px)}.tool-block:focus-visible{outline:3px solid var(--color-border);outline-offset:5px}.tool-category{font-size:var(--font-secondary);color:var(--color-accent);font-weight:var(--weight-semibold)}.tool-block h2{font-size:var(--font-page);line-height:var(--line-heading);font-weight:var(--weight-semibold);letter-spacing:-.045em;word-break:keep-all;margin:24px 0 12px}.tool-block p{font-size:var(--font-body);color:var(--color-muted);line-height:var(--line-body);margin:0 0 30px}.tool-bottom{color:var(--color-secondary);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.tool-bottom>span{font-size:var(--font-secondary);color:var(--color-muted);font-variant-numeric:tabular-nums}.portal-footer{width:min(1120px,100% - 80px);font-size:var(--font-secondary);letter-spacing:.04em;color:var(--color-muted);margin:auto auto 0;padding:26px 0}.portal-home-link{color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-bold);white-space:nowrap;align-items:center;gap:8px;margin-right:24px;text-decoration:none;display:flex}.portal-home-link span{font-weight:var(--weight-medium);color:var(--color-muted)}@media (max-width:900px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.portal-brand,.portal-main,.portal-footer{width:calc(100% - 40px)}.portal-brand{padding:26px 0}.portal-main{padding-top:28px}.portal-grid{grid-template-columns:1fr}.tool-block{min-height:280px}}@media (prefers-reduced-motion:reduce){.tool-block{transition:none}.tool-block:hover{transform:none}}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-secondary);cursor:pointer;border-radius:50%;flex:none;place-items:center;margin-left:auto;padding:0;display:grid}.theme-toggle:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}:root{--accent:var(--color-accent);--accent-dark:var(--color-accent-hover);--green:var(--color-success);--red:var(--color-danger);--amber:var(--color-warning);--border:var(--color-border);--muted:var(--color-muted);--surface:var(--color-surface);--shadow:var(--shadow-card);color:var(--color-text);background:var(--color-bg)}body{background:var(--color-bg);min-width:320px}button,input,select,textarea{font-family:inherit}.topbar{background:var(--color-bg);border-bottom-color:var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:none}.brand-copy strong,.page-head h1,.setup-head h2,.results-head h2{color:var(--color-text)}.brand-copy span,.setup-head p,.summary-card>span,.person-head span{color:var(--muted)}.portal-home-link{color:var(--color-text)}.portal-home-link span{color:var(--muted)}.settings-button,.download-group button,.secondary-button,.upload-clear{color:var(--color-secondary);border-color:var(--border);background:var(--color-surface);box-shadow:var(--shadow-card);-webkit-backdrop-filter:none;backdrop-filter:none}.settings-button:hover,.download-group button:hover,.secondary-button:hover,.upload-clear:hover{background:var(--color-bg);border-color:var(--color-border-strong)}.mode-switch{background:var(--color-subtle);border-color:var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:none;backdrop-filter:none}.mode-switch button{color:var(--muted)}.mode-switch button.active{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-card)}.setup-card,.results-card,.summary-card,.person-card,.rule-card,.team-summary-card{border-color:var(--border);background:var(--color-surface);box-shadow:var(--shadow-card);-webkit-backdrop-filter:none}.setup-card,.results-card{border-radius:22px}.step,.upload-icon{color:var(--accent);background:var(--color-subtle)}.roster-template-button{border-color:var(--color-border);color:var(--accent);background:var(--color-subtle)}.roster-template-button:hover{border-color:var(--color-border-strong);background:var(--color-subtle)}.upload-tile{background:var(--color-subtle);border-color:var(--color-border)}.upload-tile:hover,.upload-tile.dragging{background:var(--color-subtle);border-color:var(--color-border-strong);box-shadow:var(--shadow-card);transform:none}.upload-tile.has-file{background:var(--color-subtle);border-color:var(--color-border-strong)}.action-row,.table-tools,.results-head,.modal-head,.modal-actions{border-color:var(--border)}.primary-button,.download-group .accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface);box-shadow:var(--shadow-card)}.primary-button:hover:not(:disabled),.download-group .accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-surface)}.primary-button:disabled{background:var(--color-disabled);border-color:var(--color-disabled);color:var(--color-disabled-text)}.primary-button,.download-group .accent,.primary-button:hover:not(:disabled),.download-group .accent:hover{color:var(--color-on-accent)}.table-tools,.missing-view,.current-rules{background:var(--color-subtle)}.search-box,.select-wrap select{border-color:var(--border);background:var(--color-surface);color:var(--color-muted)}.search-box:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-card)}.tabs button.active{color:var(--accent-dark)}.tabs button.active:after{background:var(--accent)}.tab-count,.team-label,.source-badge{color:var(--color-secondary);background:var(--color-subtle)}.source-badge{color:var(--color-secondary)!important}th{color:var(--color-muted);background:var(--color-bg);border-color:var(--border)}td{border-color:var(--color-border)}tbody tr:hover,.settings-rule-row:hover{background:var(--color-subtle)}.filename-cell,.criteria-row>div b,.settings-rule-detail span,.hidden-rule-row strong{color:var(--color-secondary)}.criteria-row>div span,.institution-details small,.criteria-result,.settings-rule-detail small{color:var(--muted)}.checklist-head,.criteria-banner>div{color:var(--color-secondary);background:var(--color-subtle);border-color:var(--border)}.criteria-row,.settings-rules-list,.hidden-rules-list{background:var(--color-surface);border-color:var(--border)}.criteria-row.complete{border-left-color:var(--color-success)}.criteria-row.incomplete{border-left-color:var(--color-danger)}.complete .criteria-state,.team-course-row.complete .team-course-status,.team-missing-count.all-complete{color:var(--color-success)}.status-badge.수료-인정{color:var(--color-success);background:var(--color-success-soft)}.summary-card.success strong,.settings-message{color:var(--color-success)}.progress-track i,.criteria-row i em{background:var(--color-success)}.institution-link,.icon-button{color:var(--color-accent)}.institution-link:hover{color:var(--color-accent-hover)}.icon-button:hover{background:var(--color-subtle)}.team-course-list,.team-course-row,.settings-rule-row,.hidden-rule-row{border-color:var(--border)}.team-course-row{background:var(--color-surface)}.team-course-row.incomplete{background:var(--color-danger-soft)}.requirement-pills>span{background:var(--color-subtle)}.requirement-pills b{color:var(--color-secondary)}.hidden-rules{background:var(--color-subtle)}.setting-help{background:var(--color-subtle);color:var(--color-muted)}.settings-modal{background:var(--color-subtle);border-color:var(--border);-webkit-backdrop-filter:none}.modal-head{background:var(--color-surface)}.modal-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.upload-title,.upload-description,.action-row>span,.tabs button,.criteria-row>strong,.criteria-row>div b,.team-course-row>strong,.person-head span,td,.settings-rule-name strong,.settings-rule-detail span{font-size:var(--font-body);line-height:var(--line-body)}.section-heading h2,.modal-head h2,.checklist-head>span{font-size:var(--font-section)}.settings-button,.download-group button,.mode-switch button,.primary-button,.secondary-button,.upload-actions button{height:auto;min-height:42px;padding-top:9px;padding-bottom:9px}.upload-description{white-space:normal;overflow-wrap:anywhere}.reason{max-width:220px}.source-badge,.hidden-source-badge{font-size:var(--font-secondary)!important}.search-box{min-height:42px}.select-wrap select{height:42px}body{font-family:var(--font-family);font-size:var(--font-body);font-weight:var(--weight-regular);line-height:var(--line-body);color:var(--color-text)}button,input,select,textarea{font-size:var(--font-body);line-height:var(--line-body)}.settings-button,.download-group button,.mode-switch button,.secondary-button,.upload-actions button,.ghost-button,.roster-template-button{font-size:var(--font-control);font-weight:var(--weight-medium)}.primary-button{font-size:var(--font-body);font-weight:var(--weight-semibold)}.upload-description,.action-row>span{font-size:var(--font-secondary);font-weight:var(--weight-regular);line-height:var(--line-body)}.upload-action{font-size:var(--font-control);font-weight:var(--weight-medium)}.roster-template-button{gap:8px;height:auto;min-height:42px;padding:10px 14px}.roster-template-button>span{white-space:nowrap;flex:none;display:block}.section-heading h2,.modal-head h2,.setting-title strong,.checklist-head strong{font-size:var(--font-section);font-weight:var(--weight-section);line-height:var(--line-heading)}.section-heading p,.modal-head p,small,.reason,.setting-title span,.setting-help,.summary-card small,th{font-size:var(--font-secondary);color:var(--color-muted);line-height:var(--line-body)}.criteria-row>strong,.team-course-row>strong,.person-head strong,.upload-title,.settings-rule-name strong{font-size:var(--font-body);font-weight:var(--weight-course)}.summary-card strong,.team-missing-count b{font-size:var(--font-metric);font-weight:var(--weight-bold)}.person-head span,.checklist-head>span{font-size:var(--font-section);font-weight:var(--weight-semibold)}.summary-card.passed strong,.complete .criteria-state,.team-course-row.complete .team-course-status,.settings-message{color:var(--color-success)}.summary-card.failed strong,.incomplete .criteria-state,.team-course-row.incomplete .team-course-status,.team-missing-count{color:var(--color-danger)}.summary-card.review strong{color:var(--color-warning)}.status-badge.조건-미충족{color:var(--color-danger);background:var(--color-danger-soft)}.status-badge.확인-필요,.hold-badge{color:var(--color-warning);background:var(--color-warning-soft)}.status-badge.현황표-외-교육{color:var(--color-secondary);background:var(--color-subtle)}.error-banner{color:var(--color-danger);background:var(--color-danger-soft)}.notice{color:var(--color-warning);background:var(--color-warning-soft)}.upload-title small,.tab-count,.team-label,.source-badge,.hidden-source-badge,.hidden-rule-row>div span{background:var(--color-subtle);color:var(--color-secondary)!important}.upload-tile,.upload-tile.has-file{background:var(--color-surface)}.upload-tile,.upload-clear{transition:transform .16s}.upload-actions button{background:var(--color-surface);border-color:var(--color-border);color:var(--color-accent)}.upload-actions button:hover{background:var(--color-accent-soft)}.upload-actions{flex-shrink:0;justify-content:flex-end;margin-left:auto}.upload-action{margin-left:auto}.upload-clear.is-empty{display:none}.upload-tile:hover,.upload-tile.dragging,tbody tr:hover,.settings-rule-row:hover{background:var(--color-hover)}.upload-description,.action-row>span,.tabs button,.result-count,.reason,.team-member-count,.criteria-result,.team-course-row small,.institution-details small,.rule-card dt,.hidden-rule-row>small,.hidden-rule-row>span,footer{color:var(--color-muted)}.search-box,.search-box input,.select-wrap select{color:var(--color-text);background:var(--color-surface)}input::placeholder{color:var(--color-muted);opacity:1}.mode-switch,.requirement-pills>span,.progress-track,.criteria-row i{background:var(--color-subtle)}.mode-switch button.active,.modal-head{background:var(--color-surface)}.team-summary-card>strong,.team-course-row b,.criteria-row>div b,.rule-card dd{color:var(--color-text)}.team-course-row.incomplete,.settings-rule-row.is-hold{background:var(--color-surface)}.missing-tooltip,.team-roster-tooltip{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border);box-shadow:var(--shadow-popover)}.download-group button[data-tooltip]:after{color:var(--color-tooltip-text);background:var(--color-tooltip);font-size:var(--font-secondary);box-shadow:var(--shadow-popover)}.settings-modal{background:var(--color-surface);box-shadow:var(--shadow-popover)}.settings-content{scrollbar-color:var(--color-border-strong) transparent}.settings-content::-webkit-scrollbar-thumb{background-color:var(--color-border-strong)}.theme-toggle{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.theme-toggle:hover{background:var(--color-hover)}.theme-toggle:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.portal-shell{color:var(--color-text);background:var(--color-bg)}.portal-brand,.portal-main,.portal-footer,.app-shell>main{width:min(var(--content-width), calc(100% - 80px))}.topbar{width:min(var(--content-width), calc(100% - 80px));margin:0 auto;padding:0}.portal-brand{border-bottom:1px solid var(--color-border);min-height:88px;padding:18px 0}.site-brand{color:var(--color-text);white-space:nowrap;font-size:var(--font-brand);font-weight:var(--weight-brand);line-height:var(--line-heading);letter-spacing:-.04em;flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.portal-brand .site-brand>span,.site-brand>span{color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;border:0;padding:0}.site-brand>svg{color:var(--color-muted);flex:0 0 20px}.site-brand>.brand-spacer{visibility:hidden}.site-brand>.brand-split-text{white-space:nowrap;display:inline-block}.site-brand .split-char{color:inherit;font:inherit;letter-spacing:inherit;border:0;margin:0;padding:0}.site-brand:hover>svg{color:var(--color-accent)}.upload-tile>button.upload-action{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px}.upload-tile>button.upload-action:hover{background:var(--color-accent-soft)}.tool-category,.tool-bottom>span,.portal-footer{font-size:var(--font-secondary)}.tool-block h2{font-size:var(--font-page);font-weight:var(--weight-page);line-height:var(--line-heading)}.tool-block p,.portal-brand span{font-size:var(--font-body)}.tool-block{background:var(--color-surface);border-color:var(--color-border)}.tool-block:hover{border-color:var(--color-border-strong)}.page-head{justify-content:flex-start}.education-navigation{align-items:center;gap:20px;min-height:88px;display:flex}.education-brand{font-size:var(--font-brand);font-weight:var(--weight-brand);letter-spacing:-.04em}.topbar{height:auto;padding:0;display:block}.education-navigation{border-bottom:1px solid var(--border);padding:18px 0}.education-navigation .portal-home-link{width:-moz-fit-content;width:fit-content;font-size:var(--font-brand);font-weight:var(--weight-brand);letter-spacing:-.04em;gap:10px;margin:0}.education-navigation .portal-home-link svg{color:var(--muted);flex-shrink:0}.education-navigation .portal-home-link:hover svg{color:var(--accent)}.education-navigation .portal-home-link:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}.education-heading-row{align-items:center;gap:24px;padding:24px 0;display:flex}.education-heading-row .brand-copy{flex:1;min-width:0}.education-heading-row .brand-copy strong{font-size:var(--font-page);font-weight:var(--weight-page);line-height:var(--line-heading);word-break:keep-all}.education-heading-row .brand-copy span{font-size:var(--font-body);line-height:var(--line-body)}.education-heading-row .settings-button{flex-shrink:0}.summary-grid{gap:16px}.summary-card{min-height:154px;box-shadow:none;border-radius:16px;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 24px;display:flex}.summary-card>span{font-size:var(--font-secondary);font-weight:var(--weight-medium);gap:8px}.summary-card>span svg{width:18px;height:18px}.summary-card>strong{font-size:var(--font-metric);line-height:1;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin-top:4px}.summary-card>small{font-size:var(--font-secondary);font-weight:var(--weight-regular);align-self:auto;margin-top:auto}.summary-card.failed{border-color:var(--color-border)}.summary-card .missing-tooltip{gap:7px}.summary-card.failed:after{content:"";min-height:22px}.evidence-toggle{cursor:pointer;width:-moz-fit-content;width:fit-content;color:var(--color-success);font-size:var(--font-secondary);font-weight:var(--weight-semibold);background:0 0;border:0;border-radius:6px;margin-left:-8px;padding:6px 8px;display:inline-flex}.evidence-toggle:hover,.evidence-toggle[aria-expanded=true]{background:var(--color-success-soft)}.evidence-toggle[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.criteria-row>.evidence-panel{background:var(--color-subtle);border-radius:8px;flex-direction:column;grid-column:1/-1;align-items:stretch;gap:12px;padding:16px;display:flex}.evidence-panel>strong{font-size:var(--font-secondary);font-weight:var(--weight-semibold)}.evidence-file{align-items:center;gap:12px;display:flex}.evidence-file>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.evidence-file strong{font-size:var(--font-body);word-break:keep-all;overflow-wrap:anywhere}.evidence-file span{font-size:var(--font-secondary);color:var(--color-muted)}@media (min-width:601px) and (max-width:1120px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.settings-rules-header,.settings-rule-row{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.6fr) minmax(0,1.4fr);align-items:start;gap:24px;padding:18px 20px;display:grid}.settings-rules-header{background:var(--color-subtle);border-bottom:1px solid var(--color-border);color:var(--color-muted);font-size:var(--font-secondary);font-weight:var(--weight-medium)}.download-group .excel-download{color:var(--color-excel);background:var(--color-excel-soft);border-color:#0000}.download-group .excel-download:hover{color:var(--color-excel);background:var(--color-excel-soft);border-color:var(--color-excel)}.team-summary{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;display:grid}.team-summary-card{min-width:0;max-width:none;box-shadow:none;border-radius:12px;gap:12px;padding:20px}.team-summary-card>strong{font-size:var(--font-body);font-weight:var(--weight-medium);line-height:var(--line-body)}.team-summary-card .team-missing-count{line-height:var(--line-body);flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.team-summary-card .team-missing-count b{font-size:var(--font-section);font-weight:var(--weight-semibold);letter-spacing:-.02em}.team-summary-card .team-missing-count>span{font-size:var(--font-body);font-weight:var(--weight-regular)}.team-summary-card .team-member-count,.team-complete-count{color:var(--color-muted)}.team-complete-count{font-size:var(--font-secondary);line-height:var(--line-body)}.team-summary-card .team-missing-count.all-complete{color:var(--color-success)}.modal-actions .settings-action{border:1px solid var(--color-border);min-height:36px;color:var(--color-secondary);font-size:var(--font-secondary);font-weight:var(--weight-medium);line-height:var(--line-body);box-shadow:none;cursor:pointer;background:0 0;border-radius:6px;padding:7px 12px}.modal-actions .settings-action:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-border-strong)}.modal-actions .settings-action.apply{color:var(--color-accent);background:var(--color-accent-soft);border-color:#0000}.modal-actions .settings-action:disabled{color:var(--color-muted);background:var(--color-subtle);border-color:var(--color-border);cursor:not-allowed}.modal-actions .settings-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.settings-rule-name strong{font-size:var(--font-control);line-height:var(--line-body);word-break:keep-all}.settings-requirement{min-width:0;font-size:var(--font-control);line-height:var(--line-body);color:var(--color-text);flex-direction:column;gap:4px;display:flex}.settings-requirement>span{white-space:nowrap}.settings-requirement>small{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;color:var(--color-muted);font-size:var(--font-secondary);margin:-1px;padding:0;position:absolute;overflow:hidden}.settings-rule-row .requirement-pills{flex-direction:column;gap:4px;display:flex}.settings-rule-row .requirement-pills>span{background:0 0;padding:0}.settings-rule-row .requirement-pills b{font-size:var(--font-control);font-weight:var(--weight-medium);color:var(--color-text)}.settings-rule-row .settings-rule-detail span,.settings-institutions{font-size:var(--font-control);line-height:var(--line-body);word-break:keep-all;overflow-wrap:anywhere}.settings-institutions{flex-direction:column;gap:4px;display:flex}.settings-rule-row .requirement-pills small,.settings-rule-row .settings-rule-detail>small{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1000px){.settings-rules-header{display:none}.settings-requirement>small,.settings-rule-row .requirement-pills small,.settings-rule-row .settings-rule-detail>small{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;position:static}.settings-rule-row .requirement-pills{gap:10px}.upload-grid.team{grid-template-columns:1fr}.upload-tile{flex-wrap:wrap;gap:12px;height:auto;min-height:110px}.upload-copy{flex:1;min-width:150px;margin:0}.upload-actions{margin-left:auto}.section-heading{flex-wrap:wrap;gap:16px}.section-heading>div{min-width:0}.section-heading>.section-actions{flex:1 0 100%;justify-content:flex-end}.settings-rule-row{grid-template-columns:1fr 1fr}.criteria-row,.team-course-row{grid-template-columns:90px minmax(0,1fr)}.tabs-row{flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}}@media (max-width:600px){.portal-brand,.portal-main,.portal-footer,.app-shell>main,.topbar{width:calc(100% - 40px)}.topbar{height:auto;padding:0;position:static}.education-heading-row{flex-wrap:wrap;align-items:flex-start;gap:16px;padding:20px 0}.education-heading-row .brand-copy{flex-basis:100%}.education-heading-row .brand-copy strong{font-size:var(--font-page)}.brand-copy{flex:1;min-width:0}.brand-copy strong{font-size:var(--font-section)}.portal-home-link{margin-right:0}.results-head,.action-row,.table-tools{flex-wrap:wrap;gap:12px}.download-group{flex-wrap:wrap;width:100%}.download-group button{flex:180px;justify-content:center}.setting-title{flex-wrap:wrap}.team-label{margin-bottom:12px;display:inline-flex;position:static}.upload-grid.team,.people-grid,.team-summary-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.summary-card{min-height:150px;padding:18px}.upload-tile{flex-wrap:wrap;gap:12px;height:auto;min-height:110px}.upload-copy{flex:1;min-width:150px;margin:0}.upload-actions{justify-content:flex-end;width:100%}.upload-title{flex-wrap:wrap}.settings-rule-row,.hidden-rule-row{grid-template-columns:1fr;gap:14px}.criteria-row{grid-template-columns:1fr;gap:12px}.person-head,.team-course-row,.criteria-banner{grid-template-columns:1fr}.missing-tooltip{max-width:calc(100vw - 72px)}.criteria-row>.criteria-result{text-align:left}.setup-head,.checklist-head{flex-wrap:wrap;gap:12px}.section-heading{flex-wrap:wrap;gap:16px}.section-heading>div{flex:1;min-width:0}.section-heading>.section-actions{flex-wrap:wrap;flex:1 0 100%}.step{flex-shrink:0}.section-heading .roster-template-button{flex:1 0 100%}.roster-template-button,.mode-switch{width:100%}.mode-switch button{flex:1;padding-left:8px;padding-right:8px}.search-box{flex:100%;width:100%}.settings-modal{max-width:calc(100vw - 24px)}}
