/* Shared web controls. Action colours do not depend on the element or page. */
:root{--action-blue:#176b9d;--action-blue-hover:#11577f;--action-surface:#fff;--action-tint:#eaf4fa;--action-radius:10px;--action-height:44px}
body .btn,body .go-experience .btn,body .dashboard-flights .btn,
body .btn:is(.primary,.secondary,.tertiary,.success,.danger,.warning),
body .go-experience .btn:is(.primary,.secondary,.tertiary,.success,.danger,.warning),
body .tp-performance-actions .btn,body .roundflight-admin-actions .btn.secondary,
body .boarding-send-card .boarding-actions .btn:not([disabled]),
body .dashboard-flights .flight-detail-action .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--action-height);height:auto;max-width:100%;padding:10px 16px;
  border:1px solid var(--action-blue);border-radius:var(--action-radius);
  background:var(--action-blue);color:#fff;box-shadow:none;
  font:inherit;font-weight:700;line-height:1.35;text-align:center;text-decoration:none;
  white-space:normal;overflow-wrap:anywhere;vertical-align:middle;cursor:pointer;
  transition:background-color .15s,border-color .15s,box-shadow .15s;
}
body .btn:hover,body .go-experience .btn:hover,body .dashboard-flights .btn:hover,
body .btn:is(.primary,.secondary,.tertiary,.success,.danger,.warning):hover,
body .go-experience .btn:is(.primary,.secondary,.tertiary,.success,.danger,.warning):hover,
body .tp-performance-actions .btn:hover,body .roundflight-admin-actions .btn.secondary:hover,
body .boarding-send-card .boarding-actions .btn:not([disabled]):hover,
body .dashboard-flights .flight-detail-action .btn:hover{background:var(--action-blue-hover);border-color:var(--action-blue-hover);color:#fff;transform:none;filter:none}
body .btn.small{min-height:38px;padding:8px 12px;font-size:.88rem}
body .btn:focus-visible,body .star-button:focus-visible,body .more-menu-item:focus-visible{outline:3px solid #27b7d3;outline-offset:3px}
body .btn:disabled,body .btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
body .btn:disabled:hover{background:var(--action-blue);border-color:var(--action-blue)}
/* Keep the deliberate emergency/armed cockpit state distinct from ordinary actions. */
body .btn.checklist-emergency-button,body .btn.checklist-reset-button.is-armed{background:#a72f37;border-color:#a72f37;color:#fff}
body .btn.checklist-emergency-button:hover,body .btn.checklist-reset-button.is-armed:hover{background:#8c2630;border-color:#8c2630}
body .workspace-switch .btn{min-height:34px;padding:5px 10px;border-radius:7px;font-size:.8rem}
/* Rating is a selection, with a persistent selected state rather than a success colour. */
body .star-button{min-height:38px;border-color:var(--action-blue);color:var(--action-blue);background:#fff;border-radius:var(--action-radius)}
body .star-button:hover,body .star-button.selected{background:var(--action-blue);border-color:var(--action-blue);color:#fff}
body .star-button.selected{box-shadow:0 0 0 2px #a9d4e9}
body .pilot-modal-close,body .pilot-search-clear{color:var(--action-blue);border-radius:var(--action-radius)}
/* Prevent hidden actions from reappearing through a more specific display rule. */
body [hidden]:not([hidden="until-found"]){display:none!important}
/* One spacing and alignment system for ordinary forms, action rows and cards. */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid>.field,.form-grid>label,.grid>.card,.card>form,.card>details{min-width:0}
.form-grid>label:not(.check):not(:has(input[type=checkbox],input[type=radio])){display:flex;flex-direction:column;gap:7px}
.form-grid>.btn{align-self:end;justify-self:start}
.field input,.field select,.field textarea,.form-grid>label>input,.form-grid>label>select,.form-grid>label>textarea{min-width:0;max-width:100%}
.field input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.field select{min-height:var(--action-height)}
.actions{align-items:center;gap:12px;min-width:0}
.actions>.btn,.actions>form{max-width:100%}
.actions>form{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.section-head{flex-wrap:wrap;align-items:center;gap:12px 16px}
.section-head>div{min-width:0;max-width:100%}
.section-head h2,.card h2,.card h3{overflow-wrap:anywhere}
.section-head>.actions{margin-left:auto}
main>.card+.card{margin-top:20px}
.grid>.card+.card,.feature-request-list>.card+.card,.aircraft-management-stack>.card+.card{margin-top:0}
.more-menu-item{min-width:0;transition:border-color .15s,box-shadow .15s}
.more-menu-item:hover{transform:none;border-color:#87b7d1;box-shadow:0 8px 24px rgba(11,31,51,.09)}
.more-menu-item strong,.more-menu-item small{overflow-wrap:anywhere}
.table-wrap,.table-scroll{max-width:100%;overscroll-behavior-x:contain}
.table-wrap:focus-visible,.table-scroll:focus-visible{outline:3px solid #27b7d3;outline-offset:3px}
.table td .btn{vertical-align:middle}
/* Planning and supporting actions keep their established separate rows. */
.dashboard-action-groups{display:grid;gap:12px;margin-top:16px}
.flymate-dashboard-hero .dashboard-action-groups .actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin:0}
.flymate-dashboard-hero .dashboard-action-groups .btn{min-height:44px;padding:10px 16px;font-size:.88rem;line-height:1.35;max-width:100%}
@media(max-width:720px){
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .form-grid>.btn{justify-self:stretch;width:100%}
  .section-head{align-items:flex-start}
  .section-head>.actions{margin-left:0}
  .flymate-dashboard-hero .dashboard-action-groups{grid-column:1/-1;margin-top:6px}
  .flymate-dashboard-hero .dashboard-action-groups .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .flymate-dashboard-hero .dashboard-action-groups .btn{width:100%;min-width:0}
}
@media(max-width:480px){.actions>.btn,.actions>form{flex:1 1 auto}.actions>form>.btn:only-of-type{width:100%}.more-menu-item{padding:16px;gap:10px}}
@media(max-width:380px){.flymate-dashboard-hero .dashboard-action-groups .actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){body .btn,.more-menu-item{transition:none}}

/* Reservation switch: visible keyboard focus in create and edit views. */
.reservation-toggle input:focus-visible+i{outline:3px solid #27b7d3;outline-offset:3px}

/* Destructive confirmations retain the established red action colour. */
body .btn.danger,body .go-experience .btn.danger,
body .tp-performance-actions .btn.danger,body .roundflight-admin-actions .btn.danger,
body .boarding-send-card .boarding-actions .btn.danger{
  background:#ad303a;border-color:#ad303a;color:#fff;
}
body .btn.danger:hover,body .go-experience .btn.danger:hover,
body .tp-performance-actions .btn.danger:hover,body .roundflight-admin-actions .btn.danger:hover,
body .boarding-send-card .boarding-actions .btn.danger:hover{
  background:#912833;border-color:#912833;color:#fff;
}
body .btn.danger:disabled:hover{background:#ad303a;border-color:#ad303a}
