:root{--ink:#1f2d3d;--muted:#5f7080;--subtle:#8a97a5;--paper:#f5f7f9;--white:#fff;--surface-alt:#f8fafb;--line:#e1e7ec;--line-soft:#edf1f4;--teal:#147b76;--teal-strong:#116a63;--teal-hover:#0e5a54;--teal-soft:#ecf6f5;--teal-line:#c5e3df;--navy:#1b3047;--navy-deep:#15283c;--green:#1d7a4f;--green-soft:#e9f6ef;--green-line:#bfe3cf;--amber:#93590a;--amber-soft:#fdf6e8;--amber-line:#efd8a8;--red:#b3352d;--red-soft:#fcf0ef;--red-line:#efc6c2;--info:#24577f;--info-soft:#eef5fb;--info-line:#cbdff0;--xls-green:#1f7a4f;--gold:#b48a50;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #14283c0d;--shadow:0 1px 3px #14283c0f, 0 8px 24px #14283c0f}*{box-sizing:border-box}body{background:var(--paper);min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{width:100%;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100vh;display:flex}.shell{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:36px 32px 48px}.topbar{background:var(--white);border-bottom:1px solid var(--line);z-index:50;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1040px;margin:0 auto;padding:12px 32px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.mark{background:linear-gradient(145deg, var(--teal), var(--navy));color:#fff;letter-spacing:-.3px;border-radius:9px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.brand-text{min-width:0}.brand-text strong{color:var(--navy);font-size:14.5px;font-weight:650;line-height:1.3;display:block}.brand-text span{color:var(--subtle);font-size:12px;line-height:1.3;display:block}.top-right{align-items:center;gap:12px;display:flex}.links{align-items:center;gap:2px;display:flex}.nav-link-btn{color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:0;padding:7px 11px;font-size:13px;font-weight:500;transition:color .15s,background .15s}.nav-link-btn:hover{color:var(--navy);background:var(--paper)}.lang{border:1px solid var(--line);background:var(--surface-alt);border-radius:8px;align-items:center;gap:2px;padding:3px;display:inline-flex}.lang span{color:var(--subtle);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.lang span.on{background:var(--white);color:var(--teal-strong);box-shadow:var(--shadow-sm)}.reminder-banner{background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber);border-radius:var(--radius);align-items:flex-start;gap:10px;margin-bottom:24px;padding:10px 14px;font-size:13px;display:flex}.intro{margin-bottom:28px}.intro h1{letter-spacing:-.02em;color:var(--navy-deep);max-width:640px;margin:0 0 8px;font-size:26px;font-weight:700;line-height:1.3}.intro p{color:var(--muted);max-width:640px;margin:0;font-size:14.5px}.steps{align-items:center;gap:12px;margin:0 0 20px;padding:0;list-style:none;display:flex}.step{color:var(--subtle);white-space:nowrap;flex:1;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.step:last-child{flex:none}.step:not(:last-child):after{content:"";background:var(--line);border-radius:2px;flex:1;min-width:16px;height:2px}.step.done:not(:last-child):after{background:var(--teal-line)}.num{border:1.5px solid var(--line);background:var(--white);width:26px;height:26px;color:var(--subtle);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:650;transition:all .2s;display:grid}.step.active{color:var(--navy);font-weight:650}.step.active .num{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 0 0 4px #147b761f}.step.done{color:var(--teal-strong)}.step.done .num{background:var(--teal-soft);border-color:var(--teal-line);color:var(--teal-strong)}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.card-head{border-bottom:1px solid var(--line-soft);padding:22px 28px 18px}.card-head h2{color:var(--navy);flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;font-size:17px;font-weight:650;display:flex}.card-head p{color:var(--muted);margin:4px 0 0;font-size:13.5px}.title-en{color:var(--subtle);letter-spacing:0;font-size:.78em;font-weight:500}.card-body{padding:24px 28px}.footer{border-top:1px solid var(--line-soft);background:var(--surface-alt);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 28px;display:flex}.limits{color:var(--subtle);font-size:12.5px}.footer-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.primary,.secondary,.btn-danger-outline{border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;line-height:1.3;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.primary{border:1px solid var(--teal-strong);background:var(--teal-strong);color:#fff;box-shadow:0 1px 2px #11665f33}.primary:hover:not(:disabled){background:var(--teal-hover);border-color:var(--teal-hover)}.secondary{border:1px solid var(--line);background:var(--white);color:var(--navy)}.secondary:hover:not(:disabled){background:var(--paper);border-color:#cdd6de}.btn-danger-outline{border:1px solid var(--red-line);background:var(--white);color:var(--red)}.btn-danger-outline:hover:not(:disabled){background:var(--red-soft)}.btn-ghost{border:1px solid var(--line);background:var(--white);color:var(--muted);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.btn-ghost:hover{background:var(--paper);color:var(--navy)}.icon-btn{width:28px;height:28px;color:inherit;opacity:.75;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{opacity:1;background:#0000000d}.uploads{grid-template-columns:1fr 1fr;gap:18px;padding:24px 28px 4px;display:grid}.drop{background:var(--surface-alt);cursor:pointer;border:1.5px dashed #c9d4dc;border-radius:12px;flex-direction:column;gap:14px;min-height:190px;padding:18px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.drop:hover,.drop:focus-visible{border-color:var(--teal);background:var(--teal-soft);outline:none}.drop:focus-visible{box-shadow:0 0 0 3px #147b762e}.drop.over{border-color:var(--teal);background:var(--teal-soft);border-style:solid;box-shadow:0 0 0 3px #147b7626}.drop.file-ready{border-style:solid;border-color:var(--teal-line);background:var(--white)}.drop-head{align-items:flex-start;gap:12px;display:flex}.drop-title{flex:1;min-width:0}.drop h3{color:var(--navy);margin:1px 0 3px;font-size:14.5px;font-weight:650}.drop p{color:var(--muted);margin:0;font-size:13px}.file-icon{background:var(--info-soft);width:40px;height:40px;color:var(--info);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.file-icon.xls{background:var(--green-soft);color:var(--xls-green)}.tag{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600}.tag.required{background:var(--teal-soft);color:var(--teal-strong)}.tag.optional{background:var(--paper);color:var(--muted);border:1px solid var(--line)}.drop-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.pick{border:1px solid var(--teal-line);background:var(--white);color:var(--teal-strong);border-radius:7px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.pick:hover{background:var(--teal-soft);border-color:var(--teal)}.btn-clear-small{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:12.5px;font-weight:600}.btn-clear-small:hover{background:var(--red-soft);color:var(--red)}.picked-summary{color:var(--green);align-items:center;gap:6px;margin-bottom:8px;font-size:12.5px;font-weight:600;display:flex}.selected-files-list{flex-direction:column;gap:4px;max-height:132px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.selected-file-item{background:var(--surface-alt);border:1px solid var(--line-soft);color:var(--ink);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 4px 10px;font-size:12.5px;display:flex}.selected-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selected-file-meta{color:var(--subtle);flex-shrink:0;align-items:center;gap:4px;font-size:12px;display:flex}.btn-remove-file{width:22px;height:22px;color:var(--subtle);background:0 0;border:0;border-radius:4px;place-items:center;display:inline-grid}.btn-remove-file:hover{background:var(--red-soft);color:var(--red)}.error-banner{border-radius:var(--radius);background:var(--red-soft);border:1px solid var(--red-line);color:var(--red);margin:18px 28px 0;padding:12px 14px 12px 16px;font-size:13px}.error-banner-head{justify-content:space-between;align-items:center;gap:8px;font-weight:650;display:flex}.error-banner-head>span{align-items:center;gap:8px;display:inline-flex}.error-banner ul{color:#8f2b24;margin:6px 0 0;padding-left:26px}.error-banner li{margin-bottom:3px}.privacy{border-radius:var(--radius);background:var(--teal-soft);border:1px solid var(--teal-line);align-items:flex-start;gap:12px;margin:20px 28px 24px;padding:12px 16px;font-size:13px;display:flex}.privacy-icon{color:var(--teal-strong);flex-shrink:0;margin-top:1px}.privacy strong{color:var(--navy);font-weight:600;display:block}.privacy span{color:var(--muted)}.progress-box{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;padding:16px 18px}.progress-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.progress-title{color:var(--navy);overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:600;display:flex}.progress-title .done-icon{color:var(--green);flex-shrink:0}.spin{color:var(--teal);flex-shrink:0;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-track{background:var(--line-soft);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-fill{background:var(--teal);border-radius:999px;height:100%;transition:width .25s}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);padding:12px 14px;position:relative}.stat-tile:before{content:"";background:var(--line);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:0}.stat-tile.green:before{background:var(--green)}.stat-tile.amber:before{background:#d99a2b}.stat-tile.red:before{background:var(--red)}.stat-tile .label{color:var(--muted);margin-bottom:2px;font-size:12px;display:block}.stat-tile .val{color:var(--navy);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.stat-tile.green .val{color:var(--green)}.stat-tile.amber .val{color:var(--amber)}.stat-tile.red .val{color:var(--red)}.notice-box{border-radius:var(--radius);align-items:flex-start;gap:12px;margin-bottom:20px;padding:12px 16px;font-size:13px;display:flex}.notice-box>svg{flex-shrink:0;margin-top:1px}.notice-box>div{flex:1;min-width:0}.notice-box.amber{background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber)}.notice-box.red{background:var(--red-soft);border:1px solid var(--red-line);color:var(--red)}.notice-box.info-state{background:var(--info-soft);border:1px solid var(--info-line);color:var(--info)}.notice-box strong{margin-bottom:2px;font-weight:650;display:block}.notice-box p,.notice-box ul{margin:0}.notice-box ul{padding-left:18px}.notice-box .drop-actions{margin-top:12px}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--subtle);margin:0 0 10px;font-size:12px;font-weight:650}.contract-list{flex-direction:column;gap:8px;display:flex}.contract-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden}.contract-row.status-red{border-color:var(--red-line)}.contract-row.status-amber{border-color:var(--amber-line)}.contract-row-main{align-items:flex-start;gap:14px;padding:12px 16px;display:flex}.contract-info{flex:1;min-width:0}.status-pill{letter-spacing:.03em;border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 9px;font-size:11px;font-weight:700;display:inline-flex}.contract-row-main>.status-pill{min-width:64px;margin-top:1px}.status-pill.green{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}.status-pill.amber{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}.status-pill.red{background:var(--red-soft);border-color:var(--red-line);color:var(--red)}.not-written-tag{background:var(--red);color:#fff;vertical-align:1px;border-radius:5px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.contract-title{color:var(--navy);overflow-wrap:anywhere;font-size:14px;font-weight:600}.contract-sub{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:12.5px}.contract-issues{color:var(--amber);margin:8px 0 0;padding-left:16px;font-size:12.5px}.contract-issues li{margin-bottom:2px}.contract-row.status-red .contract-issues{color:var(--red)}.contract-details{border-top:1px solid var(--line-soft);background:var(--surface-alt);padding:14px 16px;overflow-x:auto}.ui-table{border-collapse:separate;border-spacing:0;background:var(--white);border:1px solid var(--line);border-radius:8px;width:100%;font-size:12.5px;overflow:hidden}.ui-table th,.ui-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);padding:8px 10px}.ui-table tr:last-child td{border-bottom:0}.ui-table th{background:var(--surface-alt);color:var(--muted);border-bottom:1px solid var(--line);font-size:12px;font-weight:600}.ui-table tr.diff-changed td{background:var(--amber-soft)}.choice-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px;display:grid}.choice-card{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--white);cursor:pointer;flex-direction:column;gap:6px;padding:14px 16px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.choice-card:hover{border-color:var(--teal-line)}.choice-card.selected{border-color:var(--teal);background:var(--teal-soft);box-shadow:0 0 0 3px #147b761a}.choice-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.choice-card strong{color:var(--navy);font-size:14px;font-weight:650}.choice-card input[type=radio]{accent-color:var(--teal);flex-shrink:0;width:16px;height:16px;margin:3px 0 0}.choice-card p{color:var(--muted);margin:0;font-size:12.5px}.choice-letter{background:var(--paper);width:20px;height:20px;color:var(--muted);vertical-align:1px;border-radius:5px;place-items:center;margin-right:8px;font-size:11px;font-weight:700;display:inline-grid}.choice-card.selected .choice-letter{background:var(--teal);color:#fff}.default-tag{color:var(--teal-strong);background:var(--white);border:1px solid var(--teal-line);border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:11px;font-weight:600}.decision-section{margin-bottom:28px}.decision-section:last-of-type{margin-bottom:0}.decision-section h3{color:var(--navy);align-items:center;gap:8px;margin:0 0 4px;font-size:15px;font-weight:650;display:flex}.decision-section h3 svg{color:var(--teal)}.decision-section>p{color:var(--muted);margin:0 0 14px;font-size:13px}.match-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);margin-bottom:10px;padding:14px 16px}.match-card:last-child{margin-bottom:0}.match-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.match-card-head+.ui-table{margin-top:12px}.match-names{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.match-names .new-name{color:var(--teal-strong)}.match-names .arrow-sep{color:var(--subtle)}.match-file{color:var(--subtle);font-weight:400}.match-override{border-top:1px dashed var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:12px;font-size:12.5px;display:flex}.override-group{background:var(--paper);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.override-btn{color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:5px 11px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.override-btn:hover{color:var(--navy)}.override-btn.active{background:var(--white);color:var(--teal-strong);box-shadow:var(--shadow-sm), 0 0 0 1px var(--line)}.download-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;display:grid}.download-card{border:1px solid var(--teal-line);background:var(--white);border-radius:12px;flex-direction:column;gap:16px;padding:18px 20px;display:flex}.download-card.secondary-dl{border-color:var(--line)}.download-card .drop-head{align-items:center}.download-card h3{color:var(--navy);margin:0;font-size:15px;font-weight:650}.download-card p{color:var(--muted);margin:0;font-size:13px}.download-card .primary,.download-card .secondary{align-self:flex-start;margin-top:auto}.file-name-code{background:var(--surface-alt);border:1px solid var(--line-soft);color:var(--navy);word-break:break-all;border-radius:6px;margin-top:10px;padding:6px 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;display:block}.privacy.inline{margin:0 0 20px}.report-frame-wrapper{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden}.report-frame-bar{background:var(--surface-alt);border-bottom:1px solid var(--line);color:var(--navy);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.report-frame-bar>span{align-items:center;gap:8px;display:inline-flex}.report-frame-bar code{color:var(--subtle);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;font-weight:500}.report-iframe{background:#fff;border:0;width:100%;height:600px;display:block}.page-footer{text-align:center;color:var(--subtle);padding:0 24px 28px;font-size:12px}.modal-backdrop{z-index:1000;background:#15283c73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--line);flex-direction:column;width:100%;max-width:760px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f203038}.modal-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 24px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--teal);font-size:11px;font-weight:700}.modal-head h2{color:var(--navy);margin:4px 0 0;font-size:18px;font-weight:650}.modal-body{padding:22px 24px;font-size:13.5px;overflow-y:auto}.modal-body>.panel-sections>.panel-section>p{color:var(--ink);margin:0}.modal-foot{border-top:1px solid var(--line-soft);background:var(--surface-alt);justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex}.panel-sections{flex-direction:column;gap:22px;display:flex}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.panel-grid.two-col{grid-template-columns:1fr 1fr}.panel-box{border:1px solid var(--line);background:var(--surface-alt);border-radius:9px;padding:12px 14px}.panel-box h4{color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:600}.panel-box p{color:var(--navy);overflow-wrap:anywhere;margin:0;font-size:13.5px}.mono-strong{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-weight:600}.panel-section h3{color:var(--navy);flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0 0 10px;font-size:14.5px;font-weight:650;display:flex}.panel-list{color:var(--ink);flex-direction:column;gap:7px;margin:0;padding-left:18px;font-size:13.5px;display:flex}.panel-list.compact{gap:4px;font-size:13px}.status-guide-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.status-guide-item{border:1px solid var(--line);border-radius:9px;padding:12px;font-size:12.5px}.status-guide-item p{color:var(--ink);margin:8px 0 0}@media (width<=860px){.step-label{display:none}.step.active .step-label{display:inline}}@media (width<=760px){.shell{padding:24px 16px 36px}.topbar-inner{flex-wrap:wrap;padding:10px 16px}.top-right{justify-content:space-between;width:100%}.intro h1{font-size:22px}.uploads,.choice-cards,.download-grid,.panel-grid.two-col,.status-guide-grid{grid-template-columns:1fr}.uploads,.card-head,.card-body,.footer{padding-left:16px;padding-right:16px}.privacy,.error-banner{margin-left:16px;margin-right:16px}.privacy.inline{margin-left:0;margin-right:0}.contract-row-main{flex-wrap:wrap}}
