:root{color:#1d2924;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1d2924;--muted:#6b7771;--line:#d9e0dc;--line-strong:#c2cec8;--paper:#fff;--surface:#f7f9f7;--green:#176b52;--green-dark:#105340;--green-soft:#e5f2ed;--blue:#2f6797;--blue-soft:#eaf2f8;--amber:#9b681c;--amber-soft:#fff4dc;--red:#b4473c;--red-soft:#fbedeb;letter-spacing:0;background:#eef2ef;font-family:Inter,Microsoft YaHei,PingFang SC,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden}body{min-width:320px}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}.app{background:#eef2ef;height:100vh;min-height:100vh;overflow:hidden}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;display:flex}.brand-mark{color:#fff;background:var(--green);border-radius:6px;place-items:center;width:36px;height:36px;display:grid}.brand strong{font-size:16px;line-height:19px;display:block}.brand span{color:var(--muted);margin-top:1px;font-size:11px;display:block}.topbar-state{color:#56645e;align-items:center;gap:18px;font-size:12px;display:flex}.topbar-state span{align-items:center;gap:6px;display:flex}.topbar-state .global-rating-stat{color:var(--amber);font-weight:700}.app-shell{grid-template-columns:minmax(390px,450px) minmax(0,1fr);gap:16px;height:calc(100vh - 98px);padding:16px;display:grid;overflow:hidden}.app-footer{border-top:1px solid var(--line);color:#7a8580;background:#fff;justify-content:center;align-items:center;height:34px;font-size:10px;display:flex}.input-panel{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:0;padding:18px 20px 28px;overflow-y:auto;box-shadow:0 6px 20px #2439300f}.output-panel{min-width:0;min-height:0;overflow:hidden}.provider-panel{border:1px solid var(--line);background:var(--surface);border-radius:6px}.provider-panel summary{cursor:pointer;color:#32413a;justify-content:space-between;align-items:center;height:44px;padding:0 12px;font-size:13px;font-weight:650;list-style:none;display:flex}.provider-panel summary::-webkit-details-marker{display:none}.provider-panel summary>span{align-items:center;gap:7px;display:flex}.local-state{color:var(--green);font-size:11px;font-weight:600}.provider-body{border-top:1px solid var(--line);padding:0 12px 12px}.provider-tabs{border:1px solid var(--line);background:#edf1ee;border-radius:6px;grid-template-columns:repeat(4,1fr);gap:2px;margin:10px 0;padding:3px;display:grid}.provider-tabs button{text-overflow:ellipsis;color:#65726c;white-space:nowrap;background:0 0;border:0;border-radius:4px;min-width:0;height:30px;padding:0 5px;font-size:11px;overflow:hidden}.provider-tabs button.active{color:var(--ink);background:#fff;font-weight:650;box-shadow:0 1px 2px #20362c1a}.credential-switch{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px;display:grid}.credential-switch button{border:1px solid var(--line);color:#64716b;background:#fff;border-radius:5px;justify-content:center;align-items:center;gap:6px;height:34px;font-size:11px;display:flex}.credential-switch button.active{color:var(--green-dark);background:var(--green-soft);border-color:#96bcad;font-weight:700}.server-key-state{min-height:48px;color:var(--green-dark);background:var(--green-soft);border:1px solid #b7d5ca;border-radius:5px;align-items:center;gap:9px;padding:8px 10px;display:flex}.server-key-state span,.server-key-state strong,.server-key-state small{display:block}.server-key-state strong{font-size:11px}.server-key-state small{color:#59756a;margin-top:2px;font-size:9px}.form-grid{grid-template-columns:1fr;gap:9px;display:grid}.form-field{gap:5px;min-width:0;display:grid}.form-field>span{color:#65716c;font-size:11px;font-weight:600}.form-field input,.form-field select{border:1px solid var(--line-strong);width:100%;height:36px;color:var(--ink);background:#fff;border-radius:5px;outline:none;padding:0 10px;font-size:12px}.form-field input:focus,.form-field select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b521a}.input-with-action{position:relative}.input-with-action input{padding-right:42px}.input-with-action .icon-button{position:absolute;top:3px;right:3px}.provider-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.provider-actions-right{align-items:center;gap:6px;display:flex}.button{color:#fff;background:var(--green);border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 13px;font-size:12px;font-weight:650;display:inline-flex}.button:hover:not(:disabled){background:var(--green-dark)}.button-secondary{color:var(--green);background:#fff;border-color:#b5cdc4}.button-secondary:hover:not(:disabled){background:var(--green-soft)}.button-quiet{color:#47554f;border-color:var(--line);background:#fff}.button-quiet:hover:not(:disabled){background:#f1f4f2}.button-small{min-height:30px;padding:0 9px;font-size:11px}.icon-button{color:#5c6963;background:0 0;border:1px solid #0000;border-radius:5px;flex:0 0 32px;place-items:center;width:32px;height:32px;padding:0;display:grid}.icon-button:hover:not(:disabled){color:var(--ink);border-color:var(--line);background:#f4f6f5}.materials-header{justify-content:space-between;align-items:flex-end;margin:24px 0 9px;display:flex}.eyebrow{color:var(--green);text-transform:uppercase;font-size:11px;font-weight:700}.materials-header h1{margin:4px 0 0;font-size:23px;line-height:29px}.material-count{min-width:38px;color:var(--muted);text-align:right;font-size:12px}.source-section{border-top:1px solid var(--line);padding:14px 0}.section-heading{justify-content:space-between;align-items:center;gap:8px;min-height:30px;margin-bottom:8px;display:flex}.section-title{color:#32413a;white-space:nowrap;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.section-title svg{color:var(--green)}.source-actions{justify-content:flex-end;align-items:center;gap:3px;min-width:0;display:flex}.file-name{text-overflow:ellipsis;max-width:110px;color:var(--blue);white-space:nowrap;font-size:10px;overflow:hidden}textarea{resize:vertical;border:1px solid var(--line-strong);width:100%;color:var(--ink);background:#fbfcfb;border-radius:5px;outline:none;padding:10px 11px;font-size:12px;line-height:1.55}textarea::placeholder,input::placeholder{color:#99a49f}.field-meta{color:#87918d;justify-content:space-between;gap:8px;min-height:17px;margin-top:5px;font-size:10px;display:flex}.field-error{color:var(--red)}.preferences{border-top:1px solid var(--line);padding:14px 0}.preference-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.toggle-row{cursor:pointer;align-items:center;gap:9px;margin-top:12px;display:flex}.toggle-row input{opacity:0;pointer-events:none;position:absolute}.toggle{background:#aeb9b4;border-radius:10px;flex:none;width:34px;height:19px;transition:background .15s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle-row input:checked+.toggle{background:var(--green)}.toggle-row input:checked+.toggle:after{transform:translate(15px)}.toggle-row strong,.toggle-row small{display:block}.toggle-row strong{font-size:12px}.toggle-row small{color:var(--muted);margin-top:2px;font-size:10px}.generate-button{width:100%;height:44px;margin-top:4px;font-size:13px}.ready-hint{color:#87918d;text-align:center;margin-top:7px;font-size:10px}.active-job-summary{min-height:34px;color:var(--green-dark);background:var(--green-soft);grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:7px;padding:7px 9px;font-size:10px;display:grid}.active-job-summary span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.active-job-summary strong{font-size:11px}.draft-state{color:#87918d;text-align:center;margin-top:7px;font-size:10px}.draft-error{color:var(--red)}.result-workspace{border:1px solid var(--line);background:#fff;border-radius:7px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden;box-shadow:0 8px 24px #24393012}.result-toolbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:0 10px 0 16px;display:flex}.result-tabs{align-items:stretch;gap:18px;height:50px;display:flex}.result-tabs button{color:#76817c;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:12px;display:flex;position:relative}.result-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:0;left:0;right:0}.result-tabs button.active{color:var(--ink);font-weight:700}.result-tabs button.active:after{background:var(--green)}.tab-dot{border-radius:50%;width:6px;height:6px}.tab-dot.ok{background:var(--green)}.tab-dot.bad{background:var(--red)}.export-actions{align-items:center;gap:3px;display:flex}.result-content{background:#f3f5f3;flex:1;min-height:0;overflow:auto}.empty-result{height:100%;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-mark{width:54px;height:54px;color:var(--green);background:var(--green-soft);border:1px solid #bdd0c7;border-radius:7px;place-items:center;display:grid}.empty-result h2{color:#34423c;margin:14px 0 3px;font-size:17px}.empty-result p{margin:0;font-size:12px}.progress-panel{border:1px solid var(--line);background:#fff;border-radius:7px;height:100%;min-height:0;padding:clamp(24px,6vw,64px);overflow:auto;box-shadow:0 8px 24px #24393012}.progress-panel>svg{color:var(--green);margin:14vh auto 16px;display:block}.progress-panel>h2,.progress-panel>p{text-align:center}.progress-panel>h2{margin:0 0 5px;font-size:18px}.progress-panel>p{color:var(--muted);margin:0;font-size:12px}.progress-heading{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.progress-heading h2{overflow-wrap:anywhere;max-width:720px;margin:5px 0 0;font-size:20px;line-height:28px}.progress-percent{color:var(--green);font-size:28px;line-height:32px}.progress-track{background:#e5ebe7;border-radius:4px;height:8px;margin:22px 0 24px;overflow:hidden}.progress-track span{background:var(--green);border-radius:4px;height:100%;transition:width .3s;display:block}.progress-failed .progress-track span{background:var(--red)}.stream-ticker{color:#dce9e3;background:#26362f;grid-template-columns:84px minmax(0,1fr);align-items:center;height:38px;margin:-7px 0 22px;font-size:10px;display:grid;overflow:hidden}.stream-ticker>span{color:#a9cfbf;border-right:1px solid #42534b;align-items:center;gap:5px;height:100%;padding:0 10px;font-weight:700;display:flex}.stream-window{min-width:0;height:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 13% 100%);mask-image:linear-gradient(90deg,#0000 0,#000 13% 100%)}.stream-window code{color:#fff;white-space:nowrap;text-align:right;width:max-content;min-width:100%;position:absolute;top:11px;right:10px;overflow:visible}.stream-window code:after{content:"";vertical-align:-2px;background:#8ed1b5;width:1px;height:11px;margin-left:3px;animation:.8s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{50%{opacity:0}}.progress-stages{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.progress-stage{color:#929d98;text-align:center;flex-direction:column;align-items:center;gap:7px;min-width:0;font-size:11px;display:flex}.stage-icon{border:1px solid var(--line-strong);color:#7a8781;background:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;font-weight:700;display:grid}.stage-done,.stage-active{color:var(--green-dark);font-weight:700}.stage-done .stage-icon{color:#fff;border-color:var(--green);background:var(--green)}.stage-active .stage-icon{border:2px solid var(--green);color:var(--green);background:var(--green-soft)}.stage-skipped{color:#78837e}.stage-skipped .stage-icon{border-style:dashed}.stage-failed{color:var(--red);font-weight:700}.stage-failed .stage-icon{color:#fff;border-color:var(--red);background:var(--red)}.job-health{background:var(--surface);border-left:3px solid;align-items:center;gap:10px;min-height:62px;margin-top:28px;padding:12px 14px;display:flex}.job-health>div{min-width:0}.job-health strong,.job-health span{align-items:center;gap:5px;display:flex}.job-health strong{font-size:12px}.job-health span{color:var(--muted);margin-top:4px;font-size:10px}.health-healthy{color:var(--green);border-color:var(--green)}.health-slow,.health-warning{color:var(--amber);border-color:var(--amber);background:var(--amber-soft)}.health-error{color:var(--red);border-color:var(--red);background:var(--red-soft)}.job-error{color:#8d342d;background:var(--red-soft);border:1px solid #e0b4af;margin-top:14px;padding:14px}.job-error strong,.job-error>span{display:block}.job-error strong{font-size:13px;line-height:20px}.job-error>span{margin-top:5px;font-size:11px;line-height:17px}.job-error details{margin-top:9px;font-size:10px}.job-error summary{cursor:pointer}.job-error code{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:6px;display:block}.error-quota{color:#83530e;background:var(--amber-soft);border-color:#e0c28a}.background-note{color:#738079!important;text-align:left!important;margin:14px 0 0!important;font-size:10px!important}.rating-summary{color:var(--amber);white-space:nowrap;align-items:center;gap:3px;margin-right:3px;font-size:10px;font-weight:700;display:flex}.rating-trigger{color:var(--amber)}.rating-trigger.rated{background:var(--amber-soft);border-color:#dfc38e}.rating-bar{background:var(--amber-soft);border-bottom:1px solid #e4ca9a;align-items:center;gap:12px;min-height:54px;padding:8px 12px 8px 16px;display:flex}.rating-bar-copy{min-width:170px;margin-right:auto}.rating-bar-copy strong,.rating-bar-copy span{display:block}.rating-bar-copy strong{color:#6f4c17;font-size:11px}.rating-bar-copy span{color:#8c6a35;margin-top:2px;font-size:9px}.rating-stars{align-items:center;gap:2px;display:flex}.rating-stars button{color:#b5a382;background:0 0;border:0;place-items:center;width:30px;height:30px;padding:0;display:grid}.rating-stars button.selected{color:#c68420}.rating-stars button:disabled{opacity:1}.resume-preview{color:#202824;background:#fff;width:min(820px,100% - 48px);min-height:calc(100% - 48px);margin:24px auto;padding:48px 56px;font-family:Arial,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.55;box-shadow:0 3px 14px #23322b1a}.resume-preview h1{color:#173f34;text-align:center;margin:0 0 5px;font-size:28px;line-height:34px}.resume-preview h1+p{color:#53615b;text-align:center}.resume-preview h2{color:var(--green);border-bottom:2px solid #8db5a8;margin:20px 0 8px;padding-bottom:4px;font-size:15px;line-height:21px}.resume-preview h3{margin:12px 0 4px;font-size:13px;line-height:19px}.resume-preview p{margin:4px 0 7px}.resume-preview ul{margin:5px 0 10px;padding-left:20px}.resume-preview li{margin:3px 0}.resume-preview a{color:var(--blue)}.resume-editor{resize:none;background:#fff;border:0;border-radius:0;height:100%;min-height:580px;padding:28px 32px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.7}.resume-editor:focus{box-shadow:inset 0 0 0 2px #176b522e}.analysis-view,.audit-view{background:#fff;width:min(920px,100% - 48px);margin:24px auto;padding:28px}.analysis-overview{border-bottom:1px solid var(--line);grid-template-columns:112px 1fr;align-items:center;gap:24px;padding-bottom:24px;display:grid}.analysis-overview h2{margin:5px 0 7px;font-size:20px}.analysis-overview p{color:#5f6c66;margin:0;font-size:13px;line-height:1.65}.score{--score:0deg;background:conic-gradient(var(--green) var(--score), #dce5e0 0);border-radius:50%;place-items:center;width:100px;height:100px;display:grid;position:relative}.score:before{content:"";background:#fff;border-radius:50%;width:78px;height:78px;position:absolute}.score div{z-index:1;text-align:center;position:relative}.score strong{font-size:25px;display:block}.score span{color:var(--muted);font-size:10px;display:block}.analysis-columns{grid-template-columns:1fr 1fr;gap:24px;padding:24px 0;display:grid}.analysis-columns section:first-child{border-right:1px solid var(--line);padding-right:24px}.analysis-view h3,.audit-view h3{align-items:center;gap:7px;margin:0 0 10px;font-size:14px;display:flex}.analysis-view ul,.audit-view ul{color:#4f5c56;margin:0;padding-left:19px;font-size:12px;line-height:1.65}.analysis-view li,.audit-view li{margin:5px 0}.requirements-section,.changes-section{border-top:1px solid var(--line);padding-top:22px}.changes-section{margin-top:22px}.requirements-table{border:1px solid var(--line)}.requirements-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 82px 112px;align-items:center;gap:10px;min-height:42px;padding:7px 10px;font-size:12px;display:grid}.requirements-row:first-child{border-top:0}.requirements-head{min-height:34px;color:var(--muted);background:var(--surface);font-size:10px;font-weight:700}.tag{overflow-wrap:anywhere;border-radius:4px;width:fit-content;max-width:100%;padding:3px 6px;font-size:10px}.priority-must{color:var(--red);background:var(--red-soft)}.priority-core{color:var(--blue);background:var(--blue-soft)}.priority-plus{color:var(--muted);background:#edf1ef}.status-direct{color:var(--green);background:var(--green-soft)}.status-transferable,.status-keyword-only{color:var(--amber);background:var(--amber-soft)}.status-gap{color:var(--red);background:var(--red-soft)}.audit-banner{border:1px solid;border-radius:6px;align-items:center;gap:12px;min-height:72px;padding:14px 16px;display:flex}.audit-banner strong,.audit-banner span{display:block}.audit-banner strong{font-size:14px}.audit-banner span{margin-top:3px;font-size:11px}.audit-valid{color:var(--green-dark);background:var(--green-soft);border-color:#b7d5ca}.audit-invalid{color:#8d342d;background:var(--red-soft);border-color:#e0b4af}.audit-metrics{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:20px 0;display:grid}.audit-metrics>div{border-left:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;min-height:74px;display:flex}.audit-metrics>div:first-child{border-left:0}.audit-metrics strong{font-size:21px}.audit-metrics span{color:var(--muted);margin-top:3px;font-size:10px}.audit-list{border-left:3px solid;margin-top:16px;padding:15px}.audit-errors{border-color:var(--red);background:var(--red-soft)}.audit-warnings{border-color:var(--amber);background:var(--amber-soft)}.audit-empty{color:var(--green);border:1px dashed #b7d5ca;justify-content:center;align-items:center;gap:8px;padding:28px;display:flex}.toast{z-index:50;background:#fff;border:1px solid;border-radius:6px;align-items:center;gap:9px;max-width:min(460px,100vw - 32px);min-height:44px;padding:10px 14px;font-size:12px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 30px #1b2b2429}.toast-success{color:var(--green-dark);border-color:#a7c9bc}.toast-error{color:#8d342d;border-color:#dfb0ab}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=980px){html,body,#root,.app{height:auto;overflow:visible}.app-shell{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 98px);overflow:visible}.input-panel{overflow:visible}.output-panel{min-height:720px}.result-workspace{min-height:680px}}@media (width<=640px){.topbar{height:58px;padding:0 14px}.topbar-state>span:not(.global-rating-stat){display:none}.app-shell{gap:10px;min-height:calc(100vh - 92px);padding:10px}.input-panel{padding:14px}.provider-tabs{grid-template-columns:repeat(2,1fr)}.section-heading{align-items:flex-start}.source-actions{flex-wrap:wrap}.file-name{width:100%;max-width:95px}.output-panel{min-height:650px}.progress-panel{min-height:650px;padding:28px 18px}.progress-heading h2{font-size:16px;line-height:23px}.progress-percent{font-size:22px}.progress-stages{gap:3px}.progress-stage{font-size:9px}.stream-ticker{grid-template-columns:84px minmax(0,1fr)}.rating-summary{display:none}.rating-bar{flex-wrap:wrap;gap:6px 10px}.rating-bar-copy{width:100%}.result-toolbar{align-items:flex-start;padding:0 9px;overflow-x:auto}.result-tabs{flex:none;gap:14px}.export-actions{flex:none;height:50px}.resume-preview{width:calc(100% - 20px);margin:10px auto;padding:30px 24px}.analysis-view,.audit-view{width:calc(100% - 20px);margin:10px auto;padding:20px}.analysis-overview,.analysis-columns{grid-template-columns:1fr}.analysis-columns section:first-child{border-right:0;border-bottom:1px solid var(--line);padding:0 0 18px}.requirements-row{grid-template-columns:minmax(0,1fr) 60px 85px;font-size:11px}.audit-metrics{grid-template-columns:1fr 1fr}.audit-metrics>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.audit-metrics>div:nth-child(4){border-top:1px solid var(--line)}}@media print{body{background:#fff}.topbar,.input-panel,.result-toolbar,.app-footer,.toast{display:none!important}.app-shell,.output-panel,.result-workspace,.result-content{height:auto;box-shadow:none;background:#fff;border:0;padding:0;display:block;overflow:visible}.result-content>:not(.print-target){display:none!important}.resume-preview{width:100%;min-height:0;box-shadow:none;margin:0;padding:0}}
