:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;line-height:1.45;color:#1a1a1a;background:#f0f2f5}*,*:before,*:after{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.app{max-width:1280px;margin:0 auto;padding:1rem 1.25rem 2rem}.app__header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1.25rem}.app__title{margin:0;font-size:1.35rem;font-weight:650}.app__toolbar{display:flex;flex-wrap:wrap;gap:.5rem}.app__tabs{display:flex;gap:.35rem;margin-bottom:1rem;border-bottom:1px solid #d8dde3;padding-bottom:.02rem}.app__tab{font:inherit;padding:.45rem .85rem;border:none;border-radius:6px 6px 0 0;background:transparent;color:#3d4550;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;display:inline-block}.app__tab:link,.app__tab:visited{color:inherit}.app__tab:hover{background:#ebeef2}.app__tab--active{font-weight:650;color:#174a73;border-bottom-color:#1e5a8c;background:#fff}.phone-tail .phone-tail__digits{color:#0d47a1;font-weight:700}.boarding-list__search-label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.boarding-list__search-caption{font-size:.88rem;font-weight:600;color:#3d4550}.boarding-list__search-input{width:100%;max-width:22rem}.boarding-list{padding:1rem 1.1rem}.boarding-list__body{display:flex;flex-direction:column;gap:1.25rem}.boarding-list__empty{margin-top:.75rem}.boarding-yacht__title{margin:0 0 .65rem;font-size:1.08rem;font-weight:650}.boarding-yacht__items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.85rem}.boarding-item{padding:.75rem .85rem;border:1px solid #cdd3db;border-radius:8px;background:#fafbfc}.boarding-item__phone{font-size:1rem;margin-bottom:.35rem}.boarding-item__cash{font-size:.92rem;margin-bottom:.65rem;color:#3d4550}.boarding-item__actions{display:flex;flex-wrap:wrap;gap:.45rem}.boarding-item__btn--on{background:#e6f4ec;border-color:#2e8b57;color:#1b5c3a;font-weight:600}.boarding-item__btn--off{background:#fce8e8;border-color:#c62828;color:#8b1010;font-weight:600}.app__grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1.25rem;align-items:start}@media (max-width: 900px){.app__grid{grid-template-columns:1fr}}.panel{background:#fff;border:1px solid #d8dde3;border-radius:8px;padding:1rem}.panel__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.panel__title{margin:0;font-size:1.05rem;font-weight:650}.panel__title--solo{margin-bottom:.75rem}.unassigned-drop{min-height:120px;display:flex;flex-direction:column;gap:.65rem;padding:.5rem;border:2px dashed #c5cbd4;border-radius:6px;background:#fafbfc}.unassigned-drop--over{border-color:#2f6fed;background:#eef4ff}.yacht-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media (max-width: 1100px){.yacht-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.yacht-grid{grid-template-columns:1fr}}.yacht-card-wrap--over .yacht-shell{outline:2px solid #2f6fed;outline-offset:1px}.yacht-shell{border-radius:8px;padding:.75rem;min-height:180px;border:2px solid transparent}.yacht-shell--green{border-color:#2e8b57;background:#f4fff8}.yacht-shell--yellow{border-color:#c9a012;background:#fffbeb}.yacht-shell--red{border-color:#c62828;background:#fff5f5}.yacht-card__title{margin:0 0 .35rem;font-size:1rem}.yacht-card__stats{margin:.15rem 0;font-size:.88rem}.yacht-card__warnings{margin:.4rem 0 0;padding-left:1.1rem;font-size:.82rem;color:#8a6d00}.yacht-card__hint{margin:.35rem 0 0;font-size:.82rem;font-weight:600}.yacht-card__hint--warn{color:#8a6d00}.yacht-card__hint--bad{color:#b71c1c}.yacht-card__list{margin-top:.65rem;display:flex;flex-direction:column;gap:.5rem}.booking-card{background:#fff;border:1px solid #cdd3db;border-radius:6px;padding:.55rem .65rem;cursor:grab;font-size:.88rem;touch-action:none}.booking-card--source{outline:2px dashed #1e5a8c;outline-offset:2px;background:#e8f0f7}.booking-card--overlay{box-shadow:0 10px 28px #00000029,0 4px 10px #00000014;border-color:#1e5a8c;cursor:grabbing;max-width:min(320px,92vw);background:#fff;transform-origin:top left}.booking-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:.35rem}.booking-card__name{font-size:.92rem}.booking-card__actions{display:flex;flex-wrap:wrap;gap:.25rem;flex-shrink:0}.booking-card__row{margin-top:.2rem}.booking-card--arrived{border-left:4px solid #2e8b57;background:#f7fdf9}.booking-card--noshow{border-left:4px solid #b71c1c;background:#fff8f8}.booking-card__attendance{margin-top:.5rem;padding-top:.45rem;border-top:1px solid #e5e9ef}.booking-card__att-label{display:block;font-size:.75rem;color:#5c6370;margin-bottom:.35rem}.attendance-btns{display:flex;flex-wrap:wrap;gap:.35rem}.attendance-btn{font:inherit;font-size:.78rem;padding:.25rem .5rem;border-radius:5px;border:1px solid #b8c0cc;background:#fff;cursor:pointer;color:#333}.attendance-btn:hover{background:#f3f5f7}.attendance-btn--arrived{background:#e6f4ec;border-color:#2e8b57;color:#1b5c3a;font-weight:600}.attendance-btn--noshow{background:#fce8e8;border-color:#c62828;color:#8b1010;font-weight:600}.booking-card__att-pill{margin-top:.45rem;font-size:.78rem;font-weight:600;padding:.2rem .45rem;border-radius:4px;display:inline-block}.booking-card__att-pill--arrived{background:#e6f4ec;color:#1b5c3a}.booking-card__att-pill--noshow{background:#fce8e8;color:#8b1010}.muted{color:#5c6370}.small{font-size:.82rem}.btn{font:inherit;padding:.35rem .65rem;border-radius:6px;border:1px solid #b8c0cc;background:#fff;cursor:pointer}.btn:hover{background:#f3f5f7}.btn--primary{background:#1e5a8c;color:#fff;border-color:#174a73}.btn--primary:hover{background:#174a73}.btn--small{font-size:.75rem;padding:.2rem .45rem}.btn--danger{color:#b71c1c;border-color:#e0a0a0}.btn--danger:hover{background:#fff0f0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:#fff;border-radius:10px;padding:1.25rem;width:100%;max-width:420px;border:1px solid #cfd6df}.modal__title{margin:0 0 1rem;font-size:1.1rem}.modal__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.form__label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;margin-bottom:.65rem}.form__input{font:inherit;padding:.4rem .5rem;border:1px solid #b8c0cc;border-radius:6px}.form__error{color:#b71c1c;font-size:.88rem;margin:0 0 .5rem}
