.crew-page{display:flex;flex-direction:column;gap:16px;min-width:0}.crew-footer,.crew-heading,.crew-period-heading,.crew-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.crew-heading h1{margin:0;font-size:28px;letter-spacing:-.6px}.crew-heading p,.crew-hint{color:var(--ml-muted,#64748b);margin:5px 0;font-size:13px}.crew-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.crew-toolbar{padding:12px;border:1px solid var(--ml-border,#dce3eb);border-radius:12px;background:var(--ml-surface,#fff)}.crew-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:12px;align-items:end}.crew-period-heading h2{font-size:17px;margin:0}.crew-footer,.crew-period-heading>span{font-size:12px;color:var(--ml-muted,#64748b)}.crew-calendar{overflow:auto;max-width:100%;border:1px solid var(--ml-border,#dce3eb);border-radius:12px;background:var(--ml-surface,#fff);max-height:65vh}.crew-calendar-header,.crew-calendar-row{display:grid;grid-template-columns:220px calc(var(--crew-days) * var(--crew-cell));min-width:max-content;border-bottom:1px solid var(--ml-border,#dce3eb)}.crew-calendar-header{top:0;z-index:4}.crew-calendar-header,.crew-row-label{position:sticky;background:var(--ml-surface,#fff)}.crew-row-label{display:flex;align-items:center;justify-content:space-between;gap:6px;left:0;z-index:3;font-size:12px;font-weight:600;border-right:1px solid var(--ml-border,#dce3eb);padding:12px;min-height:55px;box-sizing:border-box}.crew-depth-0 .crew-row-label{color:var(--ml-text);background:var(--ml-surface-subtle)}.crew-depth-1 .crew-row-label{min-height:40px}.crew-row-label span{overflow:hidden;text-overflow:ellipsis}.crew-day-grid{display:grid;grid-template-columns:repeat(var(--crew-days),var(--crew-cell))}.crew-day{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border-right:1px solid var(--ml-border,#dce3eb);font-size:11px;min-height:58px}.crew-day small{color:var(--ml-muted,#64748b);font-size:9px}.crew-day strong{font-size:9px;color:var(--ml-accent)}.crew-today{background:var(--ml-accent-subtle)!important}.crew-row-track{position:relative;min-height:55px;display:grid}.crew-day-cells{grid-area:1/1}.crew-day-cells button{border:0;border-right:1px solid var(--ml-border,#dce3eb);background:transparent;min-height:55px;cursor:pointer}.crew-day-cells button:disabled{cursor:default}.crew-day-cells .crew-weekend{background:var(--ml-surface-subtle)}.crew-day-cells button:hover:not(:disabled){background:var(--ml-accent-subtle)}.crew-bars{grid-area:1/1;z-index:1;pointer-events:none;align-content:center;gap:3px 0;padding:4px 0}.crew-bar{pointer-events:auto;border:1px solid var(--ml-info-border);background:var(--ml-info-subtle);color:var(--ml-info);border-radius:5px;margin:0 2px;font-size:11px;min-height:34px;padding:4px;text-align:left;overflow:hidden;white-space:nowrap;grid-row:auto}.crew-bar small,.crew-bar strong{display:block;overflow:hidden;text-overflow:ellipsis}.crew-bar small{font-size:9px}.crew-bar-vessel{background:var(--ml-marine-subtle);border-color:var(--ml-border);color:var(--ml-marine-text)}.crew-bar-absence{background:var(--ml-warning-subtle);border-color:var(--ml-warning-border);color:var(--ml-warning)}.crew-empty{align-items:center;padding:26px;color:var(--ml-muted,#64748b);font-size:14px}.crew-empty,.crew-form{display:flex;flex-direction:column}.crew-form{gap:18px}.crew-form fieldset{border:0;padding:0;display:flex;flex-direction:column;gap:16px;min-width:0}.crew-form .crew-role-picker{border:1px solid var(--ml-border,#dce3eb);border-radius:8px;padding:12px;gap:8px}.crew-role-picker legend{font-size:12px;font-weight:600}.crew-role-picker label{display:flex;gap:8px;align-items:center;font-size:13px}.crew-role-picker ol{padding-left:18px;margin:0}.crew-role-picker li{font-size:12px;padding:3px}.crew-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.crew-transfer-preview{padding:12px;border:1px solid var(--ml-border,#dce3eb);border-radius:8px;font-size:13px}@media (max-width:850px){.crew-filters{grid-template-columns:1fr 1fr}.crew-calendar-header,.crew-calendar-row{grid-template-columns:160px calc(var(--crew-days) * var(--crew-cell))}.crew-heading h1{font-size:24px}}