: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;width:100%;min-width:0;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;flex-wrap:wrap;gap:.75rem;padding:1.25rem 2rem;min-width:0;flex-shrink:0}.app-header>div:first-child{flex:1 1 12rem;min-width:0}.app-header h2{margin:0;overflow-wrap:anywhere;word-break:break-word}@media (max-width: 1366px){.app-header{padding:1rem 1.25rem}.app-header h2{font-size:1.05rem!important}}.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)}.clock-display-time{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.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;min-width:0;flex-shrink:0}.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-password-toggle{position:absolute;right:.75rem;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.input-password-toggle:hover{background:#ffffff0a;border-color:#ffffff0f;color:var(--text-secondary)}.input-password-toggle:disabled{opacity:.5;cursor:not-allowed}.input-wrapper .input-field{padding-right:3rem}.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-top:.875rem;padding-bottom:.875rem;padding-right:2.25rem;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}.input-wrapper>select.input-field{padding-left:2.75rem}.user-company-picker{display:flex;flex-direction:column;gap:.35rem;max-height:11rem;overflow-y:auto;padding:.65rem .75rem;background:#ffffff08;border:1px solid var(--border-glass);border-radius:12px}.user-company-picker-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-primary);cursor:pointer;padding:.25rem .15rem;border-radius:6px}.user-company-picker-item:hover{background:#ffffff0a}.user-company-picker-item input{accent-color:var(--accent-solid);flex-shrink:0}.user-company-picker-empty{font-size:.8125rem;color:var(--text-muted);padding:.25rem 0}.crew-ship-picker{display:flex;flex-direction:column;gap:.5rem}.crew-ship-picker-search{position:relative;display:flex;align-items:center}.crew-ship-picker-search .crew-search-icon{position:absolute;left:.65rem;color:var(--text-muted);pointer-events:none}.crew-ship-picker-search .input-field{padding-left:2.25rem;padding-right:2rem;font-size:.875rem}.crew-ship-picker-search .crew-search-clear{position:absolute;right:.35rem}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 minmax(0,1fr);width:100%;max-width:100%;height:100vh;height:100dvh;overflow:hidden}.app-layout>.app-main-column{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}@media (max-width: 1024px){.app-layout{grid-template-columns:minmax(0,1fr);height:100dvh}.app-layout--compact .app-sidebar{display:none}}.app-sidebar{border-right:1px solid var(--border-glass);padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;height:100vh;min-height:0;overflow:hidden}.sidebar-nav-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-right:-.5rem;padding-right:.5rem}.sidebar-brand{flex-shrink:0;display:flex;align-items:center;gap:.75rem;padding-left:.5rem}.sidebar-brand-button{width:100%;margin:0;border:none;background:transparent;text-align:left;cursor:pointer;border-radius:12px;padding:.25rem .5rem;transition:background .15s ease}.sidebar-brand-button:hover{background:#38bdf814}.sidebar-brand-button:focus-visible{outline:2px solid rgba(56,189,248,.55);outline-offset:2px}.sidebar-menu{display:flex;flex-direction:column;gap:.5rem;list-style:none}.sidebar-item,a.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;text-decoration:none;box-sizing:border-box}.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,a.sidebar-subitem{display:block;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);text-decoration:none;box-sizing:border-box}.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:0}.table-scroll-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.master-form-dialog{max-width:480px;max-height:calc(100dvh - 2rem);overflow-y:auto}.ship-visit-readonly{background:#ffffff0a;color:var(--text-primary);min-height:2.5rem;display:flex;align-items:center}.ship-visit-content{align-items:flex-start;white-space:pre-wrap;min-height:8rem;line-height:1.6}.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}.crew-display-color-default{font-size:.75rem;color:var(--text-muted)}.crew-display-color-code{font-size:.72rem;font-family:ui-monospace,monospace;color:var(--text-secondary)}[data-appearance=light] .master-color-dot{border-color:#00000026}.sidebar-company-switcher{flex-shrink:0;padding:0 .5rem .25rem;display:flex;flex-direction:column;gap:.2rem}.sidebar-company-switcher-label{font-size:.65rem;color:var(--text-muted);font-weight:500;padding-left:.25rem}.sidebar-company-select{width:100%;font-size:.8125rem;font-family:var(--font-display);font-weight:500;padding:.35rem 1.25rem .35rem .25rem;border:none;border-radius:0;background:transparent;color:var(--text-secondary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;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='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .15rem center}.sidebar-company-select:hover,.sidebar-company-select:focus{color:var(--text-primary);outline:none}.sidebar-company-single{font-size:.8125rem;font-weight:500;color:var(--text-secondary);padding:.35rem .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{flex-shrink:0;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:flex;flex-direction:column;gap:1.5rem}.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{flex:1;min-height:0;min-width:0;overflow:hidden;gap:1rem}.app-content{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.app-content>.glass-panel,.app-content>.master-management,.app-content>.admin-menu-grid,.app-content>.promulgation-management{flex-shrink:0}.crew-registry{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0;min-width:0;max-width:100%}.crew-registry-panel{flex:1;min-height:0;min-width:0;max-width:100%;display:flex;flex-direction:column;overflow-x:clip;overflow-y:visible}.crew-table-wrapper{flex:1;width:100%;max-width:100%;min-width:0;min-height:14rem;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable}.crew-master-table{table-layout:fixed}.crew-table-wrapper>.crew-master-table,.crew-table-wrapper>.ship-cert-table,.qual-table-scroll-wrap>.qual-master-table{border-collapse:separate;border-spacing:0}.crew-table-wrapper>.crew-master-table:not(.ship-cert-table) thead,.qual-table-scroll-wrap>.qual-master-table thead,.crew-table-wrapper>.ship-cert-table thead{position:sticky;top:0;z-index:8}.crew-table-wrapper>.crew-master-table:not(.ship-cert-table) thead th{background:#0f172a;background-clip:padding-box}.qual-table-scroll-wrap>.qual-master-table thead th,.crew-table-wrapper>.ship-cert-table thead th{background-color:#0f172a;background-clip:padding-box}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-nav{background-color:#0e2433}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-engine{background-color:#131628}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-sailor{background-color:#0f1f1c}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-health{background-color:#1a1520}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-danger{background-color:#1a170f}.qual-table-scroll-wrap>.qual-master-table thead .qual-group-stcw{background-color:#0f1e28}.qual-table-scroll-wrap>.qual-master-table thead .qual-sticky-name,.qual-table-scroll-wrap>.qual-master-table thead th.crew-action-cell{background-color:#0f172a}.qual-table-scroll-wrap>.qual-master-table thead .qual-subheader-row th,.crew-table-wrapper>.ship-cert-table thead .qual-subheader-row th{box-shadow:0 2px 6px #0000001f}.crew-table-wrapper>.ship-cert-table thead .ship-cert-ship-group{background-color:#0f1e28}.crew-table-wrapper>.ship-cert-table thead .qual-sticky-name,.crew-table-wrapper>.ship-cert-table thead th.crew-action-cell{background-color:#0f172a}.qual-table-scroll-wrap>.qual-master-table thead .qual-sticky-name,.crew-table-wrapper>.ship-cert-table thead .qual-sticky-name{z-index:12}.crew-sticky-name-col{position:sticky;left:0;z-index:2;color:#f1f5f9;background:#111827;box-shadow:2px 0 6px #00000040}.crew-master-table thead .crew-sticky-name-col{z-index:12;background:#0f172a}.crew-master-table tbody tr:hover .crew-sticky-name-col{background:#1a2332}.crew-row-retired .crew-sticky-name-col{color:var(--text-muted)}.crew-resizable-th{position:relative;padding-right:.35rem!important}.crew-resizable-th.crew-sticky-name-col{position:sticky}.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}.finance-loan-balance-table .loan-lender-cell,.finance-loan-balance-table .loan-repayment-count-cell{white-space:normal;line-height:1.35;vertical-align:middle}.finance-loan-balance-table tr.finance-loan-row--overdue td{background:#ef444412}.finance-loan-balance-table tr.finance-loan-row--overdue:hover td{background:#ef44441f}.finance-loan-deadline-overdue{color:#fca5a5;font-weight:600}.finance-loan-deadline-badge{display:inline-block;margin-left:.35rem;padding:.1rem .4rem;font-size:.65rem;font-weight:600;line-height:1.3;border-radius:4px;color:#fca5a5;background:#ef444426;border:1px solid rgba(239,68,68,.28);white-space:nowrap;vertical-align:middle}.finance-loan-overview-table-wrap{margin:0 0 .75rem;overflow-x:auto}.finance-loan-overview-table{width:100%;min-width:520px}.finance-loan-overview-ship{display:inline-flex;align-items:center;gap:.35rem}.finance-loan-legend{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.72rem;color:var(--text-muted)}.finance-loan-legend-item--overdue:before{content:"";display:inline-block;width:.75rem;height:.75rem;margin-right:.35rem;border-radius:3px;background:#ef444433;border:1px solid rgba(248,113,113,.45);vertical-align:-1px}.finance-account-balance{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;max-width:100%}.finance-account-balance-panel{flex:1;min-height:0;min-width:0;max-width:100%;display:flex;flex-direction:column;overflow-x:clip;overflow-y:visible}.finance-account-balance-body{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;gap:.75rem}.finance-account-balance-summary{flex-shrink:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.finance-summary-card{padding:.75rem 1rem;border-radius:.75rem}.finance-summary-card-label{font-size:.72rem;color:var(--text-secondary)}.finance-summary-card-note{margin-left:.35rem;font-size:.65rem;opacity:.85}.finance-summary-card-value{margin-top:.25rem;font-family:var(--font-display);font-weight:600;font-size:1rem}.investment-gain{color:#34d399}.investment-loss{color:#f87171}.investment-general-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.investment-general-toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end}.investment-valuation-date-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-secondary)}.investment-valuation-date-filter select{min-width:10rem}.investment-valuation-date-note{font-size:.8rem;color:var(--text-secondary);margin:0 0 .75rem}.investment-general .glass-panel.panel-body{display:flex;flex-direction:column;min-height:0}.investment-general-table-wrap{flex:1;min-height:12rem;min-width:0;width:100%;max-width:100%;max-height:calc(100vh - 14rem);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;border:1px solid var(--border-glass);border-radius:10px}.investment-general-table--sticky{border-collapse:separate;border-spacing:0;min-width:72rem}.investment-general-table--sticky thead{position:sticky;top:0;z-index:8}.investment-general-table--sticky thead th{background-color:#0f172a;background-clip:padding-box;box-shadow:0 1px #ffffff0f}.investment-general-table--sticky thead .investment-group-header{background-color:#1c2838}.investment-general-table--sticky tbody td{background-color:#111827;background-clip:padding-box}.investment-general-table--sticky tbody tr:hover td{background-color:#1a2436}.investment-general-table--sticky tbody tr.investment-total-row td{background-color:#15202e}.investment-sticky-col{position:sticky;left:0;z-index:4;min-width:6.5rem;max-width:11rem;white-space:normal;background-color:#111827;background-clip:padding-box;box-shadow:4px 0 8px -2px #00000073}.investment-general-table--sticky thead .investment-sticky-col{z-index:12;background-color:#0f172a;box-shadow:4px 0 8px -2px #00000073,0 1px #ffffff0f}.investment-general-table--sticky tbody tr:hover .investment-sticky-col{background-color:#1a2436}.investment-general-table--sticky tbody tr.investment-total-row .investment-sticky-col{background-color:#15202e}[data-appearance=light] .investment-general-table--sticky thead th,[data-appearance=light] .investment-general-table--sticky thead .investment-sticky-col{background-color:#e2e8f0;box-shadow:0 1px #0f172a14}[data-appearance=light] .investment-general-table--sticky thead .investment-group-header{background-color:#dbe4ef}[data-appearance=light] .investment-general-table--sticky tbody td,[data-appearance=light] .investment-sticky-col{background-color:#fff}[data-appearance=light] .investment-general-table--sticky tbody tr:hover td,[data-appearance=light] .investment-general-table--sticky tbody tr:hover .investment-sticky-col{background-color:#f8fafc}[data-appearance=light] .investment-general-table--sticky tbody tr.investment-total-row td,[data-appearance=light] .investment-general-table--sticky tbody tr.investment-total-row .investment-sticky-col{background-color:#f1f5f9}.investment-general-table th,.investment-general-table td{white-space:nowrap;font-size:.78rem}.investment-group-header{text-align:center;background:#fbbf2414}.investment-total-row{background:#94a3b814;font-weight:600}.investment-fx-note{display:block;font-size:.65rem;color:var(--text-muted)}.investment-preview-box{margin-top:1rem;padding:.75rem 1rem;border-radius:.75rem;background:#3b82f614;font-size:.8rem;display:grid;gap:.25rem}.investment-modal-wide{max-width:760px}.investment-success-badge{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#34d399}.investment-form-dialog{width:min(720px,calc(100vw - 2rem))!important;max-width:720px!important}.investment-form{display:flex;flex-direction:column;gap:.25rem}.investment-form label{display:flex;flex-direction:column;gap:.4rem;min-width:0}.investment-form label>span{font-size:.78rem;font-weight:500;color:var(--text-secondary);line-height:1.3}.investment-form .input-field,.investment-form select.input-field,.investment-form textarea.input-field{width:100%;box-sizing:border-box}.investment-form-lead{margin:0 0 .75rem;font-size:.8rem;line-height:1.5;color:var(--text-muted)}.investment-form-section{margin-top:1rem}.investment-form-section:first-of-type{margin-top:0}.investment-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;padding:1rem 1.1rem;border-radius:12px;background:linear-gradient(135deg,#3b82f61a,#06b6d40f);border:1px solid rgba(59,130,246,.18)}.investment-preview-item{display:flex;flex-direction:column;gap:.3rem;min-width:0}.investment-preview-label{font-size:.72rem;color:var(--text-secondary)}.investment-preview-value{font-family:var(--font-display);font-weight:600;font-size:.95rem;word-break:break-word}@media (max-width: 720px){.investment-preview-grid{grid-template-columns:1fr}}.investment-mode-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:999px;font-size:.68rem;font-weight:600;background:#94a3b826;color:var(--text-secondary);white-space:nowrap}.investment-mode-badge.is-recurring{background:#3b82f624;color:#60a5fa}.investment-mode-count{opacity:.85;font-weight:500}.investment-name-hint{margin:0;font-size:.75rem;color:#fbbf24}.investment-name-form-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.investment-name-form-row .input-field{flex:1;min-width:12rem}.finance-account-balance-table-scroll{flex:1;min-height:12rem;min-width:0;width:100%;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;border:1px solid var(--border-glass);border-radius:10px}.finance-account-balance-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0}.finance-account-balance-table thead{position:sticky;top:0;z-index:8}.finance-account-balance-table thead th{background:#0f172a;background-clip:padding-box;box-shadow:0 2px 6px #0000001f}.finance-account-balance-table .finance-amount-col{text-align:right;white-space:nowrap}.finance-account-balance-table .finance-balance-cell{font-weight:600}.finance-account-balance-table .finance-action-col{width:120px;white-space:nowrap}.finance-row-actions{display:flex;gap:.35rem}[data-appearance=light] .finance-account-balance-table thead th{background:#f1f5f9;box-shadow:0 2px 6px #0f172a14}.finance-account-balance--overview .finance-account-balance-panel{padding:.75rem 1rem .65rem}.finance-balance-overview-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .85rem;margin-bottom:.5rem;flex-shrink:0}.finance-balance-toolbar-title{font-size:1rem;margin:0;flex-shrink:0}.finance-balance-toolbar-filter{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}.finance-balance-toolbar-filter-label{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.finance-balance-toolbar-filter .date-input-wrapper{width:9.5rem}.finance-balance-toolbar-date.date-input-field,.finance-account-balance--overview .finance-balance-toolbar-date{width:100%;min-height:2rem;padding:.3rem 2rem .3rem .55rem;font-size:.8rem}.finance-balance-toolbar-filter .date-input-picker-btn{padding:.15rem .3rem}.finance-balance-toolbar-select{width:10.5rem;min-height:2rem;padding:.3rem .55rem;font-size:.8rem}.finance-balance-toolbar-totals{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.1rem}.finance-balance-toolbar-spacer{flex:1 1 .5rem;min-width:.25rem}.finance-balance-toolbar-actions{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0}.finance-balance-toolbar-actions .btn{padding:.3rem .65rem;font-size:.72rem}.finance-balance-toolbar-total{display:inline-flex;align-items:baseline;gap:.35rem;white-space:nowrap}.finance-balance-toolbar-total-label{font-size:.72rem;color:var(--text-secondary)}.finance-balance-toolbar-total-value{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--text-primary);font-variant-numeric:tabular-nums}.finance-balance-toolbar-total-meta{font-size:.68rem;color:var(--text-muted)}.finance-balance-overview-notice--compact{margin:0 0 .45rem;padding:.35rem .6rem;font-size:.72rem}.finance-balance-overview-alert{margin-bottom:.5rem!important}.finance-balance-overview-notice{margin:0 0 .5rem;padding:.45rem .65rem;border-radius:.5rem;font-size:.72rem;line-height:1.45;color:var(--text-secondary);background:#34d39914;border:1px solid rgba(52,211,153,.18)}.finance-balance-overview-empty{color:var(--text-secondary);font-size:.9rem;padding:1rem 0}.finance-balance-overview-scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.65rem;padding-right:.15rem}.finance-balance-company-card{padding:.65rem .85rem;border-radius:.75rem;border:1px solid var(--border-glass)}.finance-balance-company-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-glass)}.finance-balance-company-title,.finance-balance-bank-title{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;min-width:0}.finance-balance-reorder-actions{display:flex;gap:.3rem;flex-shrink:0}.finance-balance-reorder-btn{padding:.2rem .45rem!important;min-width:2rem}.finance-balance-company-header h4{margin:0;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--text-primary)}.finance-balance-bank-block{margin-left:.25rem;padding-left:.75rem;border-left:2px solid rgba(52,211,153,.35)}.finance-balance-bank-block+.finance-balance-bank-block{margin-top:.55rem}.finance-balance-bank-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem .75rem;margin-bottom:.35rem;color:var(--text-primary)}.finance-balance-bank-name{font-weight:600;font-size:.86rem}.finance-balance-bank-branch{font-size:.75rem;color:var(--text-secondary)}.finance-balance-slots-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-left:.2rem;padding:.35rem .45rem;border-radius:.5rem;background:#ffffff08}[data-appearance=light] .finance-balance-slots-row{background:#00000008}.finance-balance-slot-col{min-width:0}.finance-balance-slot-label{font-size:.72rem;font-weight:600;color:#6ee7b7;margin-bottom:.25rem}[data-appearance=light] .finance-balance-slot-label{color:#047857}.finance-balance-slot-items{display:flex;flex-direction:column;gap:.2rem}.finance-balance-slot-item{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.finance-balance-account-no{font-size:.78rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.finance-balance-account-amount{text-align:right;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--text-primary);font-variant-numeric:tabular-nums;flex-shrink:0}.finance-balance-account-amount--pending{color:var(--text-muted)}@media (max-width: 900px){.finance-balance-slots-row{grid-template-columns:1fr}.finance-balance-toolbar-totals{width:100%;order:10}.finance-balance-toolbar-spacer{display:none}.finance-balance-toolbar-actions{width:100%;justify-content:flex-end;order:11}}@media (max-width: 640px){.finance-balance-slot-item{flex-direction:column;align-items:flex-start;gap:.1rem}.finance-balance-account-amount{text-align:left}}.ship-dock-fee-panel{display:flex;flex-direction:column;gap:.75rem;min-height:0;min-width:0;overflow:visible}.ship-dock-fee-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem}.ship-dock-fee-toolbar .panel-title{display:inline-flex;align-items:center;gap:.45rem;margin:0;margin-right:.5rem}.ship-dock-fee-filter{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--text-secondary)}.ship-dock-fee-filter .input-field,.ship-dock-fee-filter .date-input-wrapper{min-width:8.5rem;font-size:.8rem}.ship-dock-fee-filter .date-input-wrapper{min-width:12rem;width:12rem;flex-shrink:0}.ship-dock-fee-filter-wide .input-field{min-width:16rem}.ship-transaction-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.ship-transaction-toolbar-top .panel-title{display:inline-flex;align-items:center;gap:.45rem;margin:0}.ship-transaction-filters-row{flex-wrap:wrap;width:100%;min-width:0;overflow:visible}.ship-transaction-filters-row .ship-dock-fee-filter{flex:0 0 auto}.ship-transaction-filters-row .ship-dock-fee-filter .input-field:not(.date-input-field){min-width:7rem;width:100%;max-width:10rem;box-sizing:border-box}.ship-transaction-filters-row .ship-dock-fee-filter .date-input-wrapper{min-width:12rem;width:12rem;max-width:12rem;flex-shrink:0}.ship-transaction-filters-row .ship-dock-fee-filter .date-input-field{width:100%;min-width:0}.ship-transaction-filters-row .ship-dock-fee-filter-wide{flex:1 1 12rem;min-width:11rem;max-width:min(100%,20rem)}.ship-transaction-filters-row .ship-dock-fee-filter-wide .input-field{min-width:0;max-width:100%;width:100%}.ship-dock-fee-toolbar-actions{display:flex;gap:.35rem;flex-shrink:0}.ship-dock-fee-summary{display:flex;gap:1.25rem;font-size:.85rem;color:var(--text-secondary)}.ship-dock-fee-split-hint{margin:0;font-size:.78rem;color:var(--text-muted);line-height:1.45}.ship-dock-fee-fee-tag{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:.72rem;white-space:nowrap}.ship-dock-fee-fee-tag-con{background:#22d3ee26;color:#67e8f9}.ship-dock-fee-fee-tag-parts{background:#94a3b826;color:var(--text-secondary)}.ship-dock-fee-alert{margin:0}.ship-dock-fee-success{margin:0;color:#34d399;font-size:.85rem}.ship-dock-fee-empty{margin:0;color:var(--text-secondary);font-size:.9rem}.ship-dock-fee-table-scroll{overflow:auto;max-height:calc(100vh - 18rem)}.ship-dock-fee-table--sticky{border-collapse:separate;border-spacing:0}.ship-dock-fee-table--sticky thead{position:sticky;top:0;z-index:6}.ship-dock-fee-table--sticky thead th{background-color:#0f172a;background-clip:padding-box;box-shadow:0 1px #ffffff0f}.ship-dock-fee-table--sticky tbody td{background-color:#111827;background-clip:padding-box}.ship-dock-fee-table--sticky tbody tr:hover td{background-color:#1a2436}.ship-dock-fee-table--sticky tbody tr.ship-dock-fee-detail-row td{background-color:#0000001f}[data-appearance=light] .ship-dock-fee-table--sticky thead th{background-color:#e2e8f0;box-shadow:0 1px #0f172a14}[data-appearance=light] .ship-dock-fee-table--sticky tbody td{background-color:#fff}[data-appearance=light] .ship-dock-fee-table--sticky tbody tr:hover td{background-color:#f8fafc}[data-appearance=light] .ship-dock-fee-table--sticky tbody tr.ship-dock-fee-detail-row td{background-color:#f1f5f9}.ship-dock-fee-table th,.ship-dock-fee-table td{white-space:nowrap;font-size:.8rem}.ship-dock-fee-amount{font-weight:600;font-variant-numeric:tabular-nums}.ship-dock-fee-amount-meta{margin-left:.25rem;font-size:.68rem;color:var(--text-muted);font-weight:400}.ship-dock-fee-expand-btn,.ship-dock-fee-row-actions .btn{padding:.2rem .4rem}.ship-dock-fee-row-actions{display:flex;gap:.25rem}.ship-dock-fee-detail-row td{background:#0000001f;padding:.5rem .75rem!important}.ship-dock-fee-detail-table{width:100%;font-size:.78rem}.ship-dock-fee-detail-empty{margin:0;font-size:.8rem;color:var(--text-secondary)}.ship-transaction-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.ship-transaction-search-bar{margin-bottom:0}.ship-transaction-hint{display:block;margin-top:.35rem;color:var(--text-secondary);font-size:.8rem;line-height:1.4}.ship-profit-panel{min-width:0}.ship-profit-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.82rem;color:var(--text-secondary)}.ship-profit-fiscal-nav{display:flex;flex-wrap:wrap;gap:.35rem;align-self:flex-end}.ship-profit-fiscal-btn{white-space:nowrap}.ship-profit-table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.ship-profit-table-scroll--detail{max-height:min(72vh,calc(100dvh - 14rem));overflow:auto;overscroll-behavior:contain}.ship-profit-table{min-width:720px}.ship-profit-table--sticky{border-collapse:separate;border-spacing:0}.ship-profit-table--sticky thead{position:sticky;top:0;z-index:6}.ship-profit-table--sticky thead th{background-color:#0f172a;background-clip:padding-box;box-shadow:0 1px #ffffff0f}.ship-profit-table--sticky tbody td{background-color:#111827;background-clip:padding-box}.ship-profit-table--sticky tbody tr.ship-profit-summary-row td{background-color:#152536}.ship-profit-table--sticky tbody tr:hover td{background-color:#1a2436}.ship-profit-table th,.ship-profit-table td{white-space:nowrap;font-size:.78rem;padding:.45rem .55rem}.ship-profit-sticky-col{position:sticky;left:0;z-index:4;min-width:8.5rem;max-width:14rem;white-space:normal;background-color:#111827;background-clip:padding-box;box-shadow:4px 0 8px -2px #00000073}.ship-profit-table thead .ship-profit-sticky-col{z-index:12;background-color:#0f172a;box-shadow:4px 0 8px -2px #00000073,0 1px #ffffff0f}.ship-profit-summary-row .ship-profit-sticky-col{background-color:#152536}[data-appearance=light] .ship-profit-table--sticky thead th,[data-appearance=light] .ship-profit-table thead .ship-profit-sticky-col{background-color:#e2e8f0}[data-appearance=light] .ship-profit-table--sticky tbody td,[data-appearance=light] .ship-profit-sticky-col{background-color:#fff}[data-appearance=light] .ship-profit-table--sticky tbody tr.ship-profit-summary-row td,[data-appearance=light] .ship-profit-summary-row .ship-profit-sticky-col{background-color:#e8f2fc}[data-appearance=light] .ship-profit-table--sticky tbody tr:hover td{background-color:#f8fafc}.ship-profit-cell{text-align:right;font-variant-numeric:tabular-nums}.ship-profit-cell-bold{font-weight:700}.ship-profit-cell-negative{color:#f87171}.ship-profit-summary-row td{font-weight:700;background-color:#152536}[data-appearance=light] .ship-profit-summary-row td{background-color:#e8f2fc}.ship-profit-separator-row td{padding:.15rem 0;border-bottom:2px double rgba(148,163,184,.35)}.ship-profit-ship-link{display:inline;padding:0;margin:0;border:none;background:none;color:#38bdf8;font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.ship-profit-ship-link:hover{color:#7dd3fc}.ship-profit-ship-link:focus-visible{outline:2px solid rgba(56,189,248,.5);outline-offset:2px;border-radius:2px}.ship-profit-all-section{margin-top:1.5rem}.ship-profit-all-section:first-of-type{margin-top:.5rem}.ship-profit-all-section-title{font-size:1.25rem;font-weight:700;margin:0 0 .5rem;color:var(--text-primary, #e2e8f0)}[data-appearance=light] .ship-profit-all-section-title{color:#1e293b}.ship-balance-dashboard{display:flex;flex-direction:column;gap:1rem}.ship-balance-dashboard-header{margin-bottom:0}.ship-balance-dashboard-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ship-balance-dashboard-subtitle{margin:.35rem 0 0;font-size:.85rem;color:var(--text-secondary)}.ship-balance-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}@media (max-width: 1100px){.ship-balance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.ship-balance-kpi-grid{grid-template-columns:1fr}}.ship-balance-kpi{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.1rem;border-radius:12px;border:1px solid rgba(148,163,184,.15);background:#0f172a73}[data-appearance=light] .ship-balance-kpi{background:#ffffffd9;border-color:#94a3b840}.ship-balance-kpi-icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:10px;flex-shrink:0}.ship-balance-kpi--sky .ship-balance-kpi-icon{color:#38bdf8;background:#38bdf826}.ship-balance-kpi--amber .ship-balance-kpi-icon{color:#fbbf24;background:#fbbf2426}.ship-balance-kpi--emerald .ship-balance-kpi-icon{color:#34d399;background:#34d39926}.ship-balance-kpi--rose .ship-balance-kpi-icon{color:#fb7185;background:#fb718526}.ship-balance-kpi-label{margin:0;font-size:.78rem;color:var(--text-secondary)}.ship-balance-kpi-value{margin:.2rem 0 0;font-size:1.35rem;font-weight:700;font-family:var(--font-display)}.ship-balance-kpi-sub{margin:.15rem 0 0;font-size:.75rem;color:var(--text-secondary)}.ship-balance-dashboard-chart-panel{min-width:0}.ship-balance-dashboard-chart-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.ship-balance-section-title{margin:0;font-size:1.05rem;font-weight:700}.ship-balance-section-note{margin:.25rem 0 0;font-size:.8rem;color:var(--text-secondary)}.ship-balance-chart-wrap{width:100%;min-height:260px}.ship-balance-chart-wrap--compact{min-height:220px}.ship-balance-dashboard-split{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}@media (max-width: 960px){.ship-balance-dashboard-split{grid-template-columns:1fr}}.ship-balance-ranking{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem}.ship-balance-ranking-item{display:flex;flex-direction:column;gap:.35rem}.ship-balance-ranking-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;font-size:.85rem}.ship-balance-ranking-rank{width:1.4rem;height:1.4rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;background:#38bdf826;color:#7dd3fc}.ship-balance-ranking-value{font-weight:600;color:#34d399;white-space:nowrap}.ship-balance-ranking-value--negative{color:#fb7185}.ship-balance-ranking-bar-track{height:6px;border-radius:999px;background:#94a3b826;overflow:hidden}.ship-balance-ranking-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#38bdf8)}.ship-balance-ranking-bar--negative{background:linear-gradient(90deg,#fb7185,#f97316)}.ship-interest-fx-source{margin-top:.35rem;font-size:.72rem}.ship-interest-fx-source a{color:#38bdf8}.ship-period-comparison{margin-top:.25rem}.ship-period-comparison-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ship-period-comparison-controls{display:flex;align-items:flex-end;gap:.5rem}.ship-period-overview-chart{margin-bottom:1.5rem}.ship-period-metric-section{margin-bottom:2rem;padding-top:1rem;border-top:1px solid rgba(148,163,184,.15)}.ship-period-metric-title{margin:0 0 .75rem;font-size:1rem;font-weight:700}.ship-period-table-block{margin-bottom:1rem}.ship-period-table-caption,.ship-period-chart-caption{margin:0 0 .4rem;font-size:.78rem;color:var(--text-secondary)}.ship-period-table-scroll{overflow:auto;max-height:320px}.ship-period-table{min-width:640px;font-size:.78rem}.ship-period-table--sticky{border-collapse:separate;border-spacing:0}.ship-period-table--sticky thead{position:sticky;top:0;z-index:4}.ship-period-table--sticky thead th{background-color:#0f172a;background-clip:padding-box}.ship-period-sticky-col{position:sticky;left:0;z-index:3;min-width:7.5rem;background-color:#111827;background-clip:padding-box;box-shadow:4px 0 8px -2px #00000059}.ship-period-table thead .ship-period-sticky-col{z-index:5;background-color:#0f172a}.ship-period-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ship-period-cell-bold{font-weight:700}.ship-period-cell-negative{color:#fb7185}.ship-period-total-row td{background-color:#152536;font-weight:600}.ship-period-total-row .ship-period-sticky-col{background-color:#152536}.ship-period-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ship-period-charts-row--primary{margin-bottom:1.25rem}.ship-period-charts-row--primary .ship-balance-chart-wrap{min-height:320px}.ship-period-chart-card{background:#0f172a59;border:1px solid rgba(148,163,184,.12);border-radius:10px;padding:.75rem}@media (max-width: 960px){.ship-period-charts-row{grid-template-columns:1fr}}[data-appearance=light] .ship-period-table--sticky thead th,[data-appearance=light] .ship-period-table thead .ship-period-sticky-col{background-color:#e2e8f0}[data-appearance=light] .ship-period-sticky-col{background-color:#fff}[data-appearance=light] .ship-period-total-row td,[data-appearance=light] .ship-period-total-row .ship-period-sticky-col{background-color:#e8f2fc}[data-appearance=light] .ship-period-chart-card{background:#f8fafc;border-color:#0f172a14}.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-y:auto;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-form-section-title{margin:.25rem 0 0;font-size:.875rem;font-weight:600;color:var(--text-secondary)}.crew-input{padding-left:1rem!important}.month-input-row{display:flex;gap:.5rem;align-items:stretch;width:100%}.month-input-year{flex:1 1 7rem;min-width:0}.month-input-month{flex:0 0 5.5rem;min-width:0}.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-table-scroll-wrap{flex:1 1 auto;min-height:14rem;min-width:0;width:100%;max-width:100%;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.qual-table-scroll-wrap .qual-master-table{table-layout:auto;width:max-content;min-width:100%}.qual-table-scroll-wrap .qual-master-table th,.qual-table-scroll-wrap .qual-master-table td{white-space:nowrap;overflow:visible;text-overflow:clip}.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:12}.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;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.75rem;color:var(--text-muted);min-width:0;flex-shrink:0}.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}}.forex-trends-panel{margin-top:0}.forex-trends-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.forex-trends-meta{font-size:.75rem;color:var(--text-muted)}.forex-trends-note{color:var(--text-secondary);font-size:.8125rem;margin:0 0 1rem}.forex-trends-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 1200px){.forex-trends-grid{grid-template-columns:1fr}}.forex-trend-card{border:1px solid rgba(148,163,184,.22);border-radius:12px;padding:.875rem 1rem .5rem;background:var(--bg-glass-hover)}.forex-trend-chart{width:100%;min-height:180px;border-radius:8px;padding:.25rem 0;background:transparent}.forex-trend-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.forex-trend-label{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.15rem}.forex-trend-latest{font-size:1.25rem;font-weight:700;font-family:var(--font-display);color:var(--text-primary)}.forex-trend-change{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;white-space:nowrap}.forex-trend-change--up{color:#34d399}.forex-trend-change--down{color:#f87171}.google-calendar-panel{margin-top:1.25rem}.google-calendar-toolbar{display:flex;align-items:center;gap:.5rem;margin-left:auto}.google-calendar-note{margin:0 0 1rem;font-size:.8125rem;color:var(--text-muted);line-height:1.5}.google-calendar-msg{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.65rem .85rem;border-radius:10px;font-size:.8125rem}.google-calendar-msg--ok{background:#34d3991a;border:1px solid rgba(52,211,153,.25);color:#6ee7b7}.google-calendar-msg--error{background:#f8717114;border:1px solid rgba(248,113,113,.25);color:#fca5a5}.google-calendar-msg-dismiss{margin-left:auto;border:none;background:transparent;color:inherit;cursor:pointer;font-size:.75rem;opacity:.85}.google-calendar-warnings{margin:0 0 .75rem;padding-left:1.25rem;font-size:.75rem;color:#fbbf24}.google-calendar-connect{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem 0}.google-calendar-connected{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.8125rem;color:var(--text-muted)}.google-calendar-disconnect{padding:.3rem .65rem;font-size:.75rem}.google-calendar-legend{display:flex;gap:.75rem;margin-bottom:.75rem}.google-calendar-legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-muted)}.google-calendar-legend-item:before{content:"";width:.65rem;height:.65rem;border-radius:999px}.google-calendar-legend-item--personal:before{background:#60a5fa}.google-calendar-legend-item--company:before{background:#34d399}.google-calendar-nav{margin-bottom:.75rem}.google-calendar-day--selected{outline:2px solid rgba(96,165,250,.65);outline-offset:-2px}.google-calendar-event-chip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:.05rem .25rem;border-radius:4px;font-size:.625rem;line-height:1.35}.google-calendar-event-chip--personal{background:#60a5fa38;color:#93c5fd}.google-calendar-event-chip--company{background:#34d39938;color:#6ee7b7}.google-calendar-day-detail{margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--border-subtle);border-radius:12px;background:#ffffff05}.google-calendar-day-detail-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.google-calendar-day-empty{margin:0;font-size:.8125rem;color:var(--text-muted)}.google-calendar-day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.google-calendar-day-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-subtle)}.google-calendar-day-item:last-child{border-bottom:none}.google-calendar-day-item-main{display:flex;align-items:center;gap:.5rem;min-width:0}.google-calendar-day-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.google-calendar-source-badge{flex-shrink:0;padding:.15rem .45rem;border-radius:999px;font-size:.625rem;font-weight:600}.google-calendar-source-badge--personal{background:#60a5fa2e;color:#93c5fd}.google-calendar-source-badge--company{background:#34d3992e;color:#6ee7b7}.google-calendar-open-link{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-size:.75rem;color:#7dd3fc;text-decoration:none}.google-calendar-open-link:hover{text-decoration:underline}.google-calendar-company-config{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.google-calendar-config-toggle{font-size:.8125rem}.google-calendar-company-config-form{margin-top:.75rem;display:flex;flex-direction:column;gap:.75rem}.google-calendar-config-help{margin:0;font-size:.75rem;color:var(--text-muted);line-height:1.5}.google-calendar-config-field{display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem}.google-calendar-config-actions{display:flex;gap:.5rem}.announcement-item-actions{display:inline-flex;align-items:center;gap:.5rem;justify-self:end}.announcement-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:1px solid rgba(248,113,113,.35);border-radius:8px;background:#f8717114;color:#f87171;cursor:pointer;transition:background .15s ease,border-color .15s ease}.announcement-delete-btn:hover:not(:disabled){background:#f8717129;border-color:#f871718c}.announcement-delete-btn:disabled{opacity:.5;cursor:not-allowed}.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)}.dashboard-month-calendar{width:100%}.dashboard-month-calendar-header{flex-wrap:wrap;gap:.75rem}.dashboard-month-calendar-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.dashboard-month-calendar-nav-btn{padding:.35rem .5rem;min-width:2.25rem}.dashboard-month-calendar-selects{display:flex;gap:.35rem}.dashboard-month-calendar-select{width:auto;min-width:5.5rem;padding:.35rem .5rem;font-size:.8125rem}.dashboard-month-calendar-today-btn{padding:.35rem .75rem;font-size:.75rem}.dashboard-month-calendar-caption{margin:0 0 .75rem;font-size:.8125rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem}.dashboard-month-calendar-caption-note{font-size:.75rem;color:var(--text-muted)}.dashboard-month-calendar-holiday-list{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin:0 0 .75rem;padding:0;font-size:.75rem}.dashboard-month-calendar-holiday-list li{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:6px;background:#f871711f;border:1px solid rgba(248,113,113,.25)}.dashboard-month-calendar-holiday-date{font-weight:600;color:#fca5a5;font-variant-numeric:tabular-nums}.dashboard-month-calendar-holiday-name{color:var(--text-secondary)}.dashboard-month-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%}.dashboard-month-calendar-weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--text-muted);padding:.35rem 0}.dashboard-month-calendar-weekday--sun{color:#f87171}.dashboard-month-calendar-weekday--sat{color:#60a5fa}.dashboard-month-calendar-day{min-height:3rem;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.1rem;padding:.3rem .15rem .2rem;border-radius:8px;font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--text-primary);background:#ffffff05;border:1px solid rgba(255,255,255,.04);overflow:hidden}.dashboard-month-calendar-day--clickable{cursor:pointer;font:inherit;text-align:center;transition:background .15s ease,border-color .15s ease}.dashboard-month-calendar-day--clickable:hover{background:#38bdf81a;border-color:#38bdf859}.dashboard-month-calendar-day--has-events:not(.dashboard-month-calendar-day--today){border-color:#38bdf847}.dashboard-month-calendar-day-events{display:flex;flex-direction:column;gap:1px;width:100%;margin-top:auto;min-height:0}.dashboard-month-calendar-event-chip{display:block;font-size:.5625rem;line-height:1.2;padding:1px 3px;border-radius:3px;background:#38bdf838;color:#bae6fd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-month-calendar-event-more{font-size:.5625rem;color:var(--text-muted)}.dashboard-month-calendar-day-label--holiday{display:none}.dashboard-month-calendar-msg{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;margin:0 0 .5rem}.dashboard-month-calendar-msg--error{color:#f87171}.dashboard-month-calendar-msg--ok{color:#34d399}.dashboard-month-calendar-grid--loading{opacity:.65;pointer-events:none}.dashboard-calendar-modal{max-width:28rem;width:calc(100% - 2rem)}.dashboard-calendar-day-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:16rem;overflow-y:auto}.dashboard-calendar-day-empty{color:var(--text-muted);font-size:.875rem;margin:0}.dashboard-calendar-day-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;text-align:left;padding:.65rem .75rem;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:inherit;cursor:pointer;font:inherit}.dashboard-calendar-day-item:hover{border-color:#38bdf866;background:#38bdf814}.dashboard-calendar-day-item-title{font-weight:600;font-size:.875rem}.dashboard-calendar-day-item-meta{font-size:.75rem;color:var(--text-muted)}.dashboard-calendar-detail{display:grid;gap:.65rem;margin:0 0 1rem;font-size:.875rem}.dashboard-calendar-detail dt{font-size:.75rem;color:var(--text-muted);margin:0}.dashboard-calendar-detail dd{margin:.15rem 0 0;word-break:break-word}.dashboard-calendar-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.dashboard-calendar-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem;color:var(--text-secondary)}.dashboard-calendar-form-textarea{resize:vertical;min-height:5rem}.dashboard-calendar-form-hint{margin:0;font-size:.75rem;color:var(--text-muted)}.dashboard-month-calendar-modal-success{margin:0 0 .75rem;font-size:.8125rem;color:#34d399}.dashboard-month-calendar-modal-error{margin:0 0 .75rem;font-size:.8125rem;color:#f87171}[data-appearance=light] .dashboard-month-calendar-event-chip{background:#0ea5e926;color:#0369a1}[data-appearance=light] .dashboard-calendar-day-item{background:#0f172a08;border-color:#0f172a14}.dashboard-month-calendar-day--empty{background:transparent;border-color:transparent}.dashboard-month-calendar-day--sun:not(.dashboard-month-calendar-day--today){color:#fca5a5}.dashboard-month-calendar-day--sat:not(.dashboard-month-calendar-day--today){color:#93c5fd}.dashboard-month-calendar-day--holiday:not(.dashboard-month-calendar-day--today){background:#f8717129;border-color:#f8717159;color:#fecaca}.dashboard-month-calendar-day--holiday.dashboard-month-calendar-day--sun:not(.dashboard-month-calendar-day--today){color:#fecaca}.dashboard-month-calendar-day--today{background:#38bdf833;border-color:var(--accent-solid);color:var(--accent-solid);font-weight:700}.dashboard-month-calendar-day--today.dashboard-month-calendar-day--holiday{color:var(--accent-solid)}.dashboard-month-calendar-day-num{line-height:1;flex-shrink:0}.dashboard-month-calendar-day-label{display:none;width:100%;font-size:.625rem;line-height:1.2;text-align:center;color:inherit;opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-month-calendar-day-dot{display:none;width:5px;height:5px;border-radius:50%;margin-top:auto}.dashboard-month-calendar-day-dot--holiday{background:#f87171}.dashboard-month-calendar-event-badge{display:none}[data-appearance=light] .dashboard-month-calendar-day{background:#0f172a08;border-color:#0f172a0f}[data-appearance=light] .dashboard-month-calendar-day--today{background:#0ea5e91f;border-color:#0ea5e9;color:#0369a1}[data-appearance=light] .dashboard-month-calendar-day--holiday:not(.dashboard-month-calendar-day--today){background:#ef44441a;border-color:#ef444447;color:#b91c1c}@media (min-width: 641px){.dashboard-month-calendar-day--holiday .dashboard-month-calendar-day-label--holiday{display:block}.dashboard-month-calendar-day--holiday:not(.dashboard-month-calendar-day--has-events) .dashboard-month-calendar-day-dot{display:block}.dashboard-month-calendar-event-chip{display:block}}@media (min-width: 1025px){.dashboard-month-calendar-day{min-height:4.25rem;padding:.4rem .25rem .3rem}.dashboard-month-calendar-day-label{font-size:.6875rem}}@media (max-width: 640px){.dashboard-month-calendar-nav{margin-left:0;width:100%}.dashboard-month-calendar-day{min-height:2.5rem;font-size:.8125rem;position:relative;padding-bottom:.35rem}.dashboard-month-calendar-day--holiday:not(.dashboard-month-calendar-day--has-events) .dashboard-month-calendar-day-dot--holiday{display:block}.dashboard-month-calendar-event-chip,.dashboard-month-calendar-event-more,.dashboard-month-calendar-day-events{display:none!important}.dashboard-month-calendar-day--has-events:not(.dashboard-month-calendar-day--today){background:#38bdf824;border-color:#38bdf873}.dashboard-month-calendar-event-badge{display:flex;align-items:center;justify-content:center;position:absolute;right:2px;bottom:2px;min-width:.95rem;height:.95rem;padding:0 2px;border-radius:999px;font-size:.5625rem;font-weight:700;line-height:1;background:#0ea5e9;color:#fff;box-shadow:0 0 0 1px #0f172a59}.dashboard-month-calendar-day--today.dashboard-month-calendar-day--has-events .dashboard-month-calendar-event-badge{background:var(--accent-solid);color:#0f172a}.dashboard-month-calendar-holiday-list{gap:.25rem .5rem}[data-appearance=light] .dashboard-month-calendar-day--has-events:not(.dashboard-month-calendar-day--today){background:#0ea5e91f;border-color:#0ea5e966}}.announcement-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.announcement-item{display:grid;grid-template-columns:6.5rem 1fr 10rem 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}.announcement-user{font-size:.75rem;color:var(--text-secondary);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){.announcement-user{text-align:left}}.announcement-admin-toolbar{display:flex;justify-content:flex-end;margin-bottom:.75rem}.announcement-admin-form{display:grid;grid-template-columns:9rem 1fr 6.25rem 7.25rem;gap:.5rem;margin-bottom:.75rem;align-items:center}.announcement-admin-select,.announcement-admin-input{padding-left:1rem!important}.announcement-admin-btn{padding:.55rem .75rem;font-size:.78rem;justify-content:center}.announcement-admin-cancel{padding:.55rem .75rem;font-size:.78rem;justify-content:center;color:var(--text-secondary)}@media (max-width: 640px){.announcement-admin-form{grid-template-columns:1fr}.announcement-admin-btn{width:100%}}.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;min-width:0;flex:0 1 auto}.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}.crew-list-form-row{display:grid;grid-template-columns:1fr 220px;gap:1rem}@media (max-width: 720px){.crew-list-form-row{grid-template-columns:1fr}}.crew-list-crew-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}.crew-list-crew-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.crew-list-crew-title{display:flex;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;margin:0}.crew-list-add-row{display:flex;gap:.5rem;margin-bottom:.75rem}.crew-list-add-row .input-field{flex:1}.crew-list-selected{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.crew-list-selected-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;border-radius:8px;background:#ffffff08;border:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}.crew-list-excel-cell{font-family:var(--font-mono, monospace);font-size:.75rem;color:var(--accent-solid, #818cf8);min-width:2.5rem}.crew-list-selected-name{flex:1;font-size:.9rem}.crew-list-remove-btn{padding:.25rem .4rem;min-width:auto}.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) minmax(0,1fr);gap:.5rem;align-items:start;min-width:min(100%,62rem)}.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>.input-field:last-child{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{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior-x:contain;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] .crew-sticky-name-col{color:var(--text-primary);background:#fff;box-shadow:2px 0 6px #0f172a14}[data-appearance=light] .crew-master-table thead .crew-sticky-name-col{background:#f1f5f9;font-weight:600}[data-appearance=light] .crew-table-wrapper>.crew-master-table:not(.ship-cert-table) thead th{background:#f1f5f9}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead th,[data-appearance=light] .crew-table-wrapper>.ship-cert-table thead th{background-color:#f1f5f9}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-nav{background-color:#e0f2fe}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-engine{background-color:#e0e7ff}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-sailor{background-color:#d1fae5}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-health{background-color:#fce7f3}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-danger{background-color:#fef3c7}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-group-stcw{background-color:#e0f2fe}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-sticky-name,[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead th.crew-action-cell,[data-appearance=light] .crew-table-wrapper>.ship-cert-table thead .qual-sticky-name,[data-appearance=light] .crew-table-wrapper>.ship-cert-table thead th.crew-action-cell{background-color:#e2e8f0}[data-appearance=light] .crew-table-wrapper>.ship-cert-table thead .ship-cert-ship-group{background-color:#e0f2fe}[data-appearance=light] .qual-table-scroll-wrap>.qual-master-table thead .qual-subheader-row th,[data-appearance=light] .crew-table-wrapper>.ship-cert-table thead .qual-subheader-row th{box-shadow:0 2px 6px #0f172a14}[data-appearance=light] .crew-master-table tbody tr:hover .crew-sticky-name-col{background:#f8fafc}[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}.allocation-schedule-panel{flex:1;min-height:0;min-width:0;max-width:100%;display:flex;flex-direction:column;overflow-x:clip;overflow-y:visible}.allocation-schedule-toolbar,.allocation-schedule-panel>.allocation-schedule-model-hint,.allocation-schedule-panel>.promulgation-success,.allocation-schedule-panel>.crew-registry-error,.allocation-schedule-warnings,.allocation-schedule-legend{flex-shrink:0}.allocation-schedule-legend{margin-bottom:.35rem}.allocation-schedule-legend--compact{min-height:0;margin-bottom:.25rem;gap:.65rem}.allocation-schedule-legend--compact:empty{display:none}.allocation-schedule-panel>.promulgation-success{margin:.25rem 0;padding:.45rem .65rem;font-size:.82rem}.allocation-schedule-warnings{margin:.35rem 0}.allocation-schedule-grid-section{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.allocation-schedule-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.65rem;margin-bottom:.35rem;min-width:0}.allocation-schedule-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem;flex:1 1 320px;min-width:0}.allocation-schedule-field{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-secondary)}.allocation-schedule-field select{min-width:160px;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border-glass);background:#00000040;color:var(--text-primary);font-size:.85rem}[data-appearance=light] .allocation-schedule-field select{background:#fff;border-color:#cbd5e1}.allocation-schedule-model-hint{margin:.35rem 0 .75rem;padding:.55rem .75rem;font-size:.82rem;line-height:1.45;color:var(--text-muted, rgba(226, 232, 240, .85));border-left:3px solid rgba(251,191,36,.7);background:#fbbf2414;border-radius:0 8px 8px 0}[data-appearance=light] .allocation-schedule-model-hint{color:#1e293bd9;background:#fbbf2426}.allocation-schedule-warnings{display:flex;flex-direction:column;gap:.4rem;margin:.75rem 0}.allocation-schedule-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .75rem;border-radius:8px;font-size:.8rem}.allocation-schedule-warning--error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fca5a5}.allocation-schedule-warning--warning{background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);color:#fcd34d}.allocation-schedule-legend-ships{display:inline-flex;flex-wrap:wrap;gap:.65rem 1rem;margin-right:1rem;padding-right:1rem;border-right:1px solid rgba(255,255,255,.12)}.allocation-schedule-legend-item--muted{color:var(--text-muted);font-size:.75rem}.allocation-schedule-ship-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.45rem;vertical-align:middle;box-shadow:0 0 0 1px #0003}.allocation-schedule-td--ship{border-left:4px solid transparent}.allocation-schedule-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;font-size:.75rem;color:var(--text-secondary)}.allocation-schedule-legend-item{display:inline-flex;align-items:center;gap:.35rem}.allocation-schedule-bar-sample{display:inline-block;width:24px;height:10px;border-radius:4px}.allocation-schedule-bar-sample--draft{background:linear-gradient(90deg,#6366f1d9,#818cf8b3)}.allocation-schedule-bar-sample--approved{background:linear-gradient(90deg,#10b981d9,#34d399b3)}.allocation-schedule-bar-sample--open{background:repeating-linear-gradient(90deg,rgba(99,102,241,.7) 0,rgba(99,102,241,.7) 6px,transparent 6px,transparent 10px);border:1px dashed rgba(129,140,248,.6)}.allocation-schedule-bar-sample--current{background:#fbbf2459;border:2px dashed rgba(245,158,11,.85)}.allocation-schedule-slotbar{display:flex;align-items:center;gap:6px;overflow:hidden;cursor:pointer}.allocation-schedule-slotbar-label{font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;pointer-events:none;color:inherit}.allocation-schedule-slotbar-badge{flex-shrink:0;font-size:9px;font-weight:700;padding:1px 4px;border-radius:4px;background:#dc2626e6;color:#fff;pointer-events:none}.allocation-schedule-slotbar--current{border-radius:6px;border:2px dashed rgba(245,158,11,.9);background:#fbbf2447;box-shadow:inset 0 0 0 1px #ffffff26;padding:0 6px}.allocation-schedule-slotbar--current .allocation-schedule-slotbar-label{color:#0f172aeb}.allocation-schedule-slotbar--long{box-sizing:border-box}.allocation-schedule-slotbar--long .allocation-schedule-slotbar-label{color:inherit;text-shadow:0 1px 2px rgba(0,0,0,.35)}.allocation-schedule-slotbar:not(.allocation-schedule-slotbar--long):not(.allocation-schedule-slotbar--current) .allocation-schedule-slotbar-label{color:#0f172af2;text-shadow:0 1px 0 rgba(255,255,255,.35)}.allocation-schedule-slotbar--mismatch{outline:2px solid rgba(239,68,68,.95);outline-offset:1px}.allocation-schedule-slotbar--mismatch.allocation-schedule-slotbar--current,.allocation-schedule-slotbar--mismatch.allocation-schedule-slotbar--long{border-color:#ef4444f2}[data-appearance=light] .allocation-schedule-slotbar--current{background:#fbbf2466;border-color:#d97706d9}[data-appearance=light] .allocation-schedule-slotbar:not(.allocation-schedule-slotbar--long):not(.allocation-schedule-slotbar--current) .allocation-schedule-slotbar-label{color:#0f172af2}.allocation-schedule-bar-sample--long{background:linear-gradient(90deg,#ef4444d9,#f87171b3);border:2px dashed rgba(255,255,255,.9)}.allocation-schedule-bar-sample--mismatch{background:#ef444459;border:2px solid rgba(239,68,68,.95)}.allocation-schedule-plan-row--promulgation .allocation-schedule-crew-name{font-size:.88rem;color:#fbbf24f2;padding-left:.65rem;border-left:3px solid rgba(251,191,36,.75)}.allocation-schedule-job-meta--warn{color:#f87171f2;font-size:.72rem;margin-top:.15rem}.allocation-schedule-jobchange-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:12;overflow:visible}.allocation-schedule-jobchange-path{fill:none;stroke:#fbbf24eb;stroke-width:2.25;stroke-dasharray:6 4;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.allocation-schedule-jobchange-label{font-size:10px;font-weight:800;fill:#fbbf24fa;stroke:#0f172ad9;stroke-width:2.5px;paint-order:stroke fill;pointer-events:none}.allocation-schedule-jobchange-anchor{position:absolute;top:23px;width:10px;height:10px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(251,191,36,.95);background:#0f172aeb;box-shadow:0 0 0 2px #fbbf2459;z-index:35;pointer-events:none}.allocation-schedule-jobchange-anchor--from{background:#fbbf24d9}.allocation-schedule-jobchange-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:2px;font-size:9px;font-weight:800;padding:1px 5px;border-radius:4px;background:#fbbf24eb;color:#0f172af2;pointer-events:none;line-height:1.2}.allocation-schedule-jobchange-badge--from{margin-left:auto}.allocation-schedule-bar-sample--jobchange{width:28px;height:0;border-top:2px dashed rgba(251,191,36,.95);transform:rotate(32deg);margin:0 4px}.allocation-schedule-grid-host{position:relative;flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:visible}.allocation-schedule-grid-wrap{position:relative;flex:1;width:100%;max-width:100%;min-width:0;min-height:12rem;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior:contain;scroll-padding-inline:8px 12px;border:1px solid var(--border-glass);border-radius:12px;background:#0000001f}.allocation-schedule-grid-scroll-hint{flex-shrink:0;margin:.35rem 0 .5rem;font-size:.75rem;color:var(--text-muted)}.allocation-schedule-grid-fab{position:absolute;top:50%;transform:translateY(-50%);z-index:15;display:flex;align-items:center;justify-content:center;width:40px;height:64px;padding:0;border:1px solid rgba(99,102,241,.25);border-radius:10px;background:#ffffff85;color:#4338caeb;box-shadow:0 2px 14px #0f172a24;cursor:pointer;opacity:.88;transition:opacity .15s ease,background .15s ease;pointer-events:auto}.allocation-schedule-grid-fab:hover{opacity:1;background:#ffffffd1}.allocation-schedule-grid-fab:active{background:#fffffff2}.allocation-schedule-grid-fab--left{left:calc(var(--schedule-label-col-px, 200px) + 6px)}.allocation-schedule-grid-fab--right{right:calc(var(--schedule-actions-col-px, 72px) + 6px)}.allocation-schedule-grid-host--readonly .allocation-schedule-grid-fab--right{right:6px}[data-appearance=light] .allocation-schedule-grid-fab{background:#ffffffa6;border-color:#6366f133;color:#4f46e5f2}[data-appearance=dark] .allocation-schedule-grid-fab{background:#1e2030b8;border-color:#818cf859;color:#c7d2fef2}.allocation-schedule-table{border-collapse:collapse;table-layout:fixed}.allocation-schedule-th,.allocation-schedule-td{box-sizing:border-box;padding:0;margin:0;border:1px solid rgba(255,255,255,.07);vertical-align:middle}.allocation-schedule-table thead{position:sticky;top:0;z-index:35}.allocation-schedule-table thead .allocation-schedule-th--month{background-color:#1a1f3d}.allocation-schedule-table thead .allocation-schedule-th--week{background-color:#141626}.allocation-schedule-table thead .allocation-schedule-th--day{background-color:#0f111c}.allocation-schedule-table thead .allocation-schedule-th--corner{background-color:#0f111c;z-index:50}.allocation-schedule-table thead .allocation-schedule-th--actions{background-color:#0f111c;z-index:45}.allocation-schedule-td--label{width:200px;min-width:200px;max-width:200px;padding:.5rem .75rem;text-align:left;position:sticky;left:0;z-index:30;background-color:#0f111c;background-clip:padding-box;box-shadow:4px 0 12px #00000047;isolation:isolate}.allocation-schedule-th--corner{width:200px;min-width:200px;max-width:200px;padding:.5rem .75rem;text-align:left;position:sticky;left:0;z-index:50;background-color:#0f111c;background-clip:padding-box;box-shadow:4px 0 12px #00000047;isolation:isolate}.allocation-schedule-th--actions,.allocation-schedule-td--actions{width:72px;min-width:72px;max-width:72px;text-align:center;padding:.25rem;white-space:nowrap;z-index:4;background:#0f111cfa}.allocation-schedule-th--actions{z-index:45}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--month{background-color:#eef2ff}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--week{background-color:#f8fafc}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--day{background-color:#f1f5f9}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--today{background-color:#e0e7ff!important;color:#4338ca;box-shadow:inset 0 -2px #4f46e5bf}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--corner,[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--actions{background-color:#f8fafc}[data-appearance=light] .allocation-schedule-th--corner,[data-appearance=light] .allocation-schedule-td--label,[data-appearance=light] .allocation-schedule-th--actions,[data-appearance=light] .allocation-schedule-td--actions{background-color:#f8fafc;box-shadow:4px 0 12px #0f172a1a}[data-appearance=light] .allocation-schedule-th--actions,[data-appearance=light] .allocation-schedule-td--actions{box-shadow:none}.allocation-schedule-th--day,.allocation-schedule-td--day{width:var(--schedule-day-cell-px, 26px);min-width:var(--schedule-day-cell-px, 26px);max-width:var(--schedule-day-cell-px, 26px)}.allocation-schedule-th--month{position:relative;font-size:.8rem;font-weight:800;color:#e0e7ff;background:#6366f124;padding:0;text-align:center;overflow:visible;vertical-align:middle}.allocation-schedule-month-label-track{position:relative;display:block;width:100%;min-height:1.75rem;padding:.35rem .25rem;box-sizing:border-box}.allocation-schedule-month-label{position:absolute;top:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;color:inherit;font:inherit}.allocation-schedule-th--week{font-size:.75rem;font-weight:800;color:#c7d2fe;background:#ffffff08;padding:.3rem .2rem;text-align:center}.allocation-schedule-th--day{font-size:.68rem;font-weight:600;color:var(--text-muted);background:#00000026;padding:.25rem 0;text-align:center;height:24px}.allocation-schedule-th--week-start,.allocation-schedule-td--week-start{box-shadow:inset 2px 0 #818cf88c}.allocation-schedule-th--month-start,.allocation-schedule-td--month-start{box-shadow:inset 2px 0 #6366f1bf}.allocation-schedule-th--month-start.allocation-schedule-th--week-start,.allocation-schedule-td--month-start.allocation-schedule-td--week-start{box-shadow:inset 2px 0 #6366f1bf,inset 4px 0 #818cf873}.allocation-schedule-td--today{background:#6366f124!important;color:#a5b4fc}.allocation-schedule-table thead .allocation-schedule-th--today{background-color:#1a2048!important;background-clip:padding-box;color:#a5b4fc;font-weight:800;box-shadow:inset 0 -2px #6366f1d9}.allocation-schedule-td--day{height:46px;background:#ffffff05}.allocation-schedule-td--bar{position:relative;z-index:1;height:46px;padding:0;overflow:hidden;background:#ffffff05}.allocation-schedule-td--bar .allocation-schedule-bar{width:calc(100% - 4px);height:24px;margin:0 2px;border-radius:5px;box-shadow:0 2px 8px #00000040}.allocation-schedule-td--ship{font-size:.95rem;font-weight:800;color:#c7d2fe;background:#6366f11f;padding:.55rem .75rem}.allocation-schedule-td--ship-label{border-left-width:4px;border-left-style:solid;z-index:31}.allocation-schedule-td--kind{font-size:.8rem;font-weight:700;color:#a5b4fc;background:#6366f114;padding:.4rem .75rem}.allocation-schedule-td--kind-label{font-size:.8rem;font-weight:700;color:#a5b4fc;padding:.4rem .75rem;border-left-width:3px;border-left-style:solid;z-index:31}.allocation-schedule-td--kind-band{padding:0;border-left:none}.allocation-schedule-td--empty{padding:.65rem .75rem;color:var(--text-muted);font-size:.8rem}.allocation-schedule-plan-row .allocation-schedule-td--label{z-index:30;background-color:#0f111c}.allocation-schedule-kind-row .allocation-schedule-td--kind-label,.allocation-schedule-ship-row .allocation-schedule-td--ship-label{z-index:31}.allocation-schedule-th--corner{font-size:.75rem;font-weight:700;color:var(--text-secondary);vertical-align:bottom;padding:.5rem .75rem}.allocation-schedule-th--actions{font-size:.7rem;color:var(--text-muted);vertical-align:bottom}[data-appearance=light] .allocation-schedule-th--corner,[data-appearance=light] .allocation-schedule-td--label{background-color:#f8fafc}[data-appearance=light] .allocation-schedule-plan-row .allocation-schedule-td--label{background-color:#fff}[data-appearance=light] .allocation-schedule-kind-row .allocation-schedule-td--kind-label,[data-appearance=light] .allocation-schedule-ship-row .allocation-schedule-td--ship-label{background-color:#f8fafc}[data-appearance=light] .allocation-schedule-th--month{color:#3730a3;background:#eef2ff}[data-appearance=light] .allocation-schedule-th--week{color:#4338ca;background:#f8fafc}[data-appearance=light] .allocation-schedule-th--day{background:#f1f5f9}[data-appearance=light] .allocation-schedule-td--day,[data-appearance=light] .allocation-schedule-td--bar{background:#fafafa}.allocation-schedule-grid-wrap--loading{opacity:.6;pointer-events:none}.allocation-schedule-grid{width:max-content;min-width:100%}.allocation-schedule-header-row,.allocation-schedule-row{display:grid;grid-template-columns:200px var(--schedule-timeline-width, 780px) 72px;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.05)}.allocation-schedule-ship-section{border-bottom:2px solid rgba(99,102,241,.2)}.allocation-schedule-ship-section:last-child{border-bottom:none}.allocation-schedule-ship-title{padding:.65rem .75rem;font-size:.95rem;font-weight:800;color:#c7d2fe;background:#6366f11f;border-bottom:1px solid rgba(99,102,241,.25)}.allocation-schedule-kind-section{border-bottom:1px solid rgba(255,255,255,.08)}.allocation-schedule-kind-title{padding:.45rem .75rem;font-size:.8rem;font-weight:700;color:#a5b4fc;background:#6366f114}.allocation-schedule-empty-row{padding:.65rem .75rem;font-size:.8rem;color:var(--text-muted)}.allocation-schedule-label-col{padding:.5rem .75rem;border-right:1px solid rgba(255,255,255,.05)}.allocation-schedule-label-col--head{font-size:.75rem;font-weight:700;color:var(--text-secondary);display:flex;align-items:center}.allocation-schedule-crew-name{font-weight:600;font-size:.85rem}.allocation-schedule-job-meta{font-size:.7rem;color:var(--text-secondary);margin-top:.15rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.allocation-schedule-status{padding:.1rem .35rem;border-radius:4px;font-size:.65rem;background:#6366f133}.allocation-schedule-status--approved{background:#10b98133}.allocation-schedule-status--promulgated{background:#94a3b840}.allocation-schedule-timeline-col{position:relative;width:var(--schedule-timeline-width, 780px);min-width:var(--schedule-timeline-width, 780px);max-width:var(--schedule-timeline-width, 780px);overflow:hidden}.allocation-schedule-timeline-col--axis{display:flex;flex-direction:column}.allocation-schedule-granularity-hint{margin-left:.35rem;font-size:.72rem;color:var(--text-muted)}.allocation-schedule-header-row--timeline{align-items:stretch}.allocation-schedule-label-col--timeline-head{align-items:flex-end;padding-bottom:.35rem}.allocation-schedule-month-row,.allocation-schedule-week-row,.allocation-schedule-day-row,.allocation-schedule-track{display:grid;box-sizing:border-box}.allocation-schedule-month-row{min-height:1.6rem}.allocation-schedule-week-row{min-height:1.85rem}.allocation-schedule-day-row{min-height:1.5rem}.allocation-schedule-month-band{display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;color:#e0e7ff;background:#6366f124;border-right:2px solid rgba(99,102,241,.35);border-bottom:1px solid rgba(255,255,255,.08);letter-spacing:.02em}.allocation-schedule-week-band{display:flex;align-items:center;justify-content:center;padding:.25rem .15rem;font-size:.75rem;font-weight:800;color:#c7d2fe;background:#ffffff08;border-right:2px solid rgba(129,140,248,.45);border-bottom:1px solid rgba(255,255,255,.06)}.allocation-schedule-day-head{display:flex;align-items:center;justify-content:center;width:var(--schedule-day-cell-px, 26px);box-sizing:border-box;font-size:.68rem;color:var(--text-muted);border-right:1px solid rgba(255,255,255,.05);background:#0000001f}.allocation-schedule-day-head--week-start{border-left:2px solid rgba(129,140,248,.5)}.allocation-schedule-day-head--month-start{border-left:2px solid rgba(99,102,241,.65)}.allocation-schedule-day-head--today{color:#a5b4fc;font-weight:800;background:#6366f133}.allocation-schedule-track{min-height:46px;align-items:center}.allocation-schedule-day-cell{grid-row:1;width:var(--schedule-day-cell-px, 26px);box-sizing:border-box;min-height:46px;border-right:1px solid rgba(255,255,255,.04);background:#ffffff04}.allocation-schedule-day-cell--week-start{border-left:2px solid rgba(129,140,248,.35);background:#6366f10a}.allocation-schedule-day-cell--month-start{border-left:2px solid rgba(99,102,241,.5)}.allocation-schedule-day-cell--today{background:#6366f11a}.allocation-schedule-bar{grid-row:1;height:24px;margin:0 1px;border-radius:5px;min-width:0;z-index:2;cursor:default;box-shadow:0 2px 10px #0000004d;align-self:center}.allocation-schedule-actions-col--head{align-self:stretch}.allocation-schedule-bar--ship{border:1px solid rgba(255,255,255,.15)}.allocation-schedule-bar--ship.allocation-schedule-bar--approved{box-shadow:inset 0 0 0 2px #10b981bf,0 2px 8px #00000040}.allocation-schedule-bar--draft{background:linear-gradient(90deg,#6366f1e6,#818cf8bf)}.allocation-schedule-bar--approved{background:linear-gradient(90deg,#10b981e6,#34d399bf)}.allocation-schedule-bar--promulgated{background:linear-gradient(90deg,#64748bd9,#94a3b8b3)}.allocation-schedule-bar--open{border-right:2px dashed rgba(255,255,255,.5)}.allocation-schedule-actions-col{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.25rem;border-left:1px solid rgba(255,255,255,.05)}.allocation-schedule-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.allocation-schedule-modal{width:100%;max-width:480px;padding:1.25rem;border-radius:16px}.allocation-schedule-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.allocation-schedule-modal-header h4{font-size:1rem;font-weight:700}.allocation-schedule-form{display:flex;flex-direction:column;gap:.85rem}.allocation-schedule-form .promulgation-field{display:flex;flex-direction:column;gap:.4rem;margin:0}.allocation-schedule-form .promulgation-field>span{display:block;font-size:.75rem;font-weight:600;color:var(--text-secondary);line-height:1.3;margin:0}.allocation-schedule-form .form-select-wrapper,.allocation-schedule-form .date-input-wrapper{width:100%}.allocation-schedule-form select.input-field.form-select-field,.allocation-schedule-form input[type=text].input-field,.allocation-schedule-form .date-input-field{box-sizing:border-box;width:100%;min-height:2.75rem;line-height:1.35;padding:.6rem .875rem;font-size:.9375rem}.allocation-schedule-form select.input-field.form-select-field{padding-right:2.5rem;background-position:right .75rem center}.allocation-schedule-form .date-input-field{padding-right:2.75rem}.allocation-schedule-form-hint{margin:.1rem 0 0;padding:0;font-size:.72rem;color:var(--text-muted);line-height:1.4}.allocation-schedule-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}[data-appearance=light] .allocation-schedule-grid-wrap{background:#f8fafc}[data-appearance=light] .allocation-schedule-warning--error{color:#b91c1c;background:#fef2f2}[data-appearance=light] .allocation-schedule-warning--warning{color:#a16207;background:#fffbeb}[data-appearance=light] .allocation-schedule-month-band{color:#3730a3;background:#eef2ff;border-right-color:#c7d2fe}[data-appearance=light] .allocation-schedule-week-band{background:#f8fafc;border-right-color:#a5b4fc}[data-appearance=light] .allocation-schedule-week-band{color:#4338ca}[data-appearance=light] .allocation-schedule-day-head{background:#f1f5f9;border-right-color:#e2e8f0}[data-appearance=light] .allocation-schedule-day-cell{background:#fafafa;border-right-color:#e2e8f0}[data-appearance=light] .allocation-schedule-day-cell--week-start{background:#f5f3ff}[data-appearance=light] .allocation-schedule-day-head--today,[data-appearance=light] .allocation-schedule-day-cell--today{background:#eef2ff;color:#4338ca}.app-layout--compact{display:flex;flex-direction:column}.app-main-column{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.app-layout--compact .app-main{flex:1;height:auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-layout--compact .app-container.app-main{padding:.75rem .85rem 1.25rem;gap:.75rem;max-width:none}.app-layout--compact .app-content{flex:none;min-height:auto;overflow:visible}.app-layout--compact .crew-registry,.app-layout--compact .finance-account-balance,.app-layout--compact .allocation-management,.app-layout--compact .promulgation-management,.app-layout--compact .admin-menu-grid,.app-layout--compact .dashboard-home{flex:none;min-height:auto}.app-layout--compact .crew-registry-panel,.app-layout--compact .glass-panel.panel-body{flex:none;min-height:auto;height:auto}.app-layout--compact .crew-registry-panel .compact-card-list,.app-layout--compact .crew-registry-panel .crew-assignment-body{flex:none}.mobile-top-bar{flex-shrink:0;display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;margin:0;border-radius:0;border-left:none;border-right:none;border-top:none;z-index:40}.mobile-menu-btn,.mobile-logout-btn{flex-shrink:0;padding:.45rem .55rem;min-width:2.5rem;min-height:2.5rem}.mobile-top-bar-title{flex:1;margin:0;font-size:.95rem;font-family:var(--font-display);font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;border:none;background:#0000008c;cursor:pointer}.mobile-nav-drawer{position:fixed;top:0;left:0;bottom:0;z-index:100;width:min(88vw,300px);max-width:300px;display:flex;flex-direction:column;padding:0;border-radius:0;border-top:none;border-bottom:none;border-left:none;transform:translate(-105%);transition:transform var(--transition-normal);box-shadow:8px 0 32px #00000073}.mobile-nav-drawer--open{transform:translate(0)}.mobile-nav-drawer-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1rem .75rem;border-bottom:1px solid var(--border-glass)}.mobile-nav-drawer-title{margin:0;font-size:1.05rem;font-weight:700;font-family:var(--font-display)}.mobile-nav-close{padding:.4rem;min-width:2.25rem;min-height:2.25rem}.mobile-nav-drawer-body{flex:1;min-height:0;padding:.75rem 1rem 1rem;display:flex;flex-direction:column}.mobile-nav-drawer-body .sidebar-menu{flex:1;min-height:0;overflow-y:auto}.app-header--compact{display:none}@media (max-width: 640px){.app-layout--compact .app-container.app-main{padding:.55rem .65rem 1rem}.mobile-top-bar-title{font-size:.875rem}.panel-body{padding:1rem}.panel-title-area{flex-direction:column;align-items:flex-start;gap:.65rem}.crew-toolbar{flex-wrap:wrap;width:100%}.allocation-view-tabs{flex-wrap:wrap}.allocation-view-tab{flex:1 1 auto;min-width:0;font-size:.78rem;padding:.5rem .65rem}.promulgation-list-toolbar,.promulgation-list-filters{flex-direction:column;align-items:stretch;width:100%}.promulgation-list-filters .input-field,.promulgation-filter-date .date-input-wrapper{min-width:0;width:100%}.crew-assignment-toolbar,.allocation-schedule-toolbar,.allocation-schedule-toolbar .allocation-schedule-controls{flex-direction:column;align-items:stretch}}.compact-card-list{display:flex;flex-direction:column;gap:.65rem}.compact-card{padding:.85rem 1rem;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.06)}.compact-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.compact-card-title{margin:0;font-size:.9375rem;font-weight:600;font-family:var(--font-display);color:var(--text-primary)}.compact-card-subtitle{margin:.2rem 0 0;font-size:.75rem;color:var(--text-secondary)}.compact-card-badge{flex-shrink:0;font-size:.68rem;font-weight:600;padding:.2rem .45rem;border-radius:6px;background:#6366f126;color:var(--accent-muted)}.compact-card-body{display:flex;flex-direction:column;gap:.35rem}.compact-card-row{display:grid;grid-template-columns:5.5rem 1fr;gap:.35rem .65rem;font-size:.8125rem;align-items:baseline}.compact-card-row-label{color:var(--text-muted);font-size:.72rem}.compact-card-row-value{color:var(--text-secondary);word-break:break-word}.compact-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.05)}.compact-card-actions .btn{padding:.4rem .65rem;font-size:.72rem}.compact-desktop-only{text-align:center;padding:2rem 1.25rem}.compact-desktop-only-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.15rem}.compact-desktop-only-text{margin:0 auto .5rem;max-width:28rem;color:var(--text-secondary);font-size:.9rem;line-height:1.55}.compact-desktop-only-sub{margin:0;font-size:.78rem;color:var(--text-muted)}.compact-schedule-list{display:flex;flex-direction:column;gap:.5rem}.compact-schedule-hint{font-size:.78rem;color:var(--text-muted);margin:0 0 .75rem;line-height:1.45}.crew-assignment-compact-ship{margin-bottom:1rem}.crew-assignment-compact-ship-title{font-size:.9rem;font-weight:600;margin:0 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border-glass)}.login-wrapper{padding:1rem}@media (max-width: 640px){.login-card{padding:1.5rem 1.25rem;width:100%;max-width:100%}}.app-layout--tablet-landscape .crew-registry,.app-layout--tablet-landscape .crew-registry-panel,.app-layout--tablet-landscape .allocation-schedule-panel{flex:none;min-height:auto;overflow:visible}.app-layout--tablet-landscape .allocation-schedule-grid-section{flex:none;min-height:auto}.app-layout--tablet-landscape .crew-table-wrapper,.app-layout--tablet-landscape .qual-table-scroll-wrap,.app-layout--tablet-landscape .table-scroll-wrap,.app-layout--tablet-landscape .promulgation-table-wrap,.app-layout--tablet-landscape .allocation-schedule-grid-host,.app-layout--tablet-landscape .allocation-schedule-grid-wrap{flex:none;max-width:100%;min-width:0;min-height:12rem;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.app-layout--compact .allocation-schedule-panel,.app-layout--compact .allocation-schedule-grid-section{flex:none;min-height:auto}.app-layout--compact .allocation-schedule-grid-host,.app-layout--compact .allocation-schedule-grid-wrap{flex:none;max-width:100%;min-width:0;min-height:12rem;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.table-scroll-hint{margin:0 0 .5rem;font-size:.75rem;color:var(--text-muted)}.finance-company-dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.finance-company-dashboard-title{margin:0;font-size:1.2rem;font-family:var(--font-display)}.finance-company-dashboard-subtitle{margin:.35rem 0 0;font-size:.85rem;color:var(--text-secondary)}.finance-company-dashboard-weather{padding:1.25rem}.finance-company-dashboard-weather-heading{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:var(--text-secondary)}.finance-company-dashboard-weather-heading h4{margin:0;font-size:.95rem;font-weight:600}.finance-company-dashboard-weather-grid{display:grid;gap:.75rem}.finance-company-dashboard-weather-main{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.finance-company-dashboard-weather-condition{font-size:1.5rem;font-weight:700;font-family:var(--font-display)}.finance-company-dashboard-weather-temp{display:inline-flex;align-items:center;gap:.35rem;font-size:1.25rem;color:var(--text-secondary)}.finance-company-dashboard-weather-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem;color:var(--text-secondary)}.finance-company-dashboard-weather-meta span{display:inline-flex;align-items:center;gap:.35rem}.finance-company-dashboard-muted{margin:0;font-size:.75rem;color:var(--text-muted)}.finance-company-dashboard-error{margin:0;font-size:.85rem;color:#f87171}.crew-timeline-grid-host.allocation-schedule-grid-host--readonly .allocation-schedule-grid-fab--right{right:calc(var(--schedule-summary-col-px, 72px) * 2 + 6px)}.crew-allocation-history-mobile-totals{margin:1rem 0 0;font-size:.85rem;font-weight:700;color:var(--text-secondary);text-align:right}.crew-timeline-slotbar{isolation:isolate}.crew-timeline-slotbar-label{display:inline-block;max-width:100%;padding:1px 5px;border-radius:4px;background:#ffffffe0;color:#0f172a!important;text-shadow:none;box-shadow:0 1px 3px #00000047}[data-appearance=light] .crew-timeline-slotbar-label{background:#fffffff0;color:#0f172a!important}.allocation-schedule-th--summary,.allocation-schedule-td--summary{width:var(--schedule-summary-col-px, 72px);min-width:var(--schedule-summary-col-px, 72px);max-width:var(--schedule-summary-col-px, 72px);text-align:center;font-size:.75rem;font-weight:700;padding:.35rem .25rem;white-space:nowrap;position:sticky;right:0;z-index:5;background:#0f111cfa}.allocation-schedule-th--summary:nth-last-child(2),.allocation-schedule-td--summary:nth-last-child(2){right:var(--schedule-summary-col-px, 72px)}.allocation-schedule-table thead .allocation-schedule-th--summary{z-index:45;background-color:#0f111c}.allocation-schedule-td--totals{font-weight:800;background:#1e293b8c!important}.crew-timeline-totals-row .allocation-schedule-td--label{font-weight:800}[data-appearance=light] .allocation-schedule-table thead .allocation-schedule-th--summary,[data-appearance=light] .allocation-schedule-th--summary,[data-appearance=light] .allocation-schedule-td--summary{background-color:#f8fafc}[data-appearance=light] .allocation-schedule-td--totals{background:#eef2ff!important}
