:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#12324d;background:radial-gradient(circle at top left,rgba(110,187,255,.28),transparent 28%),radial-gradient(circle at top right,rgba(97,159,255,.22),transparent 24%),linear-gradient(180deg,#f4faff,#eef6ff 38%,#e8f2fb);line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-page: #eef6ff;--bg-panel: rgba(255, 255, 255, .86);--bg-panel-strong: #ffffff;--bg-panel-muted: #f3f9ff;--bg-accent: linear-gradient(135deg, #2f84d6 0%, #56b1ff 100%);--bg-accent-soft: linear-gradient(135deg, rgba(47, 132, 214, .12), rgba(86, 177, 255, .16));--bg-alert-soft: linear-gradient(135deg, rgba(255, 202, 138, .24), rgba(255, 141, 109, .22));--text-main: #12324d;--text-strong: #082640;--text-soft: #5d7893;--text-inverse: #f8fcff;--border-soft: rgba(37, 103, 168, .12);--border-strong: rgba(37, 103, 168, .2);--shadow-panel: 0 20px 48px rgba(45, 89, 142, .12);--shadow-soft: 0 14px 30px rgba(71, 116, 171, .1);--blue-700: #165189;--blue-600: #1f6eb8;--blue-500: #2f84d6;--blue-400: #57aef0;--cyan-400: #74d2f7;--success-bg: #dbf6ec;--success-text: #116746;--alert-bg: #fff1dc;--alert-text: #b25d18;--danger-bg: #ffe3e0;--danger-text: #b43b35}*{box-sizing:border-box}html{background:var(--bg-page)}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,input,select,textarea{color:var(--text-main)}#root{min-height:100vh}.app-loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;color:var(--text-strong);font-size:1rem;font-weight:700}.app-loading-screen--blocked{text-align:center}.app-loading-screen__card{display:grid;gap:12px;justify-items:center;max-width:520px;padding:24px;border:1px solid var(--border-soft);border-radius:22px;background:var(--bg-panel);box-shadow:var(--shadow-panel)}.app-loading-screen__card span{color:var(--text-soft);font-weight:400}.app-shell{position:relative;display:grid;grid-template-rows:auto 1fr;min-height:100vh}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(32,97,157,.05) 1px,transparent 1px),linear-gradient(rgba(32,97,157,.04) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.22),transparent 85%);mask-image:linear-gradient(180deg,rgba(0,0,0,.22),transparent 85%)}.app-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid rgba(35,108,176,.12);background:#f8fcffd1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-topbar__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.topbar-auth__logout{white-space:nowrap;font-weight:700}.app-topbar__brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 42%),linear-gradient(135deg,#67b7fb,#2f84d6 58%,#1b5fa5);color:var(--text-inverse);box-shadow:inset 0 1px #ffffff47,inset 0 -8px 16px #0836612e,0 16px 30px #387fc538;font-size:1.2rem}.brand-mark svg{filter:drop-shadow(0 2px 4px rgba(8,38,64,.24))}.brand-block{min-width:0}.brand-block h1{margin:2px 0;font-size:1.55rem;line-height:1.02;color:var(--text-strong)}.brand-block p,.hero-panel p,.status-card__description,.panel-feedback,.field span,.brand-kicker{margin:0;color:var(--text-soft)}.brand-kicker,.hero-eyebrow,.panel-kicker,.status-card__title{display:inline-block;letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:700;color:var(--blue-600)}.topbar-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-status__pill{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid rgba(37,103,168,.14);border-radius:999px;background:#ffffffb8;color:var(--blue-700);box-shadow:var(--shadow-soft);white-space:nowrap}.topbar-nav{display:flex;align-items:center;gap:8px;flex-shrink:0}.language-switcher{display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid rgba(37,103,168,.14);border-radius:14px;background:#ffffffb8;box-shadow:var(--shadow-soft)}.language-switcher__label{padding:0 8px;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-600)}.language-switcher__button{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text-soft);font-weight:700;cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .16s ease}.language-switcher__button:hover{background:#2f84d614;color:var(--text-strong)}.language-switcher__button.is-active{background:var(--bg-accent);color:var(--text-inverse);box-shadow:0 8px 18px #2f84d62e}.language-switcher__flag{width:18px;height:18px;object-fit:contain;flex-shrink:0}.topbar-nav__link{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(37,103,168,.14);border-radius:14px;background:#ffffffb8;color:var(--text-main);cursor:pointer;box-shadow:var(--shadow-soft);transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.topbar-nav__link:hover{border-color:#2567a83d;background:#ffffffeb;transform:translateY(-1px)}.topbar-nav__link.is-active{border-color:#0e498057;background:linear-gradient(135deg,#2b7fd2,#5eb5ff);color:var(--text-inverse);box-shadow:inset 0 1px #ffffff38,0 14px 28px #2b70b347;text-shadow:0 1px 1px rgba(8,38,64,.22)}.topbar-nav__link.is-active:after{content:"";position:absolute;left:16px;right:16px;bottom:-8px;height:5px;border-radius:999px;background:#4aa8f2;box-shadow:0 3px 8px #2676be2e}.topbar-nav__link.is-active svg{filter:drop-shadow(0 1px 2px rgba(8,38,64,.22))}.app-content{min-width:0;padding:18px 28px 28px;overflow-x:hidden}.page-grid{display:grid;gap:16px;min-width:0}.hero-panel,.panel,.status-card{min-width:0;border:1px solid var(--border-soft);border-radius:22px;background:var(--bg-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-panel)}.hero-panel,.panel{padding:18px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.home-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:16px;align-items:stretch;overflow:hidden;background:radial-gradient(circle at top right,rgba(98,177,255,.22),transparent 30%),radial-gradient(circle at bottom left,rgba(84,153,230,.14),transparent 26%),linear-gradient(135deg,#fffffff5,#ecf6ffeb)}.home-hero__content{display:grid;align-content:center;gap:8px}.home-hero h2{max-width:760px;font-size:clamp(1.6rem,2.4vw,2.35rem);line-height:1.04;margin:0;color:var(--text-strong)}.home-hero p{max-width:680px;font-size:.92rem}.hero-metrics{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:10px}.hero-metric{display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(37,103,168,.12);border-radius:18px;background:#f6fbfff5}.hero-metric strong{font-size:1.3rem;color:var(--text-strong)}.hero-metric span:last-child{color:var(--text-soft)}.hero-metric__icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bg-accent-soft);color:var(--blue-600)}.status-grid,.alerts-panels-grid{display:grid;gap:24px}.alerts-panels-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.alerts-column{display:grid;gap:16px;min-width:0}.status-card{padding:16px;background:radial-gradient(circle at top right,rgba(91,178,255,.18),transparent 28%),linear-gradient(180deg,#fffffffa,#f3f9fff0)}.status-card--alert{border-color:#de84443d;background:radial-gradient(circle at top right,rgba(255,203,126,.18),transparent 28%),linear-gradient(180deg,#fffbf6fa,#fff5ecf0)}.status-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.status-card__icon{width:auto;height:auto;display:inline-flex;align-items:center;justify-content:center}.status-card__flag{width:32px;height:auto;display:block;object-fit:contain}.status-card__value{display:block;margin-top:8px;font-size:1.15rem;color:var(--text-strong)}.alerts-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.alerts-indicator{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid rgba(47,132,214,.16);border-radius:999px;background:#eef8ff;color:var(--blue-700);white-space:nowrap}.alerts-indicator.is-alert{border-color:#e2934c38;background:#fff3e4;color:var(--alert-text)}.panel-feedback--error{color:var(--danger-text)}.alerts-table-wrapper,.table-wrapper{overflow:auto;border-radius:16px;border:1px solid rgba(37,103,168,.12);background:#ffffffb8}.alerts-table-wrapper::-webkit-scrollbar,.table-wrapper::-webkit-scrollbar{width:12px;height:12px}.alerts-table-wrapper::-webkit-scrollbar-track,.table-wrapper::-webkit-scrollbar-track{background:#5692cf14}.alerts-table-wrapper::-webkit-scrollbar-thumb,.table-wrapper::-webkit-scrollbar-thumb{border:3px solid rgba(86,146,207,.08);border-radius:999px;background:linear-gradient(180deg,#69b7f5,#2f84d6)}.alerts-table,.availability-table,.summary-table{width:100%;border-collapse:collapse}.alerts-table thead th,.availability-table thead th,.summary-table thead th{position:sticky;top:0;z-index:1;padding:7px 10px;text-align:left;font-size:.76rem;font-weight:700;color:var(--text-strong);background:#e8f4ff;border-bottom:1px solid rgba(37,103,168,.12)}.alerts-table tbody td{padding:7px 10px;border-bottom:1px solid rgba(37,103,168,.08);background:#ffffffc7;font-size:.8rem}.alerts-table tbody tr:nth-child(2n) td{background:#f0f7ffeb}.alerts-table tbody tr:hover td,.availability-table tbody tr:hover td,.availability-table tbody tr:hover th,.summary-table tbody tr:hover td{background:#eaf4ff}.row-alert-badge{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:3px 8px;border-radius:999px;background:var(--success-bg);color:var(--success-text);font-size:.74rem;font-weight:700}.row-alert-badge.is-alert{background:var(--alert-bg);color:var(--alert-text)}.filters-panel{overflow:visible}.filters-grid,.summary-filters-grid{display:grid;gap:12px;min-width:0}.filters-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.summary-filters-layout{display:grid;gap:12px}.summary-filters-grid--primary,.summary-filters-grid--secondary{grid-template-columns:repeat(4,minmax(0,1fr))}.field{display:grid;gap:6px}.field span{font-size:.8rem}.field select,.field input{width:100%;min-height:40px;padding:0 14px;border:1px solid rgba(37,103,168,.14);border-radius:12px;background:#ffffffeb;box-shadow:inset 0 1px #fff9}.field input:focus,.field select:focus,.sensor-select__control.is-open,.vessel-select__control.is-open,.sensors-multiselect__control.is-open{outline:none;border-color:#2f84d666;box-shadow:0 0 0 4px #2f84d61a}.sensor-select,.vessel-select,.sensors-multiselect{position:relative}.datetime-text-field{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:8px;align-items:center}.datetime-text-field__divider{color:var(--text-soft);font-size:.88rem;text-transform:lowercase}.sensor-select__control,.vessel-select__control,.sensors-multiselect__control,.segmented-control,.daily-date-navigator__label{border:1px solid rgba(37,103,168,.14);background:#ffffffeb;box-shadow:inset 0 1px #fff9}.sensor-select__control{display:block;min-height:40px;border-radius:12px;transition:border-color .16s ease,box-shadow .16s ease}.sensor-select__control input{border:0;background:transparent;padding-right:14px}.sensor-select__control input:focus,.sensors-multiselect__search input:focus{outline:none}.vessel-select__control,.sensors-multiselect__control{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-radius:12px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,opacity .16s ease}.vessel-select__control:disabled{opacity:.5;cursor:not-allowed}.vessel-select__value,.sensors-multiselect__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.vessel-select__value.is-placeholder,.sensors-multiselect__value.is-placeholder,.sensor-select__empty,.sensors-multiselect__empty{color:var(--text-soft)}.vessel-select__chevron,.sensors-multiselect__chevron{flex-shrink:0;color:var(--blue-600);transition:transform .16s ease}.vessel-select__chevron svg{display:block;font-size:.9rem}.vessel-select__chevron.is-open,.sensors-multiselect__chevron.is-open{transform:rotate(180deg)}.sensor-select__dropdown,.vessel-select__dropdown,.sensors-multiselect__dropdown{z-index:20;border:1px solid rgba(37,103,168,.16);border-radius:18px;background:#fcfefffa;box-shadow:0 18px 36px #2e5d9229;overflow:hidden}.sensor-select__dropdown--portal,.vessel-select__dropdown--portal,.sensors-multiselect__dropdown--portal{position:fixed;z-index:9999}.sensor-select__hint,.vessel-select__hint,.sensors-multiselect__hint{padding:12px 14px 10px;border-bottom:1px solid rgba(37,103,168,.08);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-600);white-space:nowrap}.sensors-multiselect__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 10px;border-bottom:1px solid rgba(37,103,168,.08)}.sensors-multiselect__clear{border:0;background:transparent;color:var(--blue-600);cursor:pointer}.sensors-multiselect__search{display:flex;align-items:center;gap:10px;margin:10px 12px 0;padding:0 12px;min-height:44px;border:1px solid rgba(37,103,168,.12);border-radius:12px;background:#f2f8ffe6;color:var(--text-soft)}.sensors-multiselect__search input{width:100%;min-height:42px;padding:0;border:0;background:transparent;color:inherit}.sensor-select__list,.vessel-select__list,.sensors-multiselect__list{max-height:320px;overflow-y:auto;padding:8px}.sensors-multiselect__list{margin-top:10px}.sensor-select__list::-webkit-scrollbar,.vessel-select__list::-webkit-scrollbar,.sensors-multiselect__list::-webkit-scrollbar{width:10px}.sensor-select__list::-webkit-scrollbar-track,.vessel-select__list::-webkit-scrollbar-track,.sensors-multiselect__list::-webkit-scrollbar-track{background:#5692cf0f}.sensor-select__list::-webkit-scrollbar-thumb,.vessel-select__list::-webkit-scrollbar-thumb,.sensors-multiselect__list::-webkit-scrollbar-thumb{border-radius:999px;background:linear-gradient(180deg,#69b7f5cc,#2f84d6e6)}.sensor-select__option,.sensor-select__empty,.vessel-select__option,.sensors-multiselect__option{width:100%;border:0;border-radius:12px;text-align:left;cursor:pointer;transition:background-color .14s ease,color .14s ease}.sensor-select__option,.sensor-select__empty,.vessel-select__option{padding:11px 12px;background:transparent;color:var(--text-main)}.sensors-multiselect__option{display:flex;align-items:center;gap:12px;padding:11px 12px;background:transparent;color:var(--text-main)}.sensor-select__option:hover,.vessel-select__option:hover,.sensors-multiselect__option:hover{background:#2f84d61a;color:var(--text-strong)}.sensor-select__option.is-selected,.vessel-select__option.is-selected,.sensors-multiselect__option.is-selected{background:#2f84d624;color:var(--blue-700);box-shadow:inset 0 0 0 1px #2f84d61f}.sensors-multiselect__check{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(37,103,168,.16);background:#ffffffd9;color:transparent;flex-shrink:0}.sensors-multiselect__check.is-selected{border-color:#2f84d638;background:#2f84d61f;color:var(--blue-600)}.sensors-multiselect__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;min-height:40px;border-radius:12px}.segmented-control__button{min-height:30px;border:0;border-radius:10px;background:transparent;color:var(--text-soft);font-weight:600;cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .16s ease}.segmented-control__button:hover{background:#2f84d614;color:var(--text-strong)}.segmented-control__button.is-active{background:var(--bg-accent);color:var(--text-inverse);box-shadow:0 8px 18px #2f84d62e}.field--actions{align-self:stretch}.field--actions button{width:100%}.button-content{display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary-button .button-content,.primary-button .button-content span,.primary-button .button-content svg{color:#fff}.secondary-button .button-content,.secondary-button .button-content span,.secondary-button .button-content svg{color:var(--blue-700)}.secondary-button.secondary-button--excel{border-color:#186f3d2e;background:linear-gradient(135deg,#1f7a43,#2d9c5b);box-shadow:0 10px 20px #1f7a432e}.secondary-button.secondary-button--excel .button-content,.secondary-button.secondary-button--excel .button-content span,.secondary-button.secondary-button--excel .button-content svg{color:#fff}.primary-button,.secondary-button,.daily-date-navigator button{min-height:40px;border-radius:12px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease,border-color .16s ease,background-color .16s ease}.primary-button{border:0;background:var(--bg-accent);color:#fff;font-weight:700;box-shadow:0 14px 28px #2f84d638}.secondary-button,.daily-date-navigator button{border:1px solid rgba(37,103,168,.14);background:#ffffffeb;color:var(--blue-700);font-weight:700}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.daily-date-navigator button:hover{transform:translateY(-1px)}.secondary-button.secondary-button--excel:hover:not(:disabled){border-color:#1459313d;background:linear-gradient(135deg,#19673a,#278d52);box-shadow:0 12px 22px #1f7a4338}.primary-button:disabled{background:linear-gradient(135deg,#6daee8,#89c2f6);color:#fffffff5;box-shadow:none;opacity:1;cursor:not-allowed}.secondary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button.secondary-button--excel:disabled{border-color:#48926529;background:linear-gradient(135deg,#76b08f,#8ac3a3);opacity:1}.daily-date-navigator{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center}.daily-date-navigator__label{min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:14px;color:var(--text-main)}.table-wrapper{width:100%;max-width:100%;margin-top:8px;scrollbar-color:rgba(47,132,214,.8) rgba(86,146,207,.08);scrollbar-width:thin}.availability-table{min-width:980px}.summary-table{min-width:1220px}.summary-virtual-wrapper{max-height:min(74vh,780px);overflow:auto}.summary-virtual-table{min-width:100%}.summary-virtual-header{position:sticky;top:0;z-index:2;display:grid;padding-bottom:2px;background:#f1f8ff}.summary-virtual-header-cell{display:flex;align-items:center;justify-content:center;padding:5px 8px;border-bottom:1px solid rgba(37,103,168,.1);border-right:1px solid rgba(37,103,168,.08);background:#e8f4ff;font-weight:700;text-align:center;line-height:1.05;font-size:.72rem;white-space:normal;color:var(--text-strong)}.summary-virtual-header-cell:last-child{border-right:0}.summary-virtual-header-cell.is-sticky{position:sticky;z-index:4}.summary-virtual-body{position:relative}.summary-virtual-row{position:absolute;left:0;right:0;display:grid;background:#ffffffc7}.summary-virtual-row.is-alt{background:#f1f8ffeb}.summary-virtual-row:hover{background:#eaf4ff}.summary-virtual-cell{display:flex;align-items:center;justify-content:center;padding:4px 8px;border-bottom:1px solid rgba(37,103,168,.08);color:var(--text-main);font-size:.76rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-virtual-cell.is-sticky{position:sticky;z-index:1;background:#fafdfffa}.summary-virtual-row.is-alt .summary-virtual-cell.is-sticky{background:#f1f8fffa}.availability-table th,.availability-table td,.summary-table th,.summary-table td{padding:6px 8px;border-bottom:1px solid rgba(37,103,168,.08);text-align:center;font-size:.76rem}.availability-table thead th,.summary-table thead th{position:sticky;top:0;background:#e8f4ff;color:var(--text-strong);z-index:1}.availability-table thead th:first-child{text-align:left}.availability-table thead th:not(:first-child){text-align:center}.availability-table tbody th{text-align:left;color:var(--blue-700);background:#f5fafff0}.summary-table tbody td{background:#ffffffc7;white-space:nowrap}.summary-table tbody tr:nth-child(2n) td{background:#f1f8ffeb}.availability-table__cell{font-weight:700;line-height:1}.availability-table__cell--good{background:#dff6ec;color:var(--success-text)}.availability-table__cell--bad{background:#ffe7e3;color:var(--danger-text)}.empty-state,.error-state{margin-top:12px;padding:12px 14px;border-radius:14px;background:#f5fafff0}.error-state{border:1px solid rgba(210,82,82,.18);color:var(--danger-text)}@media (max-width: 1200px){.home-hero{grid-template-columns:1fr}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 960px){.app-topbar{flex-direction:column;align-items:flex-start;padding:16px 20px 14px}.app-topbar__brand,.app-topbar__actions,.topbar-nav,.topbar-status{width:100%}.app-topbar__actions{justify-content:flex-start}.topbar-nav,.language-switcher{flex-wrap:wrap}.alerts-panels-grid{grid-template-columns:1fr}.alerts-panel-header{flex-direction:column}.filters-grid,.summary-filters-grid,.summary-filters-grid--primary,.summary-filters-grid--secondary,.hero-metrics,.datetime-text-field{grid-template-columns:1fr}.datetime-text-field__divider{display:none}.app-content{padding:16px}}
