/* Excel / T-Sheet import wizard — screen styles.
   Owned by ONE porting agent so screens can be built in parallel without
   racing on main.css. Loads AFTER main.css, so a bare class here beats a
   bare class there — but an ID rule in main.css still wins. Check the
   cascade before assuming a rule applies.
   Tokens, the .tip tooltip system and the chart series live in main.css and
   must not be redefined here. */

/* ── Shell — the modal itself. #import-modal .modal carries an inline width in
   index.html, so width needs !important; everything else is ID-scoped so it
   outranks the bare .modal-* rules in main.css. */
#import-modal .modal{width:1176px!important;max-width:min(1176px,96vw)!important;border-radius:18px;
  box-shadow:0 28px 64px rgba(20,26,32,.34),0 2px 10px rgba(20,26,32,.18);}
#import-modal .modal-hdr{background:#fff;border-bottom:1px solid #E8EDF2;padding:0 24px;min-height:74px;
  display:flex;align-items:center;justify-content:flex-start;gap:14px;}
#import-modal .modal-body{padding:22px 24px;display:flex;gap:24px;align-items:flex-start;}
#import-modal .modal-footer{min-height:72px;padding:0 24px;gap:14px;align-items:center;background:#FCFBF9;border-top:1px solid #E8EDF2;}
#import-modal .modal-close{width:30px;height:30px;flex-shrink:0;border-radius:9999px;border:none;background:#F7F7F7;
  color:#6B7480;font-size:16px;line-height:1;opacity:1;display:inline-flex;align-items:center;justify-content:center;}
#import-modal .modal-close:hover{background:#EAEAEB;opacity:1;}

/* The body scrolls when a workbook has many columns. Hidden tooltip bubbles
   still count towards scrollable overflow, so inside the body they leave the
   layout until hovered — the global .tip rules take over on hover. */
#import-modal .modal-body .tip:not(:hover)::after,#import-modal .modal-body .tip:not(:hover)::before{display:none;}

/* Left-edge elements (sheet pills, the not-imported line, footer facts) open
   their bubble from their own left edge — a centred bubble would be clipped by
   the modal's overflow:hidden. */
#import-modal .iw-sheet.tip::after,#import-modal .iw-unmapped.tip::after,#import-modal .iw-fact.tip::after{left:0;transform:none;}
#import-modal .iw-sheet.tip::before,#import-modal .iw-unmapped.tip::before,#import-modal .iw-fact.tip::before{left:14px;transform:none;}

/* Header text */
.iw-hdr-text{min-width:0;}
.iw-kicker{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:#837D68;margin-bottom:4px;white-space:nowrap;}
.iw-title{font-family:var(--font-display);font-size:21px;font-weight:400;letter-spacing:-.4px;color:#2A323A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.iw-spacer{flex:1;}
.iw-file{display:inline-flex;align-items:center;gap:9px;background:#F7F7F7;border:1px solid #E8EDF2;border-radius:11px;
  padding:8px 13px;font-size:12px;font-weight:600;color:#2A323A;cursor:help;max-width:420px;min-width:0;}
.iw-file svg{flex-shrink:0;}
.iw-file-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Buttons inside the wizard — secondary pill, dark primary pill */
#import-modal .btn-ghost{background:#fff;border:none;border-radius:9999px;padding:8px 15px;font-size:12.5px;font-weight:500;color:#2A323A;
  box-shadow:0 1px 2px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.07);white-space:nowrap;letter-spacing:0;}
#import-modal .btn-ghost:hover{background:#F7F7F7;}
#import-modal .btn{background:#2A323A;color:#FCFBF9;border:none;border-radius:9999px;padding:10px 20px;font-size:12.5px;font-weight:600;
  white-space:nowrap;letter-spacing:0;gap:8px;box-shadow:0 1px 2px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.1);}
#import-modal .btn:hover:not(:disabled){background:#3D4854;color:#FCFBF9;}
#import-modal .btn:disabled{opacity:.4;cursor:not-allowed;}

/* Native checkboxes inside the wizard (the global input rule gives them 100% width) */
#import-modal input[type=checkbox],#import-modal input[type=radio]{width:auto;padding:0;margin:0;border:none;box-shadow:none;}
#import-modal .iw-sheet-tick{width:13px;height:13px;accent-color:#2A323A;cursor:pointer;flex-shrink:0;}

/* ── Left: the mapping ── */
.iw-left{flex:1;min-width:0;display:flex;flex-direction:column;}
.iw-sheets{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.iw-sheet{display:inline-flex;align-items:center;gap:8px;height:26px;padding:0 12px 0 9px;border-radius:9999px;background:#fff;
  border:1px solid #D2DAE3;box-shadow:0 1px 2px rgba(0,0,0,.06);font-size:12px;font-weight:600;color:#2A323A;cursor:pointer;white-space:nowrap;}
.iw-sheet.is-active{border-color:#2A323A;}
.iw-sheet.is-off{color:#9BA3AC;background:#F7F7F7;box-shadow:none;}
.iw-sheet.is-off .iw-sheet-rows{color:#9BA3AC;}
.iw-sheet.is-warn{border-color:#D9A62E;}
.iw-sheet-n{max-width:180px;overflow:hidden;text-overflow:ellipsis;}
.iw-sheet-rows{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;color:#6B7480;font-weight:500;text-transform:uppercase;}
.iw-sheets-empty{font-size:12px;color:#6B7480;}
.iw-hdrrow{display:inline-flex;align-items:center;gap:8px;height:26px;padding:0 4px 0 10px;border-radius:8px;background:#fff;border:1px solid #D2DAE3;font-size:12px;font-weight:600;cursor:pointer;margin:0;}
.iw-hdrrow-l{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#6B7480;font-weight:500;white-space:nowrap;}
#import-modal .iw-hdrrow select{width:auto;max-width:120px;height:22px;padding:0 18px 0 2px;border:none;border-radius:6px;box-shadow:none;
  background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24'><path d='M4 8l8 8 8-8' fill='none' stroke='%239BA3AC' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 4px center;
  font-size:12px;font-weight:600;color:#2A323A;appearance:none;-webkit-appearance:none;cursor:pointer;font-family:var(--font);}
#import-modal .iw-hdrrow select:focus{outline:none;box-shadow:0 0 0 3px rgba(138,157,177,.2);background-color:#fff;}
.iw-skipped{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:8px;background:#F7F7F7;border:1px solid #E8EDF2;
  font-size:11.5px;font-weight:500;color:#6B7480;cursor:pointer;font-family:var(--font);white-space:nowrap;}
.iw-skipped:hover{background:#EFEFF1;}
.iw-caret{font-size:9px;color:#9BA3AC;}
.iw-skipped-list{margin-top:8px;border:1px solid #E8EDF2;border-radius:10px;padding:4px 12px;}
.iw-skipped-row{display:flex;align-items:center;gap:9px;font-size:11.5px;padding:4px 0;cursor:pointer;color:#2A323A;margin:0;}
.iw-skipped-n{font-weight:600;}
.iw-skipped-why{color:#6B7480;margin-left:auto;}

.iw-sec{display:flex;align-items:baseline;gap:11px;margin:22px 0 10px;}
.iw-sec-t{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.3px;color:#2A323A;}
.iw-sec-sub{font-size:12px;color:#6B7480;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;}
.iw-mapped{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:#4D4936;background:#D8D5C9;border-radius:9px;padding:2px 8px;font-weight:700;cursor:help;white-space:nowrap;}

.iw-map{border:1px solid #E8EDF2;border-radius:12px;background:#fff;}
.iw-map-h{display:flex;align-items:center;height:30px;background:#FCFBF9;border-bottom:1px solid #E8EDF2;border-radius:11px 11px 0 0;padding:0 14px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#6B7480;}
.iw-map-h .tip{cursor:help;}
.iw-map-r{display:flex;align-items:center;height:34px;padding:0 14px;border-bottom:1px solid #F1F3F6;}
.iw-map-r:last-child{border-bottom:none;}
.iw-map-sub{height:26px;display:flex;align-items:center;padding:0 14px;background:#FCFBF9;border-top:1px solid #E8EDF2;border-bottom:1px solid #E8EDF2;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#9BA3AC;}
.iw-map-empty{padding:16px 14px;font-size:12px;color:#6B7480;}
.iw-c-src{width:196px;flex-shrink:0;display:flex;align-items:center;gap:8px;min-width:0;padding-right:8px;box-sizing:border-box;}
.iw-c-arrow{width:22px;flex-shrink:0;text-align:center;color:#C1C0C2;font-size:11px;}
.iw-c-field{width:232px;flex-shrink:0;padding-right:14px;box-sizing:border-box;}
.iw-c-match{width:96px;flex-shrink:0;}
.iw-c-sample{flex:1;min-width:0;font-size:11.5px;color:#4A5560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.iw-col{font-family:var(--font-mono);font-size:9px;color:#6B7480;background:#F7F7F7;border:1px solid #E8EDF2;border-radius:5px;padding:1px 5px;flex-shrink:0;}
.iw-head{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#2A323A;}
#import-modal .iw-field-sel{width:100%;height:26px;padding:0 26px 0 10px;border:1px solid #D2DAE3;border-radius:8px;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24'><path d='M4 8l8 8 8-8' fill='none' stroke='%239BA3AC' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 9px center;
  font-size:12px;font-weight:500;color:#2A323A;appearance:none;-webkit-appearance:none;font-family:var(--font);cursor:pointer;box-shadow:none;}
#import-modal .iw-field-sel.is-none{color:#9BA3AC;font-weight:400;}
#import-modal .iw-field-sel:hover:not(:focus){border-color:#8A9DB1;}
#import-modal .iw-field-sel:focus{outline:none;border-color:#8A9DB1;box-shadow:0 0 0 3px rgba(138,157,177,.13);background-color:#fff;}
.iw-pill{display:inline-block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;border-radius:9px;padding:2px 7px;white-space:nowrap;}
.iw-pill.exact{background:#E4EADF;color:#47603C;}
.iw-pill.partial{background:#FFF4D6;color:#7A4A00;}
.iw-pill.values{background:#D2DAE3;color:#33506E;}
.iw-pill.manual{background:#F5DEDE;color:#7A4245;}
.iw-pill.none{background:#F7F7F7;color:#9BA3AC;border:1px solid #E8EDF2;}
.iw-pill.internal{background:#EFEFF1;color:#5A6169;}
.iw-pill.notes{background:#D8D5C9;color:#4D4936;}
.iw-pill.stray{background:#FFF4D6;color:#7A4A00;}
.iw-rest{margin-top:13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.iw-unmapped{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-family:var(--font-mono);font-size:9.5px;
  letter-spacing:.09em;text-transform:uppercase;color:#6B7480;cursor:pointer;white-space:nowrap;}
span.iw-unmapped{cursor:help;}
button.iw-unmapped:hover{color:#2A323A;}

/* ── Right: the decisions ── */
.iw-right{width:336px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;}
.iw-card{border:1px solid #E8EDF2;border-radius:12px;padding:13px 15px;background:#fff;}
.iw-card-t{font-size:12.5px;font-weight:600;color:#2A323A;}
.iw-card-t.tip{cursor:help;display:inline-block;}
.iw-seg{display:flex;background:#F1EDE6;border-radius:9999px;padding:3px;margin-top:11px;}
.iw-seg-opt{flex:1;position:relative;cursor:pointer;margin:0;}
.iw-seg-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none;}
.iw-seg-opt span{display:block;text-align:center;border-radius:9999px;padding:6px 0;font-size:11.5px;font-weight:500;color:#6B7480;}
.iw-seg-opt input:checked + span{background:#fff;color:#2A323A;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.iw-seg-opt input:focus-visible + span{box-shadow:0 0 0 3px rgba(138,157,177,.3);}
.iw-tick{display:flex;align-items:center;gap:9px;cursor:pointer;position:relative;font-size:12.5px;font-weight:600;color:#2A323A;margin:0;}
.iw-tick input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none;}
.iw-box{width:15px;height:15px;border-radius:4px;border:1.5px solid #C1C0C2;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;}
.iw-box svg{opacity:0;}
.iw-tick input:checked + .iw-box{background:#2A323A;border-color:#2A323A;}
.iw-tick input:checked + .iw-box svg{opacity:1;}
.iw-tick input:focus-visible + .iw-box{box-shadow:0 0 0 3px rgba(138,157,177,.3);}
.iw-tick-sub{font-size:11.5px;font-weight:400;line-height:1.8;margin-left:-24px;}
.iw-tick-sub .k{color:#6B7480;flex:1;}
.iw-kv-list{margin:11px 0 0 24px;}
.iw-kv-list-flush{margin-left:0;}
.iw-kv{display:flex;align-items:baseline;gap:8px;font-size:11.5px;line-height:1.8;min-width:0;}
.iw-kv .k{color:#6B7480;flex:0 0 auto;}
.iw-kv .v{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#2A323A;text-align:right;}
.iw-kv .s{font-weight:600;flex:0 0 auto;}
.iw-kv .s.new{color:#47603C;}
.iw-kv .s.same{color:#9BA3AC;font-weight:500;}
.iw-kv .s.repl{color:#7A4A00;cursor:help;}
.iw-kv-n{font-weight:600;color:#2A323A;margin-left:auto;}
.iw-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;}
.iw-chip{background:#F7F7F7;border:1px solid #E8EDF2;border-radius:8px;padding:4px 9px;font-size:11px;font-weight:600;color:#3D4854;cursor:help;white-space:nowrap;}
.iw-chip.warn{display:inline-flex;align-items:center;gap:6px;background:#FFF4D6;color:#7A4A00;border-color:#FFF4D6;}

/* ── Footer facts ── */
.iw-facts{flex:1;min-width:0;display:flex;align-items:center;gap:20px;font-size:13px;color:#4A5560;flex-wrap:wrap;}
.iw-fact{display:inline-flex;align-items:center;gap:7px;cursor:help;white-space:nowrap;}
.iw-fact strong{color:#2A323A;font-weight:600;}
.iw-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block;}
.iw-dot.sage{background:#6E7F5C;}
.iw-dot.grey{background:#A8AEB6;}
.iw-dot.amber{background:#D9A62E;}
.iw-dot.slate{background:#8A9DB1;}
.iw-dot.olive{background:#837D68;}
.iw-dot.blush{background:#B8797B;}

/* ── Step 3: progress + log ── */
.iw-prog{flex:1;min-width:0;}
#import-modal .import-progress{background:#F7F7F7;border:1px solid #E8EDF2;border-radius:12px;padding:14px 16px;margin-bottom:12px;}
.iw-prog-t{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.3px;color:#2A323A;}
.iw-prog-s{font-size:12px;color:#6B7480;margin-top:3px;}
#import-modal .progress-bar{height:6px;background:#EAEAEB;border-radius:3px;overflow:hidden;margin-top:10px;}
#import-modal .progress-fill{height:100%;background:#6E7F5C;border-radius:3px;transition:width .3s;}
.iw-log{max-height:380px;overflow-y:auto;font-size:11.5px;line-height:1.6;border:1px solid #E8EDF2;border-radius:12px;padding:6px 14px;}
.iw-log:empty{display:none;}
.iw-log-line{padding:3px 0;border-bottom:1px solid #F1F3F6;color:#2A323A;}
.iw-log-line:last-child{border-bottom:none;}
.iw-log-line.skip{color:#6B7480;}
.iw-log-line.error{color:#7A4245;background:#F5DEDE;margin:3px -8px;padding:5px 8px;border-radius:6px;border-bottom:none;}

/* Narrow windows: stack the two columns */
@media (max-width:1100px){
  #import-modal .modal-body{flex-direction:column;}
  .iw-right{width:auto;}
}
