:root,[data-theme=indigo]{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Outfit", var(--font-sans);--bg-primary: #0b0f19;--bg-secondary: #111827;--bg-glass: rgba(17, 24, 39, .7);--bg-glass-hover: rgba(31, 41, 55, .8);--bg-select: #1e293b;--bg-select-hover: #334155;--border-glass: rgba(255, 255, 255, .08);--border-glass-glow: rgba(99, 102, 241, .3);--accent-solid: #818cf8;--accent-muted: #a5b4fc;--focus-ring: rgba(99, 102, 241, .25);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--mesh-1: rgba(99, 102, 241, .12);--mesh-2: rgba(236, 72, 153, .08);--mesh-3: rgba(6, 182, 212, .05);--grad-primary: linear-gradient(135deg, #6366f1 0%, #a855f7 50%, #ec4899 100%);--grad-accent: linear-gradient(135deg, #06b6d4 0%, #3b82f6 100%);--grad-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--grad-warning: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--grad-danger: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--shadow-sm: 0 2px 8px -2px rgba(0, 0, 0, .5);--shadow-md: 0 8px 30px -4px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(99, 102, 241, .15);--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=ocean]{--border-glass-glow: rgba(6, 182, 212, .35);--accent-solid: #22d3ee;--accent-muted: #67e8f9;--focus-ring: rgba(6, 182, 212, .28);--mesh-1: rgba(6, 182, 212, .14);--mesh-2: rgba(59, 130, 246, .1);--mesh-3: rgba(14, 165, 233, .06);--grad-primary: linear-gradient(135deg, #06b6d4 0%, #3b82f6 50%, #0ea5e9 100%);--shadow-glow: 0 0 20px rgba(6, 182, 212, .18)}[data-theme=emerald]{--border-glass-glow: rgba(16, 185, 129, .35);--accent-solid: #34d399;--accent-muted: #6ee7b7;--focus-ring: rgba(16, 185, 129, .28);--mesh-1: rgba(16, 185, 129, .12);--mesh-2: rgba(5, 150, 105, .1);--mesh-3: rgba(20, 184, 166, .06);--grad-primary: linear-gradient(135deg, #10b981 0%, #059669 50%, #14b8a6 100%);--shadow-glow: 0 0 20px rgba(16, 185, 129, .18)}[data-theme=sunset]{--border-glass-glow: rgba(249, 115, 22, .35);--accent-solid: #fb923c;--accent-muted: #fdba74;--focus-ring: rgba(249, 115, 22, .28);--mesh-1: rgba(245, 158, 11, .12);--mesh-2: rgba(249, 115, 22, .1);--mesh-3: rgba(239, 68, 68, .06);--grad-primary: linear-gradient(135deg, #f59e0b 0%, #f97316 50%, #ef4444 100%);--shadow-glow: 0 0 20px rgba(249, 115, 22, .18)}[data-theme=rose]{--border-glass-glow: rgba(244, 63, 94, .35);--accent-solid: #fb7185;--accent-muted: #fda4af;--focus-ring: rgba(244, 63, 94, .28);--mesh-1: rgba(244, 63, 94, .12);--mesh-2: rgba(236, 72, 153, .1);--mesh-3: rgba(217, 70, 239, .06);--grad-primary: linear-gradient(135deg, #f43f5e 0%, #ec4899 50%, #d946ef 100%);--shadow-glow: 0 0 20px rgba(244, 63, 94, .18)}html,html[data-appearance=dark]{color-scheme:dark}html[data-appearance=light]{color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);background-image:radial-gradient(at 0% 0%,var(--mesh-1) 0px,transparent 50%),radial-gradient(at 100% 100%,var(--mesh-2) 0px,transparent 50%),radial-gradient(at 50% 50%,var(--mesh-3) 0px,transparent 60%);background-attachment:fixed;color:var(--text-primary);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.25}.glass-panel{background:var(--bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:16px;box-shadow:var(--shadow-md);transition:border-color var(--transition-normal),transform var(--transition-normal),box-shadow var(--transition-normal)}.glass-panel:hover{border-color:var(--border-glass-glow);box-shadow:var(--shadow-md),var(--shadow-glow)}.app-container{max-width:1400px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2rem}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2rem}.brand-section{display:flex;align-items:center;gap:.75rem}.brand-logo-glow{width:42px;height:42px;border-radius:12px;background:var(--grad-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px #6366f166}.brand-title{font-size:1.5rem;font-weight:800;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:20px;background:#ffffff08;border:1px solid var(--border-glass)}.status-dot{width:8px;height:8px;border-radius:50%;position:relative}.status-dot.online{background-color:#10b981;box-shadow:0 0 10px #10b981}.status-dot.offline{background-color:#ef4444;box-shadow:0 0 10px #ef4444}.status-dot.connecting{background-color:#f59e0b;box-shadow:0 0 10px #f59e0b;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.stat-card{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--grad-primary)}.stat-card:nth-child(2):before{background:var(--grad-accent)}.stat-card:nth-child(3):before{background:var(--grad-success)}.stat-card:nth-child(4):before{background:var(--grad-warning)}.stat-header{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:.875rem}.stat-icon-wrapper{width:38px;height:38px;border-radius:8px;background:#ffffff0a;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.05)}.stat-value{font-size:2.25rem;font-weight:700;font-family:var(--font-display);letter-spacing:-.02em;margin:.25rem 0}.stat-footer{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.trend-badge{padding:.125rem .5rem;border-radius:4px;font-weight:600}.trend-badge.up{background:#10b98126;color:#10b981}.trend-badge.down{background:#ef444426;color:#ef4444}.trend-badge.neutral{background:#9ca3af26;color:#9ca3af}.content-section{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}@media (max-width: 968px){.content-section{grid-template-columns:1fr}}.panel-title-area{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.panel-title{font-size:1.15rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.panel-body{padding:1.5rem}.activity-table{width:100%;border-collapse:collapse;text-align:left}.activity-table th{padding:.75rem 1rem;color:var(--text-secondary);font-weight:500;font-size:.8125rem;border-bottom:1px solid rgba(255,255,255,.05);text-transform:uppercase;letter-spacing:.05em}.activity-table td{padding:1rem;font-size:.875rem;border-bottom:1px solid rgba(255,255,255,.03)}.activity-table tr:last-child td{border-bottom:none}.activity-table tr:hover td{background:#ffffff03}.badge{padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600}.badge.success{background:#10b98126;color:#10b981}.badge.warning{background:#f59e0b26;color:#f59e0b}.test-panel{display:flex;flex-direction:column;gap:1rem}.info-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.875rem}.info-row:last-of-type{border-bottom:none}.info-label{color:var(--text-secondary)}.info-value{font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;font-family:var(--font-sans);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:none}.btn-primary{background:var(--grad-primary);color:#fff;box-shadow:0 4px 15px #6366f14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.btn-primary:active{transform:translateY(0)}.btn-outline{background:transparent;border:1px solid var(--border-glass);color:var(--text-primary)}.btn-outline:hover{background:#ffffff0a;border-color:var(--border-glass-glow)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:slideUp .6s cubic-bezier(.16,1,.3,1) forwards}.login-wrapper{display:flex;justify-content:center;align-items:center;min-height:90vh;padding:1.5rem}.login-card{width:100%;max-width:440px;padding:3rem 2.5rem;display:flex;flex-direction:column;gap:1.75rem;border-radius:24px}.login-header{text-align:center}.login-title{font-size:1.85rem;font-weight:800;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.25rem}.login-subtitle{font-size:.875rem;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);letter-spacing:.03em}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;color:var(--text-muted);transition:color var(--transition-fast)}.input-field{width:100%;padding:.875rem 1rem .875rem 2.75rem;background:#ffffff08;border:1px solid var(--border-glass);border-radius:12px;color:var(--text-primary);font-family:var(--font-sans);font-size:.9375rem;transition:all var(--transition-normal)}.input-field:focus{outline:none;background:#ffffff0d;border-color:var(--border-glass-glow);box-shadow:0 0 15px var(--focus-ring)}.input-field:focus+.input-icon{color:var(--accent-solid)}select.input-field,.input-field-select{padding:.65rem 2.25rem .65rem .85rem;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--bg-select);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}select.input-field:hover:not(:disabled),.input-field-select:hover:not(:disabled){background-color:var(--bg-select-hover);border-color:var(--border-glass-glow)}select.input-field option,select.input-field optgroup{background-color:#1e293b;color:#f3f4f6}select.input-field option:checked,select.input-field option:hover{background-color:#334155;color:#fff}.login-btn{width:100%;padding:.95rem;font-size:.95rem;border-radius:12px;margin-top:.5rem}.login-error-badge{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:12px;color:#f87171;font-size:.875rem;line-height:1.4;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.login-footer-hint{text-align:center;font-size:.75rem;color:var(--text-muted);background:#ffffff05;padding:.6rem;border-radius:8px;border:1px solid rgba(255,255,255,.03)}.shake{animation:shakeAction .5s ease-in-out}@keyframes shakeAction{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}.app-layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh}@media (max-width: 968px){.app-layout{grid-template-columns:1fr}.app-sidebar{display:none}}.app-sidebar{border-right:1px solid var(--border-glass);padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2.5rem;height:100vh;position:sticky;top:0}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding-left:.5rem}.sidebar-menu{display:flex;flex-direction:column;gap:.5rem;list-style:none}.sidebar-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1.25rem;border-radius:12px;color:var(--text-secondary);font-family:var(--font-display);font-weight:500;font-size:.9375rem;cursor:pointer;transition:all var(--transition-normal);border:1px solid transparent}.sidebar-item:hover{background:#ffffff08;color:var(--text-primary);border-color:var(--border-glass)}.sidebar-item.active{background:var(--grad-primary);color:#fff;box-shadow:0 4px 15px #6366f159;border-color:transparent;font-weight:600}.sidebar-master-group{display:flex;flex-direction:column;gap:.25rem}.sidebar-master-toggle{width:100%;text-align:left;border:1px solid transparent;background:transparent;cursor:pointer;font:inherit}.sidebar-master-toggle span:first-of-type{flex:1}.sidebar-submenu{list-style:none;margin:0 0 0 .5rem;padding:0 0 0 .75rem;border-left:1px solid var(--border-glass);display:flex;flex-direction:column;gap:.25rem}.sidebar-subitem{width:100%;text-align:left;padding:.5rem .75rem;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:all var(--transition-fast)}.sidebar-subitem:hover{background:#ffffff08;color:var(--text-primary)}.sidebar-subitem.active{background:#22d3ee26;color:#67e8f9;border-color:#22d3ee40}.master-management .master-table{min-width:520px}.master-form-dialog{max-width:480px}.master-form{display:flex;flex-direction:column;gap:.75rem}.master-color-input{display:flex;align-items:center;gap:.5rem}.master-color-picker{width:42px;height:36px;padding:0;border:1px solid var(--border-glass);border-radius:8px;background:transparent;cursor:pointer}.master-color-swatch{display:inline-flex;align-items:center;gap:.4rem}.master-color-dot{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.2);flex-shrink:0}.sidebar-footer{margin-top:auto;padding:1rem;background:#ffffff05;border-radius:12px;border:1px solid rgba(255,255,255,.03);display:flex;flex-direction:column;gap:.75rem}.admin-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 1100px){.admin-menu-grid{grid-template-columns:1fr}}.admin-card{height:100%}.hide-on-mobile{display:inline}@media (max-width: 600px){.hide-on-mobile{display:none}}.allocation-timeline{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.allocation-row{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:1rem;padding:1rem;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:12px;transition:all var(--transition-fast)}.allocation-row:hover{background:#ffffff0a;border-color:var(--border-glass-glow)}.vessel-name{font-weight:600;font-family:var(--font-display);font-size:.95rem;color:var(--text-primary)}.timeline-track{background:#ffffff08;height:14px;border-radius:7px;position:relative;overflow:hidden}.timeline-bar{position:absolute;height:100%;border-radius:7px;box-shadow:0 0 10px #6366f133}.crew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.crew-card{padding:1.5rem;display:flex;align-items:center;gap:1.25rem}.crew-avatar-glow{width:56px;height:56px;border-radius:50%;background:var(--grad-accent);display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px #06b6d44d;font-weight:700;font-size:1.2rem;font-family:var(--font-display);color:#fff}.crew-details{display:flex;flex-direction:column;gap:.25rem}.crew-name{font-weight:600;font-size:1.05rem;font-family:var(--font-display)}.crew-title{font-size:.8rem;color:var(--text-secondary)}.crew-status-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:4px;width:fit-content}.crew-status-badge.onboard{background:#10b98126;color:#10b981}.crew-status-badge.vacation{background:#f59e0b26;color:#f59e0b}.app-main{min-height:100vh;gap:1rem}.app-content{flex:1;min-height:0;display:flex;flex-direction:column}.crew-registry{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}.crew-registry-panel{flex:1;min-height:0;display:flex;flex-direction:column}.crew-table-wrapper{flex:1;width:100%;min-height:14rem;overflow:auto;scrollbar-gutter:stable}.crew-master-table{table-layout:fixed}.crew-resizable-th{position:relative;padding-right:.35rem!important}.crew-col-resizer{position:absolute;right:0;top:0;bottom:0;width:8px;margin-right:-4px;cursor:col-resize;z-index:3;touch-action:none}.crew-col-resizer:hover,.crew-col-resizer:active{background:#06b6d473}.crew-master-table th,.crew-master-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-sort-btn{max-width:calc(100% - 10px)}.crew-table-empty-row:hover td{background:transparent}.crew-master-table .crew-action-cell{overflow:visible;text-overflow:clip}.crew-sort-btn{display:inline-flex;align-items:center;gap:.35rem;padding:0;margin:0;border:none;background:none;color:inherit;font:inherit;font-weight:500;letter-spacing:inherit;text-transform:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.crew-sort-btn:hover{color:var(--text-primary)}.crew-sort-btn-active{color:#22d3ee}.crew-sort-icon-muted{opacity:.35}.crew-sort-btn:hover .crew-sort-icon-muted{opacity:.65}.crew-address-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-meta-tag{font-family:monospace;font-size:.75rem;padding:.15rem .45rem;border-radius:4px;background:#06b6d41f;color:#22d3ee}.crew-company-tag{display:inline-flex;align-items:center;font-size:.8rem;padding:.2rem .55rem;border-radius:6px;background:#a855f71f;color:#c084fc;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.crew-search-bar{position:relative;display:flex;align-items:center;margin-bottom:1rem;flex-shrink:0}.crew-search-icon{position:absolute;left:1rem;color:var(--text-muted);pointer-events:none;z-index:1}.crew-search-input{width:100%;padding:.75rem 2.75rem!important;font-size:.875rem!important;border-radius:10px!important}.crew-search-input::-webkit-search-cancel-button{display:none}.crew-search-clear{position:absolute;right:.65rem;display:flex;align-items:center;justify-content:center;padding:.35rem;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.crew-search-clear:hover{color:var(--text-primary);background:#ffffff0f}.crew-table-resize-hint{margin:-.5rem 0 .75rem;font-size:.7rem;color:var(--text-muted)}.crew-table-empty-row td{padding:2.5rem 1rem!important;text-align:center;white-space:normal;overflow:visible;text-overflow:clip;vertical-align:middle}.crew-table-empty-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:12rem;color:var(--text-secondary)}.crew-toggle{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8rem;color:var(--text-secondary);-webkit-user-select:none;user-select:none;padding:.35rem .65rem;border-radius:10px;border:1px solid var(--border-glass);background:#ffffff05;transition:all var(--transition-fast)}.crew-toggle:hover{border-color:var(--border-glass-glow);color:var(--text-primary)}.crew-toggle input{position:absolute;opacity:0;width:0;height:0}.crew-toggle-track{position:relative;width:36px;height:20px;border-radius:10px;background:#ffffff14;border:1px solid var(--border-glass);transition:all var(--transition-fast);flex-shrink:0}.crew-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-muted);transition:all var(--transition-fast)}.crew-toggle input:checked+.crew-toggle-track{background:#f59e0b33;border-color:#f59e0b66}.crew-toggle input:checked+.crew-toggle-track:after{transform:translate(16px);background:#f59e0b}.crew-toggle input:focus-visible+.crew-toggle-track{box-shadow:0 0 0 2px #06b6d459}.crew-toggle-count{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;background:#f59e0b26;color:#f59e0b}.crew-row-retired td{opacity:.85}.crew-row-retired .crew-name,.crew-row-retired td:first-child{color:var(--text-muted)}.crew-action-buttons{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem}.crew-edit-btn{padding:.35rem .65rem!important;font-size:.75rem!important;gap:.35rem!important}.crew-delete-btn{color:#f87171!important;border-color:#f8717159!important}.crew-delete-btn:hover:not(:disabled){background:#f871711f!important;border-color:#f871718c!important}.crew-confirm-overlay{align-items:center;justify-content:center;padding:1rem}.crew-confirm-dialog{width:100%;max-width:440px;padding:1.25rem 1.5rem;border-radius:12px;animation:fadeInOverlay .2s ease}.crew-confirm-dialog-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.crew-confirm-dialog-header h3{font-size:1.05rem;margin:0}.crew-confirm-dialog-desc{font-size:.9rem;line-height:1.55;color:var(--text-secondary);margin:0 0 1rem}.crew-confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.crew-delete-confirm-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:8px;cursor:pointer;box-shadow:0 4px 12px #dc262659;transition:opacity var(--transition-fast)}.crew-delete-confirm-btn:hover:not(:disabled){opacity:.92}.crew-delete-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.crew-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:10000;display:flex;flex-direction:column;padding:0;margin:0;overflow:hidden;background:#000000b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeInOverlay .2s ease}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.crew-modal{display:flex;flex-direction:column;width:100%;max-width:100%;height:100%;max-height:100dvh;margin:0;padding:1.25rem 1.5rem;border-radius:0;overflow:hidden;box-sizing:border-box;animation:fadeInOverlay .25s ease}.crew-modal-fullscreen{flex:1;min-height:0}.crew-modal-error{flex-shrink:0;margin-bottom:.75rem}.crew-modal-scroll{flex:1;min-height:0;overflow-y:auto;padding-right:.25rem;margin-bottom:.5rem}.crew-modal-header{flex-shrink:0;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.crew-modal-header h3{font-size:1.1rem;display:flex;align-items:center;gap:.5rem}.crew-modal-close{background:#ffffff0d;border:1px solid var(--border-glass);border-radius:8px;padding:.4rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.crew-modal-close:hover{color:var(--text-primary);border-color:var(--border-glass-glow)}.crew-edit-form{display:flex;flex-direction:column;flex:1;min-height:0;gap:0}.crew-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.crew-form-full{grid-column:1 / -1}.crew-input{padding-left:1rem!important}.date-input-wrapper{position:relative;display:flex;align-items:stretch;width:100%}.date-input-field{flex:1;min-width:0;padding-right:2.75rem!important}.date-input-field::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;width:2.75rem;height:100%;cursor:pointer}.date-input-picker-btn{position:absolute;right:0;top:0;bottom:0;width:2.75rem;display:flex;align-items:center;justify-content:center;background:#ffffff05;border:none;border-left:1px solid var(--border-glass);color:var(--text-muted);cursor:pointer;border-radius:0 12px 12px 0;transition:color var(--transition-fast),background var(--transition-fast)}.date-input-picker-btn:hover:not(:disabled){color:#22d3ee;background:#06b6d41f}.date-input-picker-btn:focus-visible{outline:2px solid rgba(6,182,212,.5);outline-offset:-2px}.date-input-picker-btn:disabled{opacity:.5;cursor:not-allowed}.crew-textarea{padding:.75rem 1rem!important;resize:vertical;min-height:80px;font-family:var(--font-sans)}.crew-modal-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;margin-top:.25rem;border-top:1px solid rgba(255,255,255,.06)}@media (max-width: 640px){.crew-form-grid{grid-template-columns:1fr}}.qual-master-table{table-layout:auto;min-width:1520px}.qual-group-header-row th{text-align:center;font-weight:600;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.08);text-transform:none}.qual-subheader-row th{font-weight:500;color:var(--text-secondary);white-space:nowrap;text-transform:none;letter-spacing:normal}.qual-group-nav{background:#06b6d414;color:#67e8f9}.qual-group-engine{background:#6366f11a;color:#a5b4fc}.qual-group-sailor{background:#10b98114;color:#6ee7b7}.qual-group-health{background:#f472b614;color:#f9a8d4}.qual-group-danger{background:#f59e0b1a;color:#fcd34d}.qual-group-stcw{background:#38bdf81a;color:#7dd3fc}.qual-sticky-name{position:sticky;left:0;z-index:2;min-width:7rem;color:#f1f5f9;background:#0f172af2;box-shadow:2px 0 6px #00000040}.qual-master-table thead .qual-sticky-name{z-index:3}.qual-expiry-expired{color:#fca5a5!important;background:#ef44441f;font-weight:600}.qual-expiry-warning{color:#fde047!important;background:#eab3081a;font-weight:500}.qual-legend{display:flex;gap:1rem;margin-top:.75rem;font-size:.75rem;color:var(--text-muted)}.qual-form-section{margin-bottom:1.5rem}.qual-form-section-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.qual-legend-item{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:4px}.dashboard-home{display:flex;flex-direction:column;gap:1.5rem}.dashboard-home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}@media (max-width: 1280px){.dashboard-home-grid{grid-template-columns:1fr 1fr}}@media (max-width: 1024px){.dashboard-home-grid{grid-template-columns:1fr}}.ship-cert-table{table-layout:auto;min-width:1200px}.ship-cert-ship-group{background:#38bdf814;color:#7dd3fc;text-align:center}.dashboard-panel-note{margin-top:1rem;font-size:.75rem;color:var(--text-muted)}.announcement-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.announcement-item{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.75rem 1rem;align-items:center;padding:.75rem 1rem;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);font-size:.875rem}@media (max-width: 640px){.announcement-item{grid-template-columns:1fr;gap:.35rem}}.announcement-date{font-size:.8125rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.announcement-title{font-weight:500}.vessel-allocation-list{display:flex;flex-direction:column;gap:.75rem}.vessel-allocation-card{padding:1rem;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05)}.vessel-allocation-header{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.75rem}.vessel-allocation-name{font-weight:600;font-size:.9375rem}.vessel-allocation-route{font-size:.75rem;color:var(--text-secondary);margin-top:.15rem}.vessel-allocation-crew{display:flex;flex-wrap:wrap;gap:.5rem}.crew-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:20px;font-size:.8125rem;background:#6366f11f;border:1px solid rgba(99,102,241,.2);color:#c7d2fe}.expiry-alert-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.expiry-alert-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04)}.expiry-alert-item.qual-expiry-expired{border-color:#ef444440}.expiry-alert-item.qual-expiry-warning{border-color:#eab30833}.expiry-alert-main{display:flex;flex-direction:column;gap:.2rem}.expiry-alert-name{font-weight:600;font-size:.9375rem}.expiry-alert-qual{font-size:.8125rem;color:var(--text-secondary)}.expiry-alert-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.expiry-alert-date{font-size:.8125rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.expiry-alert-status{font-size:.75rem;font-weight:600;padding:.2rem .5rem;border-radius:6px}.expiry-alert-status.expired{background:#ef444433;color:#fca5a5}.expiry-alert-status.warning{background:#eab30826;color:#fde047}.dashboard-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1rem;color:var(--text-muted);font-size:.875rem}.dashboard-link-btn{margin-top:1rem;width:100%;justify-content:center}.crew-assignment-panel{overflow:hidden}.crew-assignment-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.crew-assignment-title{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:.02em}.crew-assignment-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.crew-assignment-date-label{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.crew-assignment-subtitle{font-size:.8rem;color:var(--text-secondary);margin-bottom:1.25rem}.crew-assignment-subtitle strong{color:var(--text-primary)}.crew-assignment-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem;color:var(--text-muted)}.crew-assignment-body--loading{opacity:.55;pointer-events:none}.crew-assignment-empty{text-align:center;color:var(--text-muted);padding:2rem}.crew-assignment-company{margin-bottom:2rem}.crew-assignment-company-name{font-size:1.1rem;font-weight:700;color:#e0e7ff;margin-bottom:1rem;padding-bottom:.35rem;border-bottom:1px dashed rgba(255,255,255,.15)}.crew-assignment-ships{display:flex;flex-direction:column;gap:1.25rem}.crew-assignment-ship-block{background:#0003;border:1px solid var(--border-glass);border-radius:12px;overflow:hidden}.crew-assignment-ship-name{font-weight:700;font-size:.95rem;padding:.55rem 1rem;background:#6366f11f;border-bottom:1px solid var(--border-glass)}.crew-assignment-ship-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}@media (max-width: 900px){.crew-assignment-ship-grid{grid-template-columns:1fr}}.crew-assignment-side{padding:.75rem 1rem 1rem;border-right:1px dashed rgba(255,255,255,.08)}.crew-assignment-ship-grid .crew-assignment-side:last-child{border-right:none}@media (max-width: 900px){.crew-assignment-side{border-right:none;border-bottom:1px dashed rgba(255,255,255,.08)}.crew-assignment-ship-grid .crew-assignment-side:last-child{border-bottom:none}}.crew-assignment-side-title{font-size:.8rem;font-weight:700;text-align:center;padding:.35rem .5rem;border-radius:6px;margin-bottom:.65rem}.crew-assignment-side-title--on{background:#3b82f626;color:#93c5fd}.crew-assignment-side-title--off{background:#f43f5e1f;color:#fda4af}.crew-assignment-job-row{display:grid;grid-template-columns:3rem 1fr;gap:.5rem;align-items:start;margin-bottom:.5rem;min-height:2.5rem}.crew-assignment-job-label{font-size:.7rem;color:var(--text-muted);padding-top:.15rem;text-align:right}.crew-assignment-slots{display:flex;flex-wrap:wrap;gap:.35rem .75rem}.crew-assignment-slot{min-width:7.5rem;font-size:.72rem;line-height:1.35}.crew-assignment-slot-name{font-weight:600;color:var(--text-primary);white-space:nowrap}.crew-assignment-slot-dates{display:flex;flex-direction:column;gap:.1rem}.crew-assignment-date--on{color:#60a5fa}.crew-assignment-date--on-muted{color:var(--text-muted);font-size:.65rem}.crew-assignment-date--off{color:#fb7185}.crew-assignment-date--off-muted{color:var(--text-muted);font-size:.65rem}.crew-assignment-slot-empty{color:var(--text-muted);opacity:.4}.allocation-management{display:flex;flex-direction:column;gap:.75rem}.allocation-view-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.allocation-view-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:10px;border:1px solid var(--border-glass);background:#0003;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition-fast)}.allocation-view-tab:hover{border-color:#6366f159;color:var(--text-primary)}.allocation-view-tab.active{background:#6366f133;border-color:#6366f173;color:#e0e7ff;font-weight:700}[data-appearance=light] .allocation-view-tab{background:#fff;color:#334155;border-color:#cbd5e1}[data-appearance=light] .allocation-view-tab:hover{color:#1e293b;border-color:#818cf8}[data-appearance=light] .allocation-view-tab.active{background:#eef2ff;border-color:#6366f1;color:#3730a3}.promulgation-panel{max-width:1240px}.promulgation-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.promulgation-success{padding:.65rem 1rem;margin-bottom:1rem;border-radius:8px;background:#10b9811f;border:1px solid rgba(16,185,129,.3);color:#6ee7b7;font-size:.875rem}.promulgation-form{display:flex;flex-direction:column;gap:1.25rem}.promulgation-section{border:1px solid var(--border-glass);border-radius:12px;padding:1rem 1.1rem;background:#00000026}.promulgation-section--meta{background:#6366f10f}.promulgation-section-title{font-size:.9rem;font-weight:700;margin-bottom:.75rem;color:#e0e7ff}.promulgation-meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.promulgation-field label{display:block;font-size:.75rem;color:var(--text-secondary);margin-bottom:.35rem}.promulgation-promu-id{font-family:var(--font-display);font-size:1.5rem;font-weight:800;letter-spacing:.08em;color:#a5b4fc;padding:.35rem 0}.promulgation-rows{display:flex;flex-direction:column;gap:.6rem}.promulgation-rows-wrap{overflow-x:auto;padding-bottom:.25rem}.promulgation-row{display:grid;grid-template-columns:1.5rem minmax(0,1.25fr) minmax(0,1fr) 13rem minmax(0,1fr) minmax(6.5rem,8.5rem);gap:.5rem;align-items:start;min-width:min(100%,52rem)}.promulgation-row--header{align-items:end;padding-bottom:.35rem;margin-bottom:.15rem;border-bottom:1px solid var(--border-glass);font-size:.72rem;font-weight:700;color:var(--text-secondary)}.promulgation-row--header>span:not(.promulgation-row-num){padding-bottom:.15rem}.promulgation-days-cell{display:flex;flex-direction:column;gap:.25rem;min-width:6.5rem}.promulgation-inline-label{font-size:.72rem;font-weight:600;color:var(--text-secondary);line-height:1.2}.promulgation-days-input{width:100%;min-width:4.5rem}.promulgation-move-hint{font-size:.68rem;color:#94a3b8;line-height:1.3;white-space:nowrap}.promulgation-rows--change .promulgation-row{grid-template-columns:1.5rem minmax(0,1.25fr) minmax(0,1fr) 13rem minmax(0,1fr)}.promulgation-row .date-input-wrapper{min-width:13rem}.promulgation-row .date-input-field{min-width:9.5rem}@media (max-width: 900px){.promulgation-row,.promulgation-rows--change .promulgation-row{grid-template-columns:1fr 1fr}.promulgation-row-num{display:none}.promulgation-row .date-input-wrapper{grid-column:1 / -1;min-width:0}.promulgation-row--header{display:none}.promulgation-days-cell{grid-column:1 / -1}}.promulgation-row-num{font-size:.75rem;color:var(--text-muted);text-align:center}[data-appearance=light] .promulgation-move-hint{color:#64748b}.promulgation-footer{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;padding-top:.5rem}.promulgation-management{display:flex;flex-direction:column;gap:.75rem}.promulgation-list-panel{max-width:1200px}.promulgation-list-title{margin:0 0 1rem;color:var(--text-primary)}.promulgation-list-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.promulgation-list-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.promulgation-list-filters label{display:flex;flex-direction:column;gap:.3rem;font-size:.75rem;color:var(--text-secondary)}.promulgation-list-filters .input-field{min-width:10rem}.promulgation-filter-date .date-input-wrapper{min-width:13rem}.promulgation-list-actions{display:flex;gap:.5rem;flex-wrap:wrap}.promulgation-list-search-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1rem}.promulgation-search-bar{flex:1;min-width:min(100%,20rem);max-width:36rem}.promulgation-list-count{margin:0;font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.promulgation-list-count-sub{margin-left:.35rem;color:var(--text-muted)}.promulgation-table th .crew-sort-btn{width:100%;justify-content:flex-start;padding:.15rem 0;font-size:inherit;font-weight:inherit;color:inherit;white-space:nowrap;gap:.25rem}.promulgation-table th .crew-sort-btn>span{white-space:nowrap}.promulgation-th-id{width:5.5rem;min-width:5.5rem}.promulgation-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border-glass)}.promulgation-table{width:100%;border-collapse:collapse;font-size:.85rem}.promulgation-table th,.promulgation-table td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border-glass)}.promulgation-table th{font-size:.72rem;font-weight:700;color:var(--text-secondary);background:#0003}.promulgation-table tbody tr:hover{background:#6366f10f}.promulgation-table-id{font-family:var(--font-display);font-weight:700;color:#a5b4fc;letter-spacing:.06em}.promulgation-table-summary{color:var(--text-secondary);font-size:.8rem}.promulgation-table-actions{white-space:nowrap;text-align:right}.promulgation-table-actions .btn{margin-left:.35rem}.promulgation-btn-delete:hover:not(:disabled){border-color:#ef444473;color:#f87171}.btn-sm{padding:.35rem .65rem;font-size:.78rem}.mymenu-layout{display:flex;flex-direction:column;gap:1.25rem;max-width:640px}.theme-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem}.theme-picker-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.75rem;border-radius:12px;border:1px solid var(--border-glass);background:#00000040;cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);color:var(--text-primary)}.theme-picker-card:hover:not(:disabled){border-color:var(--border-glass-glow)}.theme-picker-card.active{border-color:var(--accent-solid);box-shadow:0 0 0 1px var(--accent-solid),var(--shadow-glow)}.theme-picker-card:disabled{opacity:.6;cursor:wait}.theme-picker-preview{display:block;width:100%;height:2rem;border-radius:8px}.theme-picker-label{font-size:.8rem;font-weight:700}.theme-picker-desc{font-size:.68rem;color:var(--text-muted);line-height:1.3}.theme-picker-saving{display:flex;align-items:center;gap:.4rem;margin-top:.75rem;font-size:.75rem;color:var(--text-muted)}.theme-section-label{font-size:.75rem;font-weight:700;color:var(--text-secondary);margin-bottom:.5rem}.appearance-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.appearance-toggle-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.65rem .85rem;border-radius:10px;border:1px solid var(--border-glass);background:var(--bg-select);color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.appearance-toggle-btn:hover:not(:disabled){border-color:var(--border-glass-glow)}.appearance-toggle-btn.active{border-color:var(--accent-solid);box-shadow:0 0 0 1px var(--accent-solid)}.appearance-toggle-title{font-size:.85rem;font-weight:700}.appearance-toggle-desc{font-size:.68rem;color:var(--text-muted)}.crew-chip--on{background:#3b82f626;border-color:#3b82f640;color:#93c5fd}.crew-chip--off{background:#f43f5e1f;border-color:#f43f5e40;color:#fda4af}.crew-chip--empty{opacity:.55;font-style:italic}[data-appearance=light]{--bg-primary: #f1f5f9;--bg-secondary: #ffffff;--bg-glass: rgba(255, 255, 255, .92);--bg-glass-hover: rgba(241, 245, 249, .95);--bg-select: #ffffff;--bg-select-hover: #f8fafc;--border-glass: rgba(15, 23, 42, .1);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--shadow-sm: 0 1px 4px rgba(15, 23, 42, .08);--shadow-md: 0 8px 24px rgba(15, 23, 42, .1)}[data-appearance=light] body{background-image:radial-gradient(at 0% 0%,var(--mesh-1) 0px,transparent 55%),radial-gradient(at 100% 100%,var(--mesh-2) 0px,transparent 55%),radial-gradient(at 50% 50%,var(--mesh-3) 0px,transparent 60%)}[data-appearance=light] .input-field{background:#fff;border-color:#0f172a1f}[data-appearance=light] select.input-field,[data-appearance=light] select.input-field option{background-color:#fff;color:#0f172a}[data-appearance=light] select.input-field option:checked,[data-appearance=light] select.input-field option:hover{background-color:#e2e8f0;color:#0f172a}[data-appearance=light] .crew-assignment-ship-block,[data-appearance=light] .promulgation-section,[data-appearance=light] .theme-picker-card,[data-appearance=light] .appearance-toggle-btn{background:#ffffffd9}[data-appearance=light] .crew-assignment-side-title--on{background:#3b82f61f;color:#1d4ed8}[data-appearance=light] .crew-assignment-side-title--off{background:#f43f5e1a;color:#be123c}[data-appearance=light] .crew-assignment-date--on{color:#1d4ed8}[data-appearance=light] .crew-assignment-date--off{color:#be123c}[data-appearance=light] .crew-chip--on{color:#1d4ed8}[data-appearance=light] .crew-chip--off{color:#be123c}[data-appearance=light] .login-wrapper{background:var(--bg-primary)}[data-appearance=light] .qual-sticky-name{color:var(--text-primary);background:#f1f5f9;box-shadow:2px 0 6px #0f172a14}[data-appearance=light] .qual-master-table thead .qual-sticky-name,[data-appearance=light] .ship-cert-table thead .qual-sticky-name{background:#e2e8f0;font-weight:600}[data-appearance=light] .ship-cert-ship-group{background:#0ea5e91f;color:#0369a1}[data-appearance=light] .qual-expiry-expired{color:#b91c1c!important;background:#ef444426}[data-appearance=light] .qual-expiry-warning{color:#a16207!important;background:#eab30833}[data-appearance=light] .qual-legend-item.qual-expiry-warning{color:#a16207}[data-appearance=light] .qual-legend-item.qual-expiry-expired{color:#b91c1c}
