:root{font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#202633;background:#f6f6f8;font-synthesis:none;--pink:#d12964;--pink-dark:#b82055;--pink-soft:#fff0f5;--navy:#1d2635;--muted:#727580;--border:#e6e7eb;--green:#26735a;--amber:#946319;--red:#b72e46}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed}button:disabled{opacity:.45}a{color:inherit}svg{display:block;width:20px;height:20px;flex-shrink:0}input[type=checkbox]{accent-color:var(--pink);width:18px;height:18px;flex-shrink:0;cursor:pointer}input[type=checkbox]:disabled{cursor:not-allowed}input:not([type=checkbox]):not([type=file]),select,textarea{color:inherit;background:#fff;border:1px solid #d9dbe2;border-radius:8px;outline:none;width:100%;padding:11px 13px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--pink)!important;box-shadow:0 0 0 3px #d1296416}input:disabled{background:#f5f5f7!important;color:#777}button:focus-visible,a:focus-visible{outline:3px solid #d1296466;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h2{font-size:20px;letter-spacing:-.45px}h3{font-size:17px;letter-spacing:-.25px}h4{font-size:14px}label{font-size:13px;font-weight:600}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--pink)}.wordmark{color:#ed337d;font-weight:850;font-size:31px;line-height:1;letter-spacing:-1.8px}.wordmark>span{color:#a8acb4}.button{border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:650;min-height:43px;padding:11px 17px;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}.button.primary{background:var(--pink);color:#fff;box-shadow:0 2px 3px #d1296412}.button.primary:hover:not(:disabled){background:var(--pink-dark)}.button.secondary{background:#fff;border-color:#dcdfe5;color:#3e4553}.button.secondary:hover:not(:disabled){border-color:#d1296470;background:#fff8fb}.button svg{width:18px;height:18px}.text-button{background:none;border:0;color:var(--pink);font-size:12px;font-weight:600;padding:5px 0}.text-button:hover:not(:disabled){text-decoration:underline}.text-button.muted{color:var(--muted)}.spinner{display:inline-block;border:2px solid #d129642e;border-top-color:var(--pink);border-radius:50%;width:18px;height:18px;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.boot-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;color:var(--muted)}
.site-header{background:var(--navy);border-top:3px solid var(--pink)}.header-inner{max-width:1260px;margin:auto;padding:21px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:22px;text-decoration:none}.brand-divider{height:27px;width:1px;background:#ffffff25}.brand-caption{color:#e3e5ea;font-size:13px;letter-spacing:.2px}.session{display:flex;align-items:center;gap:22px;font-size:12px;color:#bdc3ce}.session-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout{display:flex;align-items:center;gap:7px;color:#fff;background:none;border:1px solid #ffffff25;border-radius:6px;padding:7px 12px;font-size:12px}.logout:hover:not(:disabled){background:#ffffff0b;border-color:#ffffff50}.workspace{max-width:1260px;margin:auto;padding:38px 34px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.page-heading h1{font-size:31px;line-height:1.3;letter-spacing:-1.15px;margin:10px 0 9px;font-weight:730}.page-description{font-size:13px;color:var(--muted);line-height:1.6}.weekly-badge{border:1px solid #e2e3e9;border-radius:50px;font-size:11px;font-weight:600;color:#656b76;white-space:nowrap;display:flex;align-items:center;gap:7px;padding:8px 12px;background:#fff}.weekly-badge>span{font-size:17px;font-weight:400}.steps{list-style:none;margin:0 0 27px;padding:0;display:flex;align-items:center;gap:0}.step{font-size:12px;color:#8c909a;display:flex;align-items:center;gap:9px;font-weight:600}.step:not(:last-child)::after{content:"";height:1px;width:60px;background:#dedfe5;margin:0 20px 0 12px}.step-number{width:25px;height:25px;border:1px solid #dedfe5;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#9295a0;font-size:11px}.step.active{color:var(--pink)}.step.active .step-number{background:var(--pink);border-color:var(--pink);color:#fff}.step.done{color:#5d6e68}.step.done .step-number{background:#e9f4ef;border-color:#d5e9df;color:var(--green)}.card{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 3px 13px #20263303}.source-card{padding:25px 28px 20px}.section-heading{display:flex;align-items:center;gap:13px;margin-bottom:22px}.section-heading p{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5}.section-index{background:var(--pink-soft);color:var(--pink);border:1px solid #f8d8e4;width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:11px;font-weight:700;flex-shrink:0}.file-type{margin-left:auto;border:1px solid #e4e6eb;background:#fafafb;color:#858a93;font-size:10px;letter-spacing:1px;padding:6px 9px;border-radius:5px}.source-grid{display:grid;grid-template-columns:1.03fr 1fr;gap:30px;align-items:center}.upload-area{min-height:123px;display:flex;align-items:center;gap:14px;border:1.5px dashed #d9dce4;border-radius:10px;padding:23px 20px;background:#fcfcfd;transition:background .15s,border-color .15s}.upload-area.dragging{background:var(--pink-soft);border-color:var(--pink)}.upload-area.uploaded{border-style:solid;border-color:#efcbd8;background:#fffafc}.upload-icon{color:var(--pink);display:flex;align-items:center;justify-content:center;background:#ffeaf2;border-radius:10px;width:43px;height:47px;flex-shrink:0}.upload-icon svg{width:24px;height:27px}.upload-copy{min-width:0;flex:1}.upload-copy strong{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.upload-copy>span{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.upload-area .button{min-height:35px;padding:8px 10px;font-size:11px}.date-row{display:flex;align-items:center;gap:12px}.field{flex:1;min-width:0}.field label{display:block;font-size:12px;margin-bottom:8px}.field input[type=date]{font-size:13px;padding:10px 11px;min-height:43px}.date-arrow{margin-top:23px;color:#a1a5ae;font-size:15px}.field-note{font-size:11px;line-height:1.6;color:var(--muted);margin-top:11px}.field-note.error{color:var(--red)}.source-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid #ececf0;margin-top:23px;padding-top:18px}.source-bottom>.button{margin-left:auto}.period-preview{display:flex;gap:24px;flex-wrap:wrap;font-size:10px;color:#787d87}.period-preview>span{display:flex;align-items:center;gap:6px}.period-preview strong{color:#474f5e;font-size:11px;font-weight:600}.period-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.period-dot.previous{background:#9cabc1}.period-dot.current{background:var(--pink)}.notice{background:#fff1f4;border:1px solid #f0c7d2;color:#9f2440;padding:13px 15px;border-radius:9px;display:flex;align-items:start;gap:20px;margin-bottom:20px;font-size:13px;line-height:1.6}.notice p{flex:1;white-space:pre-wrap}.notice button{border:0;background:none;color:inherit;font-size:22px;padding:0;line-height:1.2}.notice.success{background:#edf8f2;border-color:#cfe9dc;color:var(--green)}
.validation-section,.results-section{margin-top:30px;scroll-margin-top:22px}.section-heading.standalone{margin-bottom:17px}.record-summary{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}.validation-grid{display:grid;grid-template-columns:.95fr 1.25fr;gap:20px;align-items:start}.products-panel{overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:21px 23px}.panel-heading p{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.5}.count-badge{font-size:11px;background:#f3f4f7;border-radius:6px;padding:4px 8px;font-weight:650;color:#666c78}.search-field{display:flex;align-items:center;border:1px solid #dce0e7;border-radius:8px;margin:0 23px;gap:9px;padding:0 10px;transition:border-color .15s,box-shadow .15s}.search-field:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px #d1296412}.search-field svg{width:17px;height:17px;color:#959ba7}.search-field input{border:0!important;box-shadow:none!important;font-size:12px;padding:10px 0!important;background:transparent!important}.selection-toolbar{margin:9px 23px 12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.product-list{padding:0 12px 8px;max-height:392px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d8dce4 transparent}.product-row{display:flex;align-items:center;gap:10px;border:1px solid transparent;margin:3px 0;border-radius:8px;padding:3px 11px 3px 12px;transition:background .12s,border-color .12s;background:#fff}.product-row:hover{background:#f8f8fb}.product-row.selected{background:var(--pink-soft);border-color:#f2c8d7}.product-row.focused:not(.selected){border-color:#dce0e8;background:#f8f9fb}.product-row>input{margin:0}.product-main{padding:9px 0;min-width:0;flex:1;background:none;border:0;text-align:left;font-size:13px}.product-main:disabled{opacity:.75}.product-name{display:block;font-weight:600;color:#363d4b;line-height:1.45;overflow-wrap:anywhere}.product-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:#878d98;margin-top:5px;line-height:1.5;flex-wrap:wrap}.status-chip{display:inline-flex;align-items:center;gap:5px;background:#edf7f1;color:var(--green);border-radius:5px;font-size:10px;font-weight:650;padding:4px 7px;white-space:nowrap}.status-chip.warning{background:#fff4df;color:var(--amber)}.status-chip.error{background:#ffedf0;color:var(--red)}.product-meta .status-chip{font-size:9px;padding:2px 5px}.row-arrow{color:#a4abb7;font-size:18px;pointer-events:none}.product-row.selected .row-arrow{color:var(--pink)}.list-footer{border-top:1px solid var(--border);background:#fcfcfd;padding:14px 23px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.list-footer>span:first-child{font-weight:600;color:#545d6a}.empty-search{padding:24px;font-size:12px;color:var(--muted);text-align:center}.detail-panel{padding:24px;min-height:372px;position:sticky;top:22px}.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:21px}.detail-heading h3{font-size:20px;margin-top:8px;line-height:1.4;overflow-wrap:anywhere}.detail-heading .eyebrow{font-size:9px;letter-spacing:1.3px;color:#868d99}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric{border:1px solid #e9ebf0;border-radius:8px;background:#fafbfc;padding:13px 15px}.metric span{font-size:10px;display:block;color:#7b828e}.metric strong{display:block;font-size:24px;line-height:1.3;letter-spacing:-.7px;margin-top:5px;font-weight:700;color:#3d4758;font-variant-numeric:tabular-nums}.current-metric{background:#fff5f8;border-color:#f5dee7}.current-metric strong{color:var(--pink)}.detail-divider{height:1px;background:#eceef2;margin:22px 0 18px}.issue-list{display:grid;gap:8px;margin-top:12px}.issue{display:flex;gap:9px;align-items:start;border-radius:7px;padding:10px 12px;background:#f5f7fa;color:#626b7b;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.issue-icon{font-size:12px;line-height:1.6;flex-shrink:0}.issue.warning{background:#fff8eb;color:#865d26}.issue.error{background:#fff0f3;color:#a63048}.issue.success{background:#eff8f3;color:#3c765f}.issue p{white-space:pre-wrap}.detail-footnote{color:#9298a4;font-size:10px;line-height:1.7;margin-top:19px;border-top:1px solid #eceef2;padding-top:13px}.detail-empty{min-height:322px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:13px;color:var(--muted)}.detail-empty>span{width:53px;height:53px;background:#f4f5f8;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;color:#acb4c2}.detail-empty h3{font-size:15px;color:#697383}.detail-empty p{font-size:12px;line-height:1.7;max-width:260px}.global-issues{margin-bottom:17px;display:grid;gap:8px}.global-issues .issue{border:1px solid #eedde3;font-size:12px}.generation-card{margin-top:20px;padding:23px 26px}.generation-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.generation-heading p{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}.generation-actions{display:flex;align-items:center;gap:11px}.confirmations{border-top:1px solid #ececf0;margin-top:19px;padding-top:17px;display:grid;gap:15px}.confirmation{display:flex;align-items:flex-start;gap:10px;font-weight:400;cursor:pointer;line-height:1.65}.confirmation input{margin:2px 0 0}.confirmation>span{display:flex;flex-direction:column;gap:3px;min-width:0}.confirmation strong{font-size:12px;color:#536073;font-weight:600}.confirmation span span{font-size:11px;color:#818896;overflow-wrap:anywhere}.job-progress{margin-top:20px;border-top:1px solid #ececf0;padding-top:19px}.progress-heading{display:flex;align-items:center;gap:10px;font-size:12px}.progress-heading strong{flex:1;font-weight:600}.progress-heading>span:last-child{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}progress{appearance:none;-webkit-appearance:none;display:block;margin-top:14px;height:5px;width:100%;overflow:hidden;border:none;border-radius:5px;background:#f2e6ec}progress::-webkit-progress-bar{background:#f2e6ec}progress::-webkit-progress-value{background:var(--pink);border-radius:5px;transition:width .25s}progress::-moz-progress-bar{background:var(--pink);border-radius:5px}.job-progress p{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.6;overflow-wrap:anywhere}
.ready-badge{margin-left:auto;font-size:10px;font-weight:600;color:var(--green);display:flex;gap:7px;align-items:center;background:#e8f5ee;border-radius:50px;padding:8px 11px;white-space:nowrap}.files-panel,.messages-panel{margin-top:17px;overflow:hidden}.download-list{padding:0 23px 16px;display:grid;gap:3px}.download-row{display:flex;align-items:center;gap:12px;padding:12px 5px;border-top:1px solid #edf0f4}.download-symbol{width:34px;height:39px;display:flex;align-items:center;justify-content:center;background:#fff0f5;border-radius:7px;color:var(--pink);font-size:9px;font-weight:700;flex-shrink:0}.download-name{flex:1;min-width:0;font-size:12px;font-weight:550;overflow-wrap:anywhere;color:#566174}.download-row a{font-size:11px;font-weight:600;text-decoration:none;color:var(--pink);white-space:nowrap;padding:6px 8px}.download-row a:hover{text-decoration:underline}.message-controls{padding:0 23px;display:flex;align-items:end;gap:20px}.message-controls .field{max-width:400px}.message-controls select{font-size:12px;min-height:43px}.messages-panel textarea{display:block;width:calc(100% - 46px);margin:18px 23px 0;min-height:325px;resize:vertical;font-size:12px;line-height:1.85;white-space:pre-wrap;background:#fafbfc}.message-note{color:#87909f;font-size:11px;padding:12px 23px 18px}.message-note.copied{color:var(--green)}.site-footer{border-top:1px solid #e3e6ec;margin-top:40px;min-height:91px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#959aa5;font-size:10px}.site-footer img{height:auto}.login-screen{min-height:100vh;padding:42px 22px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--navy)}.login-decoration{position:absolute;inset:0;overflow:hidden;pointer-events:none}.login-decoration span{position:absolute;width:550px;height:550px;border:1px solid #d129642c;border-radius:50%;top:calc(50% - 275px);left:calc(50% - 275px)}.login-decoration span:nth-child(2){width:830px;height:830px;top:calc(50% - 415px);left:calc(50% - 415px);border-color:#ffffff09}.login-decoration span:nth-child(3){width:1150px;height:1150px;top:calc(50% - 575px);left:calc(50% - 575px);border-color:#ffffff07}.login-screen::before{content:"";position:absolute;top:-10%;right:-10%;width:50vw;height:50vw;background:radial-gradient(circle,#d1296423,transparent 70%);pointer-events:none}.login-card{position:relative;width:425px;max-width:100%;border:1px solid #ffffff12;border-radius:17px;background:#fff;padding:39px 39px 25px;box-shadow:0 25px 65px #080f2040}.login-card>.wordmark{font-size:37px;margin-bottom:31px}.login-card>.eyebrow{font-size:9px}.login-card h1{font-size:32px;line-height:1.22;letter-spacing:-1px;margin-top:12px;font-weight:730}.login-description{color:#818793;font-size:12px;line-height:1.7;margin-top:14px}.login-card form{margin-top:27px}.login-card form label{display:block;margin:17px 0 7px;font-size:12px}.login-card form input{font-size:13px;min-height:44px}.login-submit{width:100%;margin-top:22px;justify-content:space-between;padding-right:20px}.form-error{font-size:12px;line-height:1.6;color:var(--red);background:#fff0f3;padding:10px 12px;border-radius:6px;margin-top:14px}.login-footer{border-top:1px solid #ececf1;margin-top:31px;padding-top:21px;display:flex;align-items:center;justify-content:space-between;gap:20px}.login-footer img{height:auto}.login-footer>span{color:#9298a3;font-size:9px}.noscript{text-align:center;padding:30px;font-size:14px}
/* Keep long product names, filenames and native date controls inside their columns. */
.source-grid,.validation-grid{grid-template-columns:minmax(0,1.03fr) minmax(0,1fr)}
.validation-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)}
.source-grid>*,.validation-grid>*,.section-heading>div,.panel-heading>div,.detail-heading>div,.generation-heading>div{min-width:0}
.field input[type=date]{display:block;min-width:0;max-width:100%;width:100%}
.field input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
.search-field input{min-width:0}
.notice p,.detail-heading h3,.panel-heading h3,.generation-heading p{overflow-wrap:anywhere}
.button,.logout{min-height:44px}
.brand,.session{min-width:0}
.session{flex-shrink:0}
.brand .wordmark,.brand-divider{flex-shrink:0}
.section-heading .file-type{flex-shrink:0}
.metric{min-width:0}
.metric span{line-height:1.5}
.issue p{min-width:0}
.login-screen{min-height:100svh}

@media(min-width:1100px){
  .upload-copy{max-width:220px}
  .upload-area{gap:12px;padding:23px 15px}
  .upload-area .button{margin-left:auto}
}

@media(max-width:1024px){
  .workspace{padding:29px 25px 0}
  .header-inner{padding:16px 25px}
  .source-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .source-card{padding:23px}
  .upload-area{min-height:104px}
  .upload-area .button{min-height:44px;font-size:13px;padding:10px 14px}
  .date-row{max-width:600px}
  .field input[type=date],.login-card form input,.search-field input,.message-controls select,.messages-panel textarea{font-size:16px;min-height:46px}
  .field input[type=date]{padding:10px}
  .search-field input{padding:12px 0!important}
  .generation-heading{align-items:flex-start;flex-direction:column}
  .generation-actions{align-self:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .generation-actions .button{white-space:normal;line-height:1.5}
  .period-preview{gap:13px}
  .period-preview>span{flex-wrap:wrap}
  .period-preview strong{font-size:11px}
  .weekly-badge{display:none}
  .detail-heading{align-items:start;flex-direction:column;gap:11px}
  .detail-heading h3{font-size:18px}
  .metric{padding:12px}
  .metric span{font-size:11px}
  .metric strong{font-size:23px}
  .text-button{min-height:44px;padding:10px 0;font-size:13px;text-align:left;line-height:1.4}
  input[type=checkbox]{width:22px;height:22px}
  .confirmation{min-height:44px}
  .confirmation strong{font-size:13px}
  .confirmation span span{font-size:12px}
  .product-main{min-height:52px;font-size:14px}
  .product-meta{font-size:11px}
  .product-meta .status-chip{font-size:10px}
  .download-row a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px;font-size:13px}
  .messages-panel textarea{line-height:1.7}
}

@media(max-width:900px){
  .validation-grid{grid-template-columns:minmax(0,1fr);gap:18px}
  .detail-panel{position:static;min-height:0}
  .detail-heading{flex-direction:row;align-items:center}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:730px){
  .workspace{padding:25px max(17px,env(safe-area-inset-right)) 0 max(17px,env(safe-area-inset-left))}
  .header-inner{padding:13px max(17px,env(safe-area-inset-right)) 13px max(17px,env(safe-area-inset-left));gap:12px}
  .brand{gap:0}
  .brand-caption,.brand-divider{display:none}
  .wordmark{font-size:28px}
  .session{gap:10px}
  .session-name{max-width:95px;font-size:12px}
  .logout{padding:8px 10px;font-size:13px}
  .page-heading{margin-bottom:24px}
  .page-heading h1{font-size:27px;letter-spacing:-.85px}
  .page-description{font-size:14px;max-width:420px}
  .steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:10px;margin-bottom:24px}
  .step{position:relative;min-width:0;flex-direction:column;gap:8px;text-align:center;font-size:11px;line-height:1.45}
  .step-number{width:28px;height:28px;flex-shrink:0;font-size:12px;position:relative;z-index:1}
  .step>span:last-of-type{max-width:105px}
  .step:not(:last-child)::after{position:absolute;top:14px;left:calc(50% + 22px);width:calc(100% - 34px);margin:0}
  .source-card{padding:21px 18px 18px}
  .section-heading{gap:10px;align-items:flex-start}
  .section-heading>div{flex:1}
  h2{font-size:18px;line-height:1.35}
  .section-heading p{font-size:12px}
  .upload-area{display:grid;grid-template-columns:35px minmax(0,1fr);padding:17px 12px;gap:12px;min-height:105px}
  .upload-icon{width:35px;height:41px;border-radius:7px}
  .upload-copy{min-width:0;max-width:none}
  .upload-copy strong{font-size:13px}
  .upload-copy>span{font-size:12px}
  .upload-area .button{grid-column:1/-1;width:100%;margin:0;font-size:14px}
  .date-row{gap:10px}
  .field label{font-size:13px}
  .field-note{font-size:12px}
  .date-arrow{font-size:12px}
  .source-bottom{align-items:start;flex-direction:column;padding-top:15px}
  .period-preview{flex-direction:column;gap:10px;font-size:12px}
  .period-preview strong{font-size:12px}
  .source-bottom>.button{width:100%;margin-top:2px;font-size:14px}
  .notice{font-size:13px;gap:10px;padding:12px}
  .notice button{min-width:44px;min-height:44px;margin:-5px -7px -5px 0;flex-shrink:0}
  .validation-grid{gap:15px}
  .detail-panel{padding:20px}
  .detail-heading{align-items:start;flex-direction:column}
  .detail-heading h3{font-size:19px}
  .metric span{font-size:11px}
  .detail-footnote{font-size:12px}
  .issue,.global-issues .issue{font-size:12px;padding:11px}
  .record-summary{font-size:12px;white-space:normal;width:100%;margin-left:45px;line-height:1.5}
  .section-heading.standalone{flex-wrap:wrap}
  .section-heading.standalone>div{flex:1;min-width:0}
  .products-panel .panel-heading,.files-panel .panel-heading,.messages-panel .panel-heading{padding:20px}
  .search-field{margin:0 20px}
  .selection-toolbar{margin:5px 20px 9px;gap:12px}
  .selection-toolbar .text-button:last-child{text-align:right}
  .list-footer{padding:14px 20px;font-size:12px;flex-wrap:wrap}
  .product-list{max-height:360px;padding:0 10px 8px;overscroll-behavior-y:contain}
  .product-row{padding:4px 8px;gap:10px}
  .generation-card{padding:21px 20px}
  .generation-actions{width:100%;gap:10px}
  .generation-actions .button{padding:12px;font-size:13px;gap:7px;min-height:48px}
  .generation-actions .button svg{width:18px;height:18px}
  .generation-heading p{font-size:13px}
  .progress-heading{flex-wrap:wrap;font-size:13px}
  .progress-heading strong{min-width:0;overflow-wrap:anywhere}
  .ready-badge{font-size:11px;margin-left:45px;padding:7px 10px}
  .files-panel .panel-heading,.messages-panel .panel-heading{align-items:stretch;flex-direction:column;gap:13px}
  .panel-heading>.button{font-size:13px;min-height:46px;padding:10px 12px;white-space:normal}
  .panel-heading p{font-size:13px}
  .download-list{padding:0 18px 14px}
  .download-name{font-size:12px;line-height:1.6}
  .download-row{gap:8px;padding:10px 0}
  .download-row a{padding:10px 6px;font-size:12px;flex-shrink:0}
  .message-controls{padding:0 20px;align-items:stretch;flex-direction:column;gap:12px}
  .message-controls .field{max-width:none}
  .message-controls .button{font-size:14px;min-height:46px}
  .message-controls select{overflow:hidden;text-overflow:ellipsis}
  .messages-panel textarea{width:calc(100% - 40px);margin-left:20px;margin-right:20px;min-height:320px;padding:11px;font-size:16px}
  .message-note{padding-left:20px;padding-right:20px;font-size:12px;line-height:1.6}
  .site-footer{margin-top:30px;min-height:82px;font-size:10px;gap:15px;padding-bottom:env(safe-area-inset-bottom)}
  .site-footer img{width:90px}
  .login-screen{padding:24px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .login-card{padding:32px 27px 24px}
  .login-card h1{font-size:30px}
  .login-description{font-size:14px}
  .login-card form label{font-size:14px}
  .login-submit{min-height:48px;font-size:15px}
  .login-footer{gap:15px}
  .login-footer>span{font-size:10px}
}

@media(max-width:480px){
  .date-row{display:grid;grid-template-columns:minmax(0,1fr);gap:15px}
  .date-arrow{display:none}
  .generation-actions{grid-template-columns:minmax(0,1fr)}
  .generation-actions .button{justify-content:center}
}

@media(max-width:360px){
  .workspace{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .header-inner{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .session-name{max-width:75px}
  .source-card{padding-left:15px;padding-right:15px}
  .file-type{font-size:9px;padding:6px}
  .page-heading h1{font-size:25px}
  .step{font-size:10px}
  .detail-panel,.generation-card{padding-left:16px;padding-right:16px}
  .metric{padding:10px}
  .metric span{font-size:10px}
  .login-card{padding-left:22px;padding-right:22px}
  .login-footer{flex-wrap:wrap;gap:12px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
