:root{--navy: #12233f;--navy-2: #1c3357;--red: #e4002b;--green: #2f9e6f;--green-soft: #d6efe2;--bg: #eef1f5;--card: #ffffff;--ink: #16202e;--muted: #6b7686;--line: #dbe1ea;--field-bg: #f4f6f9;--shadow: 0 1px 2px rgba(18, 35, 63, .06), 0 4px 16px rgba(18, 35, 63, .06);--radius: 14px;--tap: 52px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:560px;margin:0 auto;min-height:100dvh}.gate{min-height:100dvh;max-width:420px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:8px;text-align:center}.gate-logo{width:120px;height:120px;object-fit:contain;margin-bottom:8px}.gate h1{margin:0;color:var(--navy);font-size:26px;letter-spacing:.04em}.gate-sub{margin:0 0 20px;color:var(--muted)}.gate-form{width:100%;display:flex;flex-direction:column;gap:12px}.gate-error{margin:0;min-height:20px;color:var(--red);font-size:14px;font-weight:600}.pin-dots{display:flex;gap:16px;margin:20px 0 4px}.pin-dots.error{animation:shake .3s}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--navy);background:transparent;transition:background .1s}.pin-dot.filled{background:var(--navy)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:300px;margin-top:8px}.key{aspect-ratio:1;border:none;border-radius:50%;background:#fff;box-shadow:var(--shadow);font-size:26px;font-weight:600;color:var(--navy);cursor:pointer}.key:active{background:var(--navy);color:#fff}.key.back{background:transparent;box-shadow:none;font-size:24px;color:var(--muted)}.key-spacer{visibility:hidden}.topbar{background:var(--navy);color:#fff;padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;position:sticky;top:0;z-index:10;border-bottom:3px solid var(--red);display:flex;align-items:center;gap:14px}.topbar-logo{width:46px;height:46px;border-radius:50%;background:#fff;padding:3px;object-fit:contain;flex:0 0 auto}.topbar-text{display:flex;flex-direction:column}.topbar h1{margin:0;font-size:22px;letter-spacing:.06em;font-weight:800}.topbar-sub{font-size:12px;opacity:.7;letter-spacing:.04em}.fiche-selector{display:flex;gap:8px;padding:12px 16px;background:var(--navy-2);overflow-x:auto;position:sticky;top:0;z-index:9}.fiche-chip{flex:1 0 auto;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#cfd8e6;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer}.fiche-chip.active{background:#fff;color:var(--navy);border-color:#fff}.fiche-chip:disabled{opacity:.5}.content{padding:16px;display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-title{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);border-left:3px solid var(--red);padding-left:10px}.accordion{padding:0;overflow:hidden}.accordion-head{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:none;padding:16px;cursor:pointer;text-align:left}.card-title.inline{margin:0;flex:0 0 auto}.accordion-summary{flex:1;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chevron{margin-left:auto;color:var(--navy);font-size:16px;transition:transform .15s ease}.chevron.up{transform:rotate(180deg)}.accordion-body{padding:0 16px 16px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field:last-child{margin-bottom:0}.field-label{font-size:13px;font-weight:600;color:var(--muted)}.field-hint{font-size:11px;color:var(--muted)}.field-row{display:flex;gap:12px}.field-row .field{flex:1}input,select{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:10px;background:var(--field-bg);padding:0 14px;font-size:16px;color:var(--ink);-moz-appearance:none;appearance:none;-webkit-appearance:none}input:focus,select:focus{outline:none;border-color:var(--navy-2);background:#fff;box-shadow:0 0 0 3px #1c33571f}input.readonly,.readonly{background:#eef1f5;color:var(--muted)}input[type=time]{min-width:0}.select-wrap{position:relative}.select-caret{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted);font-size:14px}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:4px 4px 0}.section-head h2{margin:0;font-size:16px;color:var(--navy)}.counter{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.flight-card{border-left:4px solid var(--navy);transition:background .15s ease,border-color .15s ease}.flight-card.complete{border-left-color:var(--green);background:linear-gradient(180deg,#f2fbf6,#fff)}.flight-grid-3{display:grid;grid-template-columns:.75fr 1.35fr .9fr;gap:8px;margin-bottom:12px}.flight-grid-3 .field{margin-bottom:0}.flight-grid-3 .field-label{font-size:12px}.flight-grid-3 input,.flight-grid-3 select{padding:0 8px;font-size:15px}.flight-grid-3 select{padding-right:22px}.flight-grid-3 .select-caret{right:8px}.flight-ok{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.flight-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.flight-badge{background:var(--navy);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.04em}.flight-duration{margin-left:auto;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.icon-btn{border:none;background:transparent;width:36px;height:36px;border-radius:8px;font-size:16px;cursor:pointer;color:var(--muted)}.icon-btn.danger:active{background:#fde7ea;color:var(--red)}.btn{width:100%;min-height:var(--tap);border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer}.btn.add{background:#fff;color:var(--navy);border:1.5px dashed var(--line)}.btn.add:disabled{opacity:.5}.btn.primary{background:var(--navy);color:#fff}.btn.primary:disabled{background:#9aa6b6}.btn.submit{border-bottom:3px solid var(--red)}.btn.small{min-height:40px;width:auto;padding:0 16px;font-size:14px;background:var(--navy);color:#fff;margin-top:8px}.summary{background:linear-gradient(180deg,#fff,#f7f9fc)}.summary-total{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--green-soft);border-radius:10px;margin-bottom:12px}.summary-total.secondary{background:#f0f3f8;margin-bottom:0}.summary-total strong{font-size:20px;color:var(--navy);font-variant-numeric:tabular-nums}.summary-total small{font-size:12px;color:var(--muted);font-weight:500}.summary-block h3{font-size:13px;color:var(--muted);margin:0 0 8px}.summary-list{list-style:none;margin:0 0 12px;padding:0}.summary-list li{display:flex;justify-content:space-between;padding:8px 4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.summary-list li:last-child{border-bottom:none}.syncbar{font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;text-align:center}.syncbar.idle{background:#eef1f5;color:var(--muted)}.syncbar.saving{background:#fff4e0;color:#8a5b12}.syncbar.saved{background:var(--green-soft);color:#1c6b48}.syncbar.error,.syncbar.demo{background:#fdeaed;color:#8a1023}.submit-hint{margin:8px 2px 0;font-size:12px;color:var(--muted);text-align:center}.banner{background:#eaf0f8;border-radius:10px;padding:12px 14px;font-size:14px}.banner.error{background:#fdeaed;color:#8a1023}.problems{list-style:none;margin:0;padding:12px 14px;background:#fff7e6;border:1px solid #f4d58a;border-radius:10px;font-size:13px;color:#7a5b12}.problems li{padding:2px 0}.muted{color:var(--muted)}.confirm{text-align:center;padding:32px 20px}.confirm-check{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:var(--green);color:#fff;font-size:34px;display:flex;align-items:center;justify-content:center}.confirm h2{margin:0 0 8px;color:var(--navy)}.confirm p{color:var(--muted);margin:0 0 20px}.foot-space{height:calc(env(safe-area-inset-bottom) + 8px)}
