/* ===== Integrated Flight Folder — native module (scoped under .iff-native) ===== */
.iff-native{ max-width:880px; margin:0 auto; }

.iff-native .card { background:var(--surface-1); border:1px solid var(--border); border-radius:var(--radius-lg);
    padding:22px; margin-bottom:16px; box-shadow:var(--shadow-sm); }
.iff-native .card > p:first-child { letter-spacing:-0.015em; }
.iff-native .setup-row { display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; margin-bottom:14px; }
.iff-native .setup-row label, .iff-native .ab-fields label, .iff-native .route-row div label { display:block; font-size:11.5px; font-weight:500;
    color:var(--text-muted); margin-bottom:5px; letter-spacing:.01em; }
.iff-native .ac-note { font-size:12px; margin:4px 0 16px; padding:10px 12px; border-radius:var(--radius);
    background:var(--info-bg); color:var(--text-secondary); line-height:1.5; }
.iff-native .ac-note.warn { background:var(--warning-bg); color:var(--warning); }
.iff-native .leg-tabs { display:flex; gap:7px; margin-bottom:18px; flex-wrap:wrap; align-items:center; }
.iff-native .leg-tab-group { display:flex; border:1px solid var(--border); border-radius:20px; overflow:hidden; background:var(--surface-2); }
.iff-native .leg-tab-group button.leg-select { padding:7px 16px; font-size:12.5px; font-weight:500; background:transparent;
    border:none; cursor:pointer; color:var(--text-secondary); transition:.15s; }
.iff-native .leg-tab-group button.leg-select.active { background:var(--accent); color:#fff; font-weight:600; }
.iff-native .leg-tab-group button.leg-remove { padding:7px 10px; font-size:11px; background:transparent; border:none;
    border-left:1px solid var(--border); cursor:pointer; color:var(--text-muted); }
.iff-native .leg-tab-group button.leg-remove:hover { color:var(--danger); }
.iff-native .add-leg-btn { padding:7px 14px; font-size:12.5px; border:1px dashed var(--border-strong); border-radius:20px;
    background:transparent; cursor:pointer; color:var(--text-muted); transition:.15s; }
.iff-native .add-leg-btn:hover { color:var(--accent); border-color:var(--accent); }
.iff-native h2.section { font-size:11.5px; font-weight:700; color:var(--text-muted); margin:26px 0 10px;
    text-transform:uppercase; letter-spacing:.07em; }
.iff-native h2.section.cg { color:var(--normal); }
.iff-native p.hint { font-size:12px; color:var(--text-muted); margin:0 0 8px; }
.iff-native .route-row { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:12px; align-items:flex-end; }
.iff-native .btn-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.iff-native .fetch-btn { padding:9px 16px; font-size:12.5px; font-weight:600; background:var(--accent); color:#fff;
    border:none; border-radius:20px; cursor:pointer; transition:.15s; }
.iff-native .fetch-btn:hover { filter:brightness(1.08); }
.iff-native .fetch-btn.secondary { background:transparent; color:var(--accent); border:1px solid var(--accent); }
.iff-native .fetch-btn:disabled { opacity:.55; cursor:wait; }
.iff-native .wx-block { border-left:3px solid var(--border-strong); padding:10px 14px; background:var(--surface-2);
    margin-bottom:7px; border-radius:0 var(--radius) var(--radius) 0; }
.iff-native .wx-block p { margin:0; }
.iff-native .wx-block .wx-title { font-size:12.5px; font-weight:650; }
.iff-native .wx-block .wx-metar { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:11.5px;
    color:var(--text-secondary); margin-top:5px; letter-spacing:-.01em; }
.iff-native .wx-block.wx-blocked { border-left-color:var(--warning); }
.iff-native .wx-block.wx-blocked p { font-size:12px; color:var(--warning); }
.iff-native .wx-placeholder { font-size:12px; color:var(--text-muted); margin:0 0 14px; }
.iff-native .demo-fallback-btn { font-size:11.5px; padding:5px 11px; border:1px solid var(--border-strong);
    border-radius:20px; background:var(--surface-1); cursor:pointer; margin-top:6px; color:var(--text-secondary); }
.iff-native label.ack { display:flex; align-items:center; gap:9px; font-size:13px; margin:14px 0 18px;
    padding:11px 13px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); }
.iff-native .ack-note { display:none; }
.iff-native .tbl-scroll { overflow-x:auto; margin-bottom:18px; border:1px solid var(--border);
    border-radius:var(--radius); background:var(--surface-1); }
.iff-native table { width:100%; border-collapse:collapse; font-size:12.5px; }
.iff-native th, .iff-native td { padding:9px 10px; text-align:left; border-bottom:1px solid var(--border); vertical-align:middle; }
.iff-native tr:last-child td { border-bottom:none; }
.iff-native th { color:var(--text-muted); font-weight:600; font-size:11px; text-transform:uppercase;
    letter-spacing:.05em; background:var(--surface-2); }
.iff-native td.bold { font-weight:650; }
.iff-native tr.locked td { color:var(--text-muted); background:var(--surface-2); }
.iff-native table.fuel-grid { min-width:440px; }
.iff-native table.fuel-grid th { text-align:center; }
.iff-native table.fuel-grid td { text-align:center; }
.iff-native table.fuel-grid td:first-child, .iff-native table.fuel-grid th:first-child { text-align:left; white-space:nowrap; }
.iff-native table.mb-table, .iff-native table.perf-table { table-layout:fixed; }
.iff-native table.mb-table col.c-label, .iff-native table.perf-table col.c-label { width:34%; }
.iff-native table.mb-table col.c-num, .iff-native table.perf-table col.c-num { width:22%; }
.iff-native input[type=text], .iff-native input[type=number], .iff-native input[type=time], .iff-native input[type=date], .iff-native input:not([type]), .iff-native select, .iff-native textarea {
    width:100%; padding:7px 9px; font-size:12.5px; text-align:center; font-family:inherit;
    border:1px solid var(--border-strong); border-radius:8px;
    background:var(--surface-1); color:var(--text-primary); transition:border-color .15s, box-shadow .15s; }
.iff-native input:focus, .iff-native select:focus, .iff-native textarea:focus { outline:none; border-color:var(--accent);
    box-shadow:0 0 0 3px var(--accent-bg); }
.iff-native input.icao, .iff-native input.icao:not([type]) { width:82px; flex:0 0 82px; text-transform:uppercase;
    letter-spacing:.14em; font-weight:650; }
.iff-native input.fuel-cell, .iff-native input.fuel-cell:not([type]) { width:62px; padding:6px 4px; }
.iff-native input.mini, .iff-native input.mini:not([type]) { width:78px; }
.iff-native input.reason-input, .iff-native input.reason-input:not([type]) { width:100%; text-align:left; }
.iff-native select.compact { width:auto; min-width:118px; padding:8px 10px; }
.iff-native select.person { width:auto; min-width:158px; padding:8px 10px; }
.iff-native input.compact-date { width:154px; }
.iff-native input.compact-time { width:108px; }
.iff-native input.default-filled { background:var(--accent-bg); border-color:var(--accent-bg); }
.iff-native input[readonly] { background:var(--surface-2); color:var(--text-secondary); cursor:default;
    border-style:dashed; border-color:var(--border); }
.iff-native input[readonly]:focus { box-shadow:none; border-color:var(--border); }
.iff-native td.dash { color:var(--text-muted); text-align:center; }
.iff-native td.fixed-arm { color:var(--text-muted); text-align:center; }
.iff-native td.num { text-align:center; }
.iff-native .cg-legend { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-bottom:8px; font-size:12px; font-weight:600; }
.iff-native .cg-legend .swatch { display:inline-block; width:11px; height:11px; border-radius:3px; margin-right:6px;
    vertical-align:-1px; border:1.5px solid; }
.iff-native .graph-wrap { background:var(--surface-1); border-radius:var(--radius); padding:14px; margin-bottom:10px;
    border:1px solid var(--border); }
.iff-native .graph-wrap svg { width:100%; height:auto; display:block; }
.iff-native .submit-btn { width:100%; padding:13px; font-size:13.5px; font-weight:650; background:var(--accent);
    color:#fff; border:none; border-radius:var(--radius); cursor:pointer; margin-top:12px; transition:.15s; }
.iff-native .submit-btn:hover { filter:brightness(1.08); }
.iff-native .send-btn { width:100%; padding:13px; font-size:13.5px; font-weight:650; background:var(--success);
    color:#fff; border:none; border-radius:var(--radius); cursor:pointer; margin-top:16px; transition:.15s; }
.iff-native .send-btn:hover { filter:brightness(1.1); }
.iff-native .save-btn { padding:9px 18px; font-size:12.5px; font-weight:600; background:var(--accent); color:#fff;
    border:none; border-radius:20px; cursor:pointer; }
.iff-native .autobuild-btn { padding:9px 18px; font-size:12.5px; font-weight:600; background:transparent;
    color:var(--accent); border:1px solid var(--accent); border-radius:20px; cursor:pointer; transition:.15s; }
.iff-native .autobuild-btn:hover { background:var(--accent-bg); }
.iff-native .badge { font-size:10.5px; padding:3px 10px; border-radius:20px; font-weight:650; white-space:nowrap; letter-spacing:.01em; }
.iff-native .badge.ok { background:var(--success-bg); color:var(--success); }
.iff-native .badge.warn { background:var(--warning-bg); color:var(--warning); }
.iff-native .badge.info { background:var(--info-bg); color:var(--text-secondary); }
.iff-native .badge.fixed { background:var(--accent-bg); color:var(--accent); }
.iff-native .override-btn { font-size:11px; padding:4px 11px; border:1px solid var(--border-strong); border-radius:20px;
    background:var(--surface-1); cursor:pointer; color:var(--text-secondary); transition:.15s; }
.iff-native .override-btn:hover:not(:disabled) { border-color:var(--accent); color:var(--accent); }
.iff-native .override-btn:disabled { opacity:.35; cursor:not-allowed; }
.iff-native .diff-row-warn { background:var(--warning-bg); }
.iff-native .tol { font-size:10.5px; color:var(--text-muted); display:block; margin-top:2px; }
.iff-native .ovr-form td { background:var(--surface-2); }
.iff-native .ovr-inner { display:grid; grid-template-columns:160px 1fr auto; gap:10px; align-items:end; }
.iff-native .ovr-inner label { display:block; font-size:11px; color:var(--text-muted); margin-bottom:4px; }
.iff-native .locked-val { padding:7px 9px; font-size:12.5px; border:1px dashed var(--border); border-radius:8px;
    background:var(--surface-1); color:var(--text-secondary); text-align:center; }
.iff-native .ovr-save { padding:8px 16px; font-size:12px; font-weight:600; background:var(--accent); color:#fff;
    border:none; border-radius:20px; cursor:pointer; }
.iff-native .empty-state { text-align:center; padding:36px 20px; color:var(--text-muted); font-size:13px; }
.iff-native .autobuild-banner { background:var(--accent-bg); border:1px solid transparent; border-radius:var(--radius);
    padding:11px 13px; font-size:12px; color:var(--accent); margin-bottom:14px; }
.iff-native .ab-panel { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
    padding:18px; margin-top:14px; }
.iff-native .ab-fields { display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; margin:14px 0; }
.iff-native .ab-conv { font-size:10.5px; color:var(--text-muted); margin-top:4px; text-align:center; }
.iff-native .ab-status { font-size:11.5px; color:var(--text-muted); margin:10px 0 0; }
.iff-native .val-box { border-radius:var(--radius); padding:11px 13px; font-size:12px; margin-bottom:16px; border:1px solid transparent; }
.iff-native .val-box.ok { background:var(--success-bg); color:var(--success); }
.iff-native .val-box.bad { background:var(--danger-bg); color:var(--danger); }
.iff-native .val-box ul { margin:7px 0 0; padding-left:18px; }
.iff-native .val-box li { margin-bottom:4px; }
.iff-native .folder-list { display:flex; flex-direction:column; gap:9px; }
.iff-native .folder-row { background:var(--surface-1); border:1px solid var(--border); border-radius:var(--radius);
    overflow:hidden; transition:box-shadow .15s, border-color .15s; }
.iff-native .folder-row:hover { box-shadow:var(--shadow-md); }
.iff-native .folder-row.open { border-color:var(--border-strong); box-shadow:var(--shadow-md); }
.iff-native .folder-head { width:100%; display:flex; align-items:center; gap:14px; padding:15px 17px;
    background:none; border:none; cursor:pointer; text-align:left; color:var(--text-primary); }
.iff-native .fh-icon { font-size:17px; width:34px; height:34px; flex:0 0 34px; border-radius:9px;
    background:var(--surface-2); display:flex; align-items:center; justify-content:center; }
.iff-native .fh-main { flex:1 1 auto; min-width:0; }
.iff-native .fh-title { font-size:13.5px; font-weight:650; margin:0; letter-spacing:-.01em; }
.iff-native .fh-sub { font-size:11.5px; color:var(--text-muted); margin:3px 0 0; }
.iff-native .fh-right { display:flex; align-items:center; gap:11px; flex:0 0 auto; }
.iff-native .chev { font-size:12px; color:var(--text-muted); transition:transform .2s; display:inline-block; }
.iff-native .folder-row.open .chev { transform:rotate(180deg); }
.iff-native .row-with-del { display:flex; flex-direction:column; }
.iff-native .row-with-del > .folder-head { padding-right:52px; }
.iff-native .row-with-del { position:relative; }
.iff-native .row-del { position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:8px;
    border:1px solid transparent; background:transparent; color:var(--text-muted); cursor:pointer;
    font-size:13px; line-height:1; transition:.15s; }
.iff-native .row-del:hover { background:var(--danger-bg); color:var(--danger); border-color:var(--danger-bg); }
.iff-native .folder-body { padding:4px 17px 18px; border-top:1px solid var(--border); }
.iff-native .folder-body.hidden { display:none; }
.iff-native .edit-bar { display:flex; justify-content:flex-end; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 0 2px; }
.iff-native details.ref { background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
    padding:12px 14px; margin-bottom:8px; }
.iff-native details.ref summary { cursor:pointer; font-size:12.5px; font-weight:600; color:var(--text-secondary); }
.iff-native details.ref[open] summary { margin-bottom:12px; }
.iff-native details.ref table { font-size:11.5px; }
.iff-native details.ref td, .iff-native details.ref th { text-align:left; }
.iff-native details.ref ul { margin:8px 0; padding-left:20px; font-size:12px; color:var(--text-secondary); line-height:1.6; }
.iff-native details.ref li { margin-bottom:5px; }
.iff-native .ref-src { font-size:10.5px; color:var(--text-muted); margin-top:10px; }

@media (max-width:520px){
.iff-native .ovr-inner { grid-template-columns:1fr; }
.iff-native .card { padding:16px; }
  .iff-native { padding: 18px 12px 52px; }
}
