:root{color:#232d54;background:#eaf4f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--cotour-dark-blue: #232d54;--cotour-blue: #007aa2;--sky: #009edc;--ocean: #00bbda;--cloud: #b3edff;--jet-stream: #e8e8e8;--sunset: #db5d13;--sunrise: #ff6d12;--horizon: #ffac6e;--navy: #091022;--panel-ink: #0a1224;--txt: #f2f5fb;--mut: #93a0bb;--faint: #6b7894;--on-action: #04222e;--grad: linear-gradient(135deg, var(--sky), var(--ocean));--grad-soft: linear-gradient(135deg, rgba(0, 158, 220, .3), rgba(0, 187, 218, .24));--glass-bg: rgba(255, 255, 255, .055);--glass-line: rgba(255, 255, 255, .14);--glass-specular: rgba(255, 255, 255, .32);--inner-bg: rgba(255, 255, 255, .06);--inner-line: rgba(255, 255, 255, .11);--r-pill: 999px;--r-lg: 22px;--r-md: 16px;--r-sm: 12px;--shadow-panel: 0 24px 60px rgba(0, 0, 0, .45);--shadow-button: 0 14px 40px rgba(0, 187, 218, .28);--glow-action: 0 0 18px rgba(0, 187, 218, .48);--glow-urgent: 0 0 22px rgba(255, 109, 18, .36);--ink: var(--cotour-dark-blue);--muted: #5b6883;--line: rgba(35, 45, 84, .16);--line-strong: rgba(35, 45, 84, .26);--surface: rgba(255, 255, 255, .78);--subtle: rgba(255, 255, 255, .52);--red-soft: rgba(255, 109, 18, .11);--red: var(--sunrise);--shadow: 0 20px 46px rgba(35, 45, 84, .13)}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100vh;overflow:hidden;background:var(--navy)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}h1,h2,h3,p{margin:0}h1{font-size:18px;line-height:1.1}.app-shell{background:linear-gradient(140deg,rgba(0,158,220,.16),transparent 30%),linear-gradient(320deg,rgba(0,187,218,.11),transparent 36%),var(--jet-stream);display:grid;grid-template-rows:auto minmax(0,1fr);height:100vh;overflow:hidden;padding:12px;position:relative;transition:background .18s ease,color .18s ease}.app-shell.dark-ui{--ink: var(--txt);--muted: var(--mut);--line: var(--glass-line);--line-strong: rgba(255, 255, 255, .22);--surface: var(--glass-bg);--subtle: var(--inner-bg);--red-soft: rgba(255, 109, 18, .12);--shadow: var(--shadow-panel);background:linear-gradient(140deg,rgba(0,122,162,.28),transparent 30%),linear-gradient(320deg,rgba(0,187,218,.18),transparent 36%),var(--navy);color:var(--txt)}.topbar{align-items:center;background:var(--surface);border:1px solid var(--line);border-top-color:var(--glass-specular);border-radius:var(--r-lg);box-shadow:var(--shadow);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);display:flex;gap:18px;justify-content:space-between;margin:0 auto 12px;max-width:1500px;padding:12px 14px;width:100%}.brand{align-items:center;display:flex;gap:12px;min-width:280px}.brand-logo{display:block;height:46px;object-fit:contain;width:74px}.brand p{color:var(--muted);font-size:12px;margin-top:3px}.topbar-actions{align-items:center;display:flex;gap:10px}.theme-switch{align-items:center;color:var(--muted);display:flex;gap:8px;min-height:34px;font-size:13px}.theme-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:0;margin:0;opacity:0;position:absolute;width:0}.theme-switch span{background:#ffffff24;border:1px solid var(--line-strong);border-radius:var(--r-pill);display:block;height:22px;position:relative;width:42px;transition:background .18s ease}.theme-switch span:after{background:#fff;border-radius:50%;box-shadow:0 2px 6px #0003;content:"";height:16px;left:2px;position:absolute;top:2px;width:16px;transition:transform .18s ease}.theme-switch input:checked+span{background:var(--grad);box-shadow:var(--glow-action)}.theme-switch input:checked+span:after{transform:translate(20px)}.workspace{display:grid;gap:12px;grid-template-columns:minmax(340px,34%) minmax(560px,1fr);margin:0 auto;max-width:1500px;min-height:0;width:100%}.input-panel,.output-panel{background:var(--surface);border:1px solid var(--line);border-top-color:var(--glass-specular);border-radius:var(--r-lg);box-shadow:var(--shadow);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);min-height:0;padding:14px}.input-panel{display:flex;flex-direction:column;gap:10px;overflow:auto}.input-panel>*{flex:0 0 auto}.output-panel{display:flex;flex-direction:column;min-width:0}.panel-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.eyeline{color:var(--cloud);font-size:11px;font-weight:700;letter-spacing:1.9px;text-transform:uppercase}.app-shell:not(.dark-ui) .eyeline{color:var(--cotour-blue)}h2{color:var(--ink);font-size:17px;line-height:1.25;margin-top:2px}.upload-box{align-items:center;background:var(--subtle);border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--ink);cursor:pointer;display:grid;gap:6px;justify-items:start;min-height:118px;padding:16px;position:relative}.upload-box input{top:0;right:0;bottom:0;left:0;opacity:0;position:absolute;cursor:pointer}.upload-box strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.upload-box span{color:var(--muted);font-size:11px;line-height:1.35}.upload-box svg{color:var(--cloud)}.app-shell:not(.dark-ui) .upload-box svg{color:var(--cotour-blue)}.hint{color:var(--muted);font-size:12px}.upload-review,.client-dk-field,.rules-box{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:inset 0 1px #ffffff24;display:grid;gap:9px;padding:10px}.upload-review.error{background:var(--red-soft);border-color:#ff6d127a}.upload-review.error strong{color:var(--ink);font-size:13px}.upload-review.error p{color:var(--muted);font-size:12px;line-height:1.4}.upload-review-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.upload-review-head strong{color:var(--ink);display:block;font-size:13px;margin-top:2px}.upload-review-head>span{color:var(--cloud);font-size:12px;font-weight:700}.app-shell:not(.dark-ui) .upload-review-head>span{color:var(--cotour-blue)}.charge-list{border-top:1px solid var(--line);display:grid;gap:6px;padding-top:8px}.charge-row{align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto auto}.charge-row span{color:var(--ink);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charge-row strong{color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;min-width:68px;text-align:right}.charge-row em{border-radius:var(--r-pill);font-size:9.5px;font-style:normal;font-weight:700;letter-spacing:.4px;padding:3px 7px;text-transform:uppercase}.tag-fare{background:#00bbda2e;color:var(--cloud)}.tag-fee{background:#ffffff1a;color:var(--muted)}.app-shell:not(.dark-ui) .tag-fare{background:#007aa224;color:var(--cotour-blue)}.app-shell:not(.dark-ui) .tag-fee{background:#232d5414;color:var(--muted)}.client-dk-field>span{color:var(--cloud);font-size:11px;font-weight:700;text-transform:uppercase}.app-shell:not(.dark-ui) .client-dk-field>span{color:var(--cotour-blue)}.client-dk-field small{color:var(--muted);font-size:11px}.client-dk-field input{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);font-variant-numeric:tabular-nums;height:40px;outline:0;padding:0 10px;width:100%}.dark-ui .client-dk-field input{background:#091022b8}.client-dk-field input:focus{border-color:var(--ocean);box-shadow:0 0 0 2px #00bbda2e}.tabs{align-items:center;background:#ffffff12;border:1px solid var(--line-strong);border-radius:var(--r-pill);display:flex;height:32px;padding:3px;flex:0 0 auto}.dark-ui .tabs{background:#091022b8}.tabs button{background:transparent;border:0;border-radius:var(--r-pill);color:var(--muted);font-size:11px;font-weight:700;height:24px;line-height:1;padding:0 11px;white-space:nowrap}.tabs button.active{background:var(--grad);color:var(--on-action);box-shadow:inset 0 1.5px #ffffff8c}.detected-grid{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.detected-grid div{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-md);display:grid;gap:4px;min-width:0;padding:9px}.detected-grid span{color:var(--muted);font-size:11px}.detected-grid strong{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}.detected-grid .is-changed{border-color:#00bbda8c;background:var(--grad-soft)}.detected-grid .is-changed strong{color:var(--cloud)}.app-shell:not(.dark-ui) .detected-grid .is-changed strong{color:var(--cotour-blue)}.rules-box ul{display:grid;gap:6px;margin:0;padding-left:18px}.rules-box li{color:var(--ink);font-size:12px;line-height:1.4}.rules-box b{color:var(--cloud)}.app-shell:not(.dark-ui) .rules-box b{color:var(--cotour-blue)}.doc-list{display:grid;gap:6px;max-height:260px;overflow:auto;padding-right:2px}.doc-row{align-items:center;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 84px 22px;padding:8px 10px;transition:border-color .15s ease,background .15s ease}.doc-row:hover{border-color:var(--line-strong)}.doc-row.active{border-color:#00bbda8c;background:var(--grad-soft)}.doc-row.bad{border-color:#ff6d1273;background:var(--red-soft);cursor:default}.doc-main{display:grid;gap:2px;min-width:0}.doc-main strong{color:var(--ink);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-main span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.doc-error{color:var(--horizon);line-height:1.3;white-space:normal!important}.app-shell:not(.dark-ui) .doc-error{color:var(--sunset)}.doc-margin{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;height:30px;outline:0;padding:0 8px;text-align:right;width:100%}.dark-ui .doc-margin{background:#091022b8}.doc-margin:focus{border-color:var(--ocean);box-shadow:0 0 0 2px #00bbda2e}.doc-remove{background:transparent;border:0;color:var(--muted);font-size:12px;line-height:1;padding:4px;border-radius:6px}.doc-remove:hover{color:var(--red);background:#ff6d121f}.action-row{display:grid;gap:8px;grid-template-columns:1fr auto;margin-top:2px}.action-row .secondary-button.full{width:auto;padding:0 18px;height:44px}.primary-button,.secondary-button{align-items:center;border:1px solid var(--line-strong);border-radius:var(--r-md);display:flex;font-weight:700;gap:8px;height:34px;justify-content:center;padding:0 13px}.primary-button{background:var(--grad);border-color:transparent;box-shadow:var(--shadow-button),inset 0 1.5px #ffffff8c;color:var(--on-action)}.primary-button.full{flex:0 0 auto;font-size:14px;height:44px;margin-top:2px;width:100%}.secondary-button{background:#ffffff12;color:var(--ink)}.dark-ui .secondary-button{background:#091022b8}.mini-button{font-size:12px;height:30px;padding:0 10px}.output-heading{flex:0 0 auto;margin-bottom:8px}.output-actions{align-items:center;display:flex;gap:8px}.status-pill{align-items:center;background:#00bbda24;border:1px solid rgba(0,187,218,.48);border-radius:var(--r-pill);color:var(--cloud);display:inline-flex;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;gap:7px;padding:6px 9px;white-space:nowrap}.status-pill.warn{background:var(--red-soft);border-color:#ff6d1285;color:var(--horizon);text-shadow:var(--glow-urgent)}.app-shell:not(.dark-ui) .status-pill{color:var(--cotour-blue)}.app-shell:not(.dark-ui) .status-pill.warn{color:var(--sunset);text-shadow:none}.preview-view{background:#091022d1;border:1px solid var(--inner-line);border-radius:var(--r-lg);box-shadow:inset 0 1px #ffffff1f;color:var(--txt);flex:1;min-height:0;overflow:auto;padding:14px}.preview-view img{border-radius:6px;box-shadow:0 12px 34px #00000073;display:block;height:auto;margin:0 auto;max-width:780px;width:100%}.empty-state{align-content:center;display:grid;gap:12px;height:100%;justify-items:center;padding:28px;text-align:center}.empty-state svg{color:var(--cloud);height:34px;width:34px}.empty-state h3{color:var(--txt);font-size:18px}.empty-state p{color:var(--mut);font-size:13px;line-height:1.45;max-width:420px}@media(max-width:980px){body{height:auto;min-height:100vh;overflow:auto}.app-shell{height:auto;min-height:100vh;overflow:visible;padding:10px}.topbar,.workspace{display:grid;grid-template-columns:1fr}.brand{min-width:0}.preview-view{min-height:60vh}}
