:root{--bg:#f5f7fb;--panel:#fff;--ink:#172132;--muted:#546079;--accent:#0d6e6e;--border:#d7deea}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#e8f4ff 0,var(--bg) 40%,#eef3f8 100%);color:var(--ink);font-family:IBM Plex Sans,Segoe UI,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.nav{padding:1.2rem;border-right:1px solid var(--border);background:linear-gradient(180deg,#10243c,#16314d)}.nav h1{color:#f6fbff;margin:0 0 1.2rem;font-size:1.2rem}.nav a{display:block;color:#c6d6f0;text-decoration:none;padding:.55rem .6rem;margin:.2rem 0;border-radius:.4rem}.nav a:hover{background:#214464;color:#fff}.content{padding:1.2rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:.8rem;padding:1rem}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.6rem;gap:.6rem;margin-bottom:.9rem}.config-grid button,.config-grid input,.config-grid textarea,.decision-form button,.decision-form select,.decision-form textarea,.filters button,.filters input,.filters select{width:100%;border:1px solid var(--border);border-radius:.45rem;padding:.45rem .55rem;font:inherit;background:#fff}.detail-grid{display:grid;grid-template-columns:1fr 340px;grid-gap:1rem;gap:1rem;margin-bottom:1rem}.detail-grid dl{margin:0;display:grid;grid-template-columns:140px 1fr;grid-gap:.4rem .6rem;gap:.4rem .6rem}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0}.decision-form{border:1px solid var(--border);border-radius:.6rem;padding:.8rem;background:#f8fbff}.decision-row{margin-bottom:.6rem}.decision-row label{display:block;margin-bottom:.25rem;font-size:.86rem;color:var(--muted)}.error{color:#9f2828;font-size:.88rem}.config-grid{display:grid;grid-gap:.7rem;gap:.7rem}.config-grid label{display:grid;grid-gap:.35rem;gap:.35rem}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:.8rem;gap:.8rem;margin-bottom:1rem}.kpi{border:1px solid var(--border);border-radius:.7rem;background:#f8fbff;padding:.8rem}.kpi strong{display:block;font-size:1.3rem;margin-top:.4rem}h2{margin:0 0 .8rem}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid var(--border);text-align:left;padding:.6rem;font-size:.92rem}.badge{display:inline-block;border-radius:999px;padding:.2rem .5rem;background:#e7f4f4;color:var(--accent);font-size:.78rem;font-weight:600}.approval-back-link{margin:0 0 .8rem}.approval-back-link a{color:#1b5fa7;text-decoration:none}.approval-review-page{min-width:0}.approval-topbar{display:flex;align-items:center;gap:.9rem;min-height:44px;padding:.75rem 1rem;border:1px solid #dfddd7;border-radius:.9rem;background:#fffdfa;box-shadow:0 12px 30px rgba(29,34,45,.06)}.approval-case-head{min-width:280px;max-width:44%}.approval-case-title{font-size:.92rem;font-weight:700;color:#201d18}.approval-case-meta,.approval-case-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approval-case-meta{margin-top:.2rem;font-size:.77rem;color:#6c665b}.approval-topbar-badges{display:flex;align-items:center;gap:.45rem;margin-left:auto}.review-pill{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:.25rem .6rem;font-size:.72rem;font-weight:700}.review-pill.blocking{background:#fdf0ef;border-color:#f5c0bb;color:#c0392b}.review-pill.warning{background:#fdf5ec;border-color:#f5d9b0;color:#b7621a}.review-pill.ai{background:#f1f5f9;border-color:#d8e0ea;color:#445469}.approval-topbar-actions{display:flex;gap:.55rem}.attachment-tab,.issue-card,.review-action,.review-field,.review-link-button{font:inherit}.review-action{border:1px solid #d3d5da;border-radius:.45rem;padding:.45rem .8rem;background:#fff;cursor:pointer}.review-action.primary{background:#17324a;border-color:#17324a;color:#fff}.review-action.request{background:#fff4ea;border-color:#efc59d;color:#ab5818}.review-action.neutral{background:#f7f7f5;border-color:#dad7cf;color:#403b33}.review-action.danger{background:#c0392b;border-color:#c0392b;color:#fff}.review-action:disabled{opacity:.55;cursor:not-allowed}.review-banner{margin-top:.8rem;border-radius:.75rem;padding:.75rem .9rem;font-size:.92rem}.review-banner.error{background:#fdf1f0;color:#992f24;border:1px solid #f0c8c2}.review-banner.success{background:#eff7f2;color:#1e7445;border:1px solid #c4e3cf}.approval-review-layout{margin-top:1rem;display:grid;grid-template-columns:var(--left-panel-width,260px) 10px minmax(0,1fr) 10px var(--right-panel-width,320px);grid-gap:1rem;gap:1rem;min-height:calc(100vh - 190px)}.review-centre-panel,.review-left-panel,.review-right-panel{min-height:0}.panel-resize-handle{width:10px;border:0;border-radius:999px;background:linear-gradient(180deg,rgba(145,152,166,.18),rgba(145,152,166,.45));cursor:col-resize;touch-action:none;align-self:stretch}.approval-review-layout.resizing .panel-resize-handle{background:linear-gradient(180deg,rgba(57,112,170,.25),rgba(57,112,170,.65))}.review-left-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:.85rem;gap:.85rem}.review-card,.review-centre-panel,.review-right-panel{border:1px solid #dfddd7;border-radius:.9rem;background:#fffdfa;box-shadow:0 12px 30px rgba(29,34,45,.05)}.review-card{padding:.9rem}.review-card.compact{padding-bottom:.8rem}.review-card.issues{overflow:auto}.review-panel-label,.review-section-label{font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6f6a61}.email-summary-row{display:grid;grid-template-columns:48px 1fr;grid-gap:.5rem;gap:.5rem;margin-top:.7rem;font-size:.76rem}.email-summary-key{color:#8c877d}.email-summary-value{color:#312d27}.email-summary-value.strong{font-weight:600}.review-link-button{display:inline-flex;align-items:center;gap:.35rem;margin-top:.8rem;padding:0;border:0;background:transparent;color:#1a5fa0;cursor:pointer;text-decoration:none}.issues-group-heading{margin:1rem 0 .45rem;font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7a7468}.issue-card{width:100%;text-align:left;margin-top:.45rem;border:1px solid #e1ddd6;border-left-width:3px;border-radius:.45rem;background:#fff;padding:.55rem .65rem;cursor:pointer}.issue-card.blocking{border-left-color:#c0392b}.issue-card.warning{border-left-color:#b7621a}.issue-card.active{border-color:#b7d1ec;box-shadow:0 0 0 2px rgba(26,95,160,.12)}.issue-card.resolved .issue-card-title{text-decoration:line-through;color:#1a7a45}.issue-card-head{display:flex;gap:.55rem;align-items:flex-start}.issue-card-title{font-size:.78rem;font-weight:700;color:#28231d;line-height:1.4}.issue-card-target{margin-top:.25rem;font-size:.72rem;color:#7c756a}.reply-draft-input{width:100%;margin-top:.7rem;border:1px solid #ddd9d0;border-radius:.55rem;padding:.7rem;background:#fff;color:#2b2823;resize:vertical;font:inherit}.reply-actions{display:flex;justify-content:flex-end;margin-top:.75rem}.review-centre-panel{overflow:auto;padding:1rem 1.05rem 1.2rem}.review-form-header{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:.75rem;margin:-1rem -1.05rem 1rem;padding:.85rem 1.05rem;border-bottom:1px solid #ebe6de;background:rgba(255,253,250,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.centre-mode-toggle{margin-left:auto;display:inline-flex;border:1px solid #dad6cc;border-radius:999px;background:#f8f4ec;padding:.15rem}.centre-mode-button{border:0;border-radius:999px;background:transparent;color:#645d53;padding:.24rem .65rem;font-size:.7rem;font-weight:600;cursor:pointer}.centre-mode-button.active{background:#17324a;color:#fff}.review-form-title{font-size:.86rem;font-weight:700;color:#231f1b}.review-form-count{font-size:.74rem;color:#a04e18}.review-section{margin-top:1.25rem}.review-section-rule{height:1px;margin:.45rem 0 .85rem;background:#ebe6de}.review-grid{display:grid;grid-gap:.5rem;gap:.5rem}.review-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.review-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.review-field{display:flex;flex-direction:column;align-items:flex-start;min-height:88px;border:1px solid #e1ddd6;border-radius:.45rem;padding:.55rem .65rem;background:#f9f8f6;text-align:left;cursor:pointer}.review-field.active{outline:2px solid rgba(26,95,160,.35);outline-offset:2px}.review-field.flagged.blocking{background:#fdf0ef;border-color:#f5c0bb}.review-field.flagged.warning{background:#fdf5ec;border-color:#f5d9b0}.review-field-label-row{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.review-field-label{font-size:.67rem;color:#766f64}.review-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.12rem .45rem;font-size:.64rem;font-weight:700}.review-chip.blocking{background:#f8d9d5;color:#a83427}.review-chip.warning{background:#f7e5c9;color:#a45c19}.review-field-value{margin-top:.45rem;font-size:.9rem;font-weight:600;color:#1f1b17;line-height:1.4;word-break:break-word}.review-field-value.empty{font-style:italic;color:#8d877c}.review-field-hint{margin-top:.55rem;font-size:.72rem;line-height:1.45}.review-field-hint.blocking{color:#9b2d22}.review-field-hint.warning{color:#9a5617}.goods-item-list{display:grid;grid-gap:.6rem;gap:.6rem}.goods-item-card{display:flex;gap:.8rem;border:1px solid #e1ddd6;border-radius:.5rem;background:#f9f8f6;padding:.7rem .85rem}.goods-item-card.blocking{background:#fdf0ef;border-color:#f5c0bb}.goods-item-card.warning{background:#fdf5ec;border-color:#f5d9b0}.goods-item-number{min-width:46px;font-size:.68rem;font-weight:700;color:#766f64;text-transform:uppercase}.goods-item-body{min-width:0;flex:1 1}.goods-item-title{font-size:.9rem;font-weight:700;color:#1f1b17}.goods-item-summary{margin-top:.22rem;font-size:.74rem;color:#6d675e}.goods-item-grid{margin-top:.7rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.4rem .8rem;gap:.4rem .8rem}.goods-detail-row{display:flex;justify-content:space-between;gap:.6rem;font-size:.75rem;color:#625d55}.goods-detail-row strong{color:#211d18;text-align:right}.review-right-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);grid-gap:.75rem;gap:.75rem;padding:.95rem}.attachment-tab.disabled{opacity:.55;border-style:dashed}.attachment-tabs{display:grid;grid-gap:.35rem;gap:.35rem}.attachment-tab{display:flex;align-items:center;justify-content:space-between;gap:.7rem;width:100%;border:1px solid #ddd9d0;border-radius:.45rem;background:#fff;padding:.55rem .7rem;cursor:pointer;text-align:left}.attachment-tab.active{background:#edf4fc;border-color:#bdd5ee;color:#1a5fa0}.attachment-name{min-width:0;font-size:.76rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip{border-radius:999px;background:#f1eee8;padding:.18rem .45rem;font-size:.63rem;font-weight:700}.attachment-viewer{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid #e1ddd6;border-radius:.7rem;overflow:hidden;background:#ebe6de}.attachment-viewer-head{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.7rem .8rem;background:#f7f3eb;border-bottom:1px solid #dbd3c8;font-size:.74rem;color:#534c42}.attachment-viewer-body{min-height:0;overflow:auto;background:#e8e5e0}.attachment-text-preview{margin:0;padding:.9rem;white-space:pre-wrap;font-family:IBM Plex Mono,SFMono-Regular,Menlo,monospace;font-size:.76rem;line-height:1.5;color:#1e2633;background:#fff}.import-layout-section{border:1px solid #e6e1d9;border-radius:.65rem;background:#fcfaf6;padding:.85rem}.import-layout-table{display:grid;grid-gap:.6rem;gap:.6rem}.import-layout-table.two{grid-template-columns:repeat(2,minmax(0,1fr))}.import-layout-table.three{grid-template-columns:repeat(3,minmax(0,1fr))}.import-layout-table.four{grid-template-columns:repeat(4,minmax(0,1fr))}.import-layout-cell{border:1px solid #ded8cc;border-radius:.5rem;background:#fff;padding:.6rem}.import-layout-cell.readonly{display:grid;grid-gap:.25rem;gap:.25rem}.import-layout-cell-label{font-size:.67rem;text-transform:uppercase;letter-spacing:.04em;color:#736b61}.import-form-field{border:1px solid #ded8cc;border-radius:.5rem;background:#fff;padding:.55rem;display:grid;grid-gap:.35rem;gap:.35rem}.import-form-field.flagged.blocking{border-color:#f5c0bb;background:#fdf0ef}.import-form-field.flagged.warning{border-color:#f5d9b0;background:#fdf5ec}.import-form-label-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.7rem;color:#6f675e}.import-form-field input,.import-form-field select{width:100%;border:1px solid #d9d4ca;border-radius:.45rem;padding:.45rem .55rem;font:inherit;color:#1f1b17;background:#fff}.import-items-actions{display:flex;justify-content:flex-end;margin-bottom:.6rem}.import-item-card,.import-item-cards{display:grid;grid-gap:.7rem;gap:.7rem}.import-item-card{border:1px solid #ddd8cd;border-radius:.65rem;background:#fff;padding:.75rem}.import-item-card.blocking{border-color:#f5c0bb;background:#fdf7f6}.import-item-card.warning{border-color:#f2dbba;background:#fdfaf6}.import-item-card-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.import-item-card-head h3{margin:0;font-size:.85rem;color:#231f1b}.import-item-documents{border:1px solid #e3ddd2;border-radius:.55rem;background:#fcfaf6;padding:.65rem}.import-item-documents-head{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.5rem}.import-documents-table-wrap{overflow:auto}.import-documents-table{width:100%;border-collapse:collapse;min-width:760px}.import-documents-table td,.import-documents-table th{border:1px solid #e2ddd3;padding:.4rem;text-align:left;vertical-align:top}.import-documents-table th{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#6d665d;background:#f4efe5}.import-documents-table td{background:#fff}.import-documents-table td.empty{text-align:center;color:#7f786e;font-size:.76rem;font-style:italic}.import-documents-table td input{width:100%;border:1px solid #d9d4ca;border-radius:.4rem;padding:.35rem .45rem;font:inherit;background:#fff}.review-action.subtle{padding:.28rem .5rem;font-size:.67rem}.attachment-frame,.attachment-image{display:block;width:100%;min-height:560px;border:0}.attachment-image{object-fit:contain;background:#fff}.review-empty{padding:.8rem 0;color:#7d776c;font-size:.78rem}.review-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;background:rgba(18,22,28,.36);z-index:40}.review-modal{width:min(920px,100%);max-height:min(760px,100%);overflow:auto;border-radius:.9rem;background:#fffdfa;border:1px solid #ddd9d0;padding:1rem;box-shadow:0 20px 50px rgba(16,24,40,.2)}.review-modal.narrow{width:min(520px,100%)}.review-modal-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center;margin-bottom:.8rem}.review-email-body{margin:0;white-space:pre-wrap;font:inherit;line-height:1.55;color:#2b2823}.review-modal-label{display:block;margin-bottom:.4rem;font-size:.82rem;color:#635d54}.review-modal-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.8rem}@media (max-width:900px){.shell{grid-template-columns:1fr}.nav{border-right:0;border-bottom:1px solid var(--border);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.nav h1{width:100%;margin-bottom:.4rem}.nav a{margin:0}.approval-review-layout,.detail-grid{grid-template-columns:1fr}.panel-resize-handle{display:none}.review-centre-panel,.review-left-panel,.review-right-panel{min-height:auto}.review-centre-panel{overflow:visible}.import-layout-table.four,.import-layout-table.three,.import-layout-table.two{grid-template-columns:1fr}}