@font-face{font-family:Montserrat;src:url('./Montserrat.ttf') format('truetype');font-weight:100 900;font-display:swap}
.operator-link{border:0;background:none;padding:0;text-align:left;line-height:1.5;color:inherit}.operator-link:hover,.operator-link:focus-visible{color:#006fa8;text-decoration:underline;text-underline-offset:4px}.operator-view{border:1px solid #cedde4;border-radius:6px;padding:11px 14px;background:#edf3f6;margin:10px 0}.operator-companies,.operator-sources{margin-top:24px;border-top:1px solid #dae5ea;padding-top:18px}.operator-companies summary,.operator-sources summary{cursor:pointer;font-size:13px;font-weight:600}dialog .operator-description,dialog .operator-companies p,dialog .operator-sources p{font-size:14px}dialog dd{overflow-wrap:anywhere}
.movement-date,.movement-clock{display:block;font-weight:650;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.movement-clock{margin-top:3px;font-size:14px}.advanced .removed-toggle{grid-column:1/-1;flex-direction:row;align-items:center}.removed-toggle input{width:16px;height:16px;flex:none}
@media(max-width:960px){#rows tr.date-row th{width:100%}.filters .search-field{grid-column:1/3}.filters .more{grid-column:2;height:30px}}
:root{font-family:Montserrat,Arial,sans-serif;color:#19364a;background:#f3f6f8;font-synthesis:none;font-size:14px;--navy:#103a50;--blue:#006fa8;--line:#dae5ea;--muted:#526d7d}*{box-sizing:border-box}body{margin:0}button,input,select,summary{font:inherit}button,a,summary,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #11a3c8;outline-offset:3px}button{color:inherit}a{color:var(--blue)}[hidden]{display:none!important}.top{padding:23px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:white}.brand{font-size:14px;font-weight:800;letter-spacing:2px;text-decoration:none;color:var(--navy)}.brand span{font-weight:500}.home{font-size:12px;color:var(--muted);text-decoration:none}main{max-width:1560px;padding:42px 4% 22px;margin:auto}.intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:32px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.8px;color:#587482}h1{font-size:42px;letter-spacing:-1.8px;margin:9px 0 12px;color:var(--navy);font-weight:700}.intro p{margin:0;color:var(--muted);font-size:13px}.fresh{font-size:11px;max-width:310px;display:grid;grid-template-columns:7px 1fr;gap:10px;align-items:center}.live-dot{width:6px;height:6px;background:#21856b;border-radius:50%}.text-button{grid-column:2;background:none;border:0;padding:0;text-align:left;color:var(--blue);font-size:11px}.board{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:visible;box-shadow:0 5px 24px #12334504}.board-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 25px;gap:12px}.tabs{display:flex;gap:28px}.tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:23px 0 19px;font-weight:650;font-size:17px;color:var(--muted)}.tabs button[aria-selected=true]{border-bottom-color:var(--blue);color:var(--navy)}.share{border:1px solid var(--line);border-radius:7px;background:#fff;font-size:11px;padding:10px 12px}.share span{padding-left:12px}.toolbar{display:flex;justify-content:space-between;gap:10px;padding:23px 25px 18px;flex-wrap:wrap}.periods{display:flex;gap:5px;flex-wrap:wrap}.periods button,.preset{background:transparent;border:1px solid transparent;border-radius:6px;padding:9px 12px;font-size:12px;font-weight:550}.periods .active{background:#eaf2f6;color:#00567f}.preset{border-color:var(--line)}.preset[aria-pressed=true]{border-color:#2085ab;background:#edf7fb;color:#006287}.filters{display:grid;grid-template-columns:1fr 1.35fr 1.5fr auto;gap:16px;padding:0 25px 20px;align-items:end}.filters label,.filter-field,.advanced label{display:flex;flex-direction:column;gap:8px;min-width:0}.filters label,.label{font-size:9px;font-weight:750;letter-spacing:1px;color:var(--muted)}input,select{width:100%;height:41px;background:white;border:1px solid #cedde4;border-radius:6px;padding:9px 12px;color:#19364a;font-size:12px;font-weight:500;letter-spacing:0}.more{height:41px;border:0;background:none;font-size:11px;white-space:nowrap}.more span{margin-left:10px}.line-menu{position:relative;font-size:12px;letter-spacing:0;font-weight:500}.line-menu summary{list-style:none;border:1px solid #cedde4;border-radius:6px;padding:12px;cursor:pointer;white-space:nowrap}.line-menu summary:after{content:'⌄';float:right}.line-menu[open]>div{position:absolute;z-index:5;top:45px;left:0;background:#fff;border:1px solid var(--line);box-shadow:0 8px 30px #12334520;padding:10px;width:max-content;min-width:100%;max-width:85vw;border-radius:8px}.line-menu label{display:flex;flex-direction:row;align-items:center;padding:8px;font-size:12px;letter-spacing:0;font-weight:500}.line-menu input{width:16px;height:16px}.advanced{padding:0 25px 20px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;font-size:11px}.dates{padding:0 25px 20px;display:flex;gap:12px;align-items:end;font-size:12px}.dates input{margin-top:6px}.dates span{color:#ac382c}.chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 25px}.chips:empty{display:none}.chips button{border:0;background:#ecf3f6;border-radius:5px;font-size:10px;padding:7px 10px}.chips .reset{background:none;text-decoration:underline;color:var(--muted)}.results-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 25px 12px;gap:10px;font-size:11px;color:var(--muted)}.results-bar p{margin:0}.results-bar label{display:flex;align-items:center;gap:8px}.results-bar select{width:auto;font-size:10px;border:0;padding:0;height:auto;background:none}table{border-collapse:collapse;width:100%;table-layout:fixed}thead{background:#f1f6f8;color:#526d7d}th{font-size:11px;letter-spacing:.4px;text-align:left;padding:14px 12px;font-weight:750}th:first-child{padding-left:25px;width:16%}th:nth-child(2){width:21%}th:nth-child(3){width:16%}th:nth-child(4){width:16%}th:nth-child(5){width:16%}th:nth-child(6){width:15%}td{padding:14px 12px;vertical-align:middle;font-size:14px;line-height:1.5;overflow-wrap:anywhere}td:first-child{padding-left:25px}tr.data-row:nth-child(odd){background:#f8fbfc}tr.data-row:hover{background:#eef6fa}.date-row th{padding:15px 25px 10px;background:white;color:#173c51;font-size:11px;letter-spacing:0}.time{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.sub{display:block;font-size:12px;font-weight:500;color:#415867;margin-top:4px}.vessel{border:0;background:none;padding:0;text-align:left;font-size:15px;font-weight:700;line-height:1.4;color:var(--navy)}.vessel:hover{text-decoration:underline}.voyage{display:block;font-size:13px;color:#0074aa;font-weight:650;margin-top:4px}.badge{display:inline-block;max-width:100%;overflow-wrap:normal;font-size:12px;line-height:1.45;font-weight:650;border-radius:5px;padding:5px 9px;background:var(--badge,#eaf0f3);color:white;margin-top:5px}.operator{font-size:14px;font-weight:650}.status{font-size:13px;font-weight:650;overflow-wrap:normal}.state-scheduled,.status.scheduled{color:#50505a}.state-unconfirmed,.status.unconfirmed{color:#606067}.state-arrived,.state-departed,.status.arrived,.status.departed{color:#4e5a16}.state-in_transit,.status.in_transit{color:#923b64}.unknown{font-size:12px;color:#697e8a}.empty,.loading{padding:70px 25px;text-align:center;color:var(--muted)}.empty h2{font-size:20px;color:var(--navy)}.empty button{background:white;border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin-top:12px}footer{margin:22px 0;color:var(--muted);font-size:10px;line-height:1.7}footer p{margin:5px 0}.notice{padding:12px 16px;background:#fff6df;color:#77571c;font-size:12px;line-height:1.6;border-radius:8px}dialog{margin:0 0 0 auto;min-height:100dvh;max-height:100dvh;max-width:560px;width:100%;border:0;border-left:1px solid var(--line);padding:26px 30px;color:var(--navy);overflow:auto}dialog::backdrop{background:#17344350}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head button{border:0;background:#edf3f6;border-radius:50%;width:32px;height:32px}dialog h2{font-size:26px;line-height:1.4;margin:24px 0 8px}dialog h3{margin-top:30px;font-size:14px}dialog p,dialog li{font-size:12px;line-height:1.8}dialog dl{display:grid;grid-template-columns:1fr 1.5fr;font-size:12px;gap:16px;margin-top:28px}dialog dt{color:var(--muted)}dialog dd{margin:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#103a50;color:white;padding:13px 20px;border-radius:8px;font-size:12px;z-index:20}.copy-field{font-size:11px;margin-top:10px} @media(min-width:1700px){main{max-width:1700px}td{font-size:15px}.vessel{font-size:16px}}
@media(max-width:1050px){main{padding:30px 3%}.filters{grid-template-columns:1fr 1fr}.advanced{grid-template-columns:repeat(3,1fr)}th,td{padding-left:9px;padding-right:9px}.intro{align-items:flex-start}.fresh{max-width:240px}h1{font-size:36px}.vessel{font-size:14px}}
@media(max-width:960px){.top{padding:18px 5%}.home{font-size:10px}main{padding:25px 4%}.intro{display:block;margin-bottom:24px}.intro p{font-size:11px}.fresh{margin-top:20px;max-width:none}.text-button{font-size:10px}h1{font-size:34px}.board-top{padding:0 15px}.tabs{gap:18px}.tabs button{font-size:14px;padding:20px 0 16px}.share{font-size:0;padding:9px}.share span{font-size:19px;padding:0}.toolbar{padding:16px 15px 12px}.periods{gap:0}.periods button{padding:9px 8px;font-size:10px}.preset{font-size:10px;padding:7px 10px}.filters{padding:0 15px 14px;gap:13px}.search-field{grid-column:1}.more{text-align:right}.advanced{padding:0 15px 15px;grid-template-columns:1fr 1fr}.chips{padding:0 15px}.results-bar{padding:16px 15px 12px;font-size:10px}.results-bar label{font-size:0}.results-bar select{font-size:10px}thead{display:none}table,tbody{display:block}tr.date-row{display:block;background:#eef5f8}tr.date-row th{display:block;padding:13px 15px;background:none}.data-row{display:grid;grid-template-columns:1fr 1fr;padding:14px 15px;gap:12px 18px}.data-row td{padding:0!important;display:block;font-size:14px}.data-row td:before{content:attr(data-label);display:block;font-size:11px;font-weight:650;color:#415867;margin-bottom:5px}.data-row td:nth-child(2){grid-column:1/3;grid-row:1}.data-row td:nth-child(2):before{display:none}.vessel{font-size:15px}.voyage{font-size:13px}.time{font-size:16px}.badge{font-size:12px}.status{font-size:13px}dialog{padding:22px}.dates{padding:0 15px 15px;flex-wrap:wrap}.dates label{width:calc(50% - 6px)}footer{font-size:10px}}

/* Reference cards and quiet, consistent click affordances. */
th:first-child{width:18%}th:nth-child(2){width:19%}
.route-moment{display:block;font-weight:650;font-variant-numeric:tabular-nums;margin-bottom:6px}
.place-link{border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left;line-height:inherit}
button.place-link:hover,button.place-link:focus-visible{text-decoration:underline;text-underline-offset:4px;color:var(--blue)}
.terminal-link{border:0}
button.terminal-link:hover,button.terminal-link:focus-visible{text-decoration:underline;text-underline-offset:3px;box-shadow:0 0 0 2px #19364a26}
dialog .card-subtitle{font-size:14px;color:#415867;margin:0 0 20px}
.card-links{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.card-links a{padding:10px 13px;background:#edf4f8;border:1px solid #d9e6ed;border-radius:7px;text-decoration:none;font-size:13px;font-weight:600}
.card-links a:hover{text-decoration:underline;background:#e0eef6}
dialog dl.card-facts{font-size:14px;gap:13px 20px;grid-template-columns:1fr 1.5fr;margin:24px 0}
dialog .card-checked{font-size:12px;color:#52616d;line-height:1.6}
.card-list{display:flex;flex-direction:column;align-items:flex-start;gap:14px;font-size:14px}
@media(max-width:480px){dialog dl.card-facts{grid-template-columns:1fr 1.2fr;gap:13px;font-size:13px}.card-links a{font-size:12px}.periods button{font-size:11px}}

/* Vessel overview first, then the selected voyage and compact neighboring voyages. */
dialog:has(.vessel-card-content){max-width:620px}
.vessel-card-content .card-subtitle{font-size:13px;line-height:1.6;margin-bottom:12px}
.vessel-card-content .card-links{gap:8px 18px;margin:12px 0 20px}
.vessel-card-content .card-links a{padding:0;border:0;background:none;font-size:12px}
dialog dl.vessel-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px 22px;margin:0;font-size:12px}
.vessel-facts>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline;min-width:0}
.vessel-facts dd{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.vessel-card-content .card-checked{font-size:11px;margin:10px 0 0}
.vessel-voyage,.vessel-voyages{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}
.voyage-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.vessel-card-content h3{font-size:15px;margin:0;line-height:1.4}
.voyage-title .status{font-size:12px;text-align:right}
.vessel-route{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.route-label{font-size:11px;color:var(--muted);margin-bottom:5px}
.route-place{font-weight:650;font-size:14px;overflow-wrap:anywhere}
.vessel-route .badge{font-size:11px;padding:3px 7px}
.vessel-route .route-moment{font-size:12px;margin:8px 0 0;line-height:1.6}
.voyage-source{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11px;line-height:1.6;color:var(--muted);margin-top:14px}
.voyage-notes{margin-top:12px;padding:8px 10px;background:#f3f6f8;border-radius:5px;font-size:12px;line-height:1.6}
.voyage-notes strong{font-weight:650}
.vessel-voyages h3{margin-bottom:12px}
.voyage-history-head,.voyage-history-row{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,1fr) 106px;gap:8px;align-items:center}
.voyage-history-head{font-size:11px;color:var(--muted);padding:0 10px 6px}
.voyage-history-head span:last-child{text-align:right}
.voyage-history-row{padding:10px;border-radius:6px;font-size:12px;line-height:1.5}
.voyage-history-row[aria-current=true]{background:#edf5f9}
.voyage-history-number{font-size:11px;font-weight:650;color:var(--blue);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.voyage-history-city{font-weight:500}
.voyage-history-date{font-variant-numeric:tabular-nums;color:var(--muted);margin-top:3px;white-space:nowrap}
.voyage-history-row .status{font-size:11px;text-align:right}
@media(max-width:510px){
 dialog:has(.vessel-card-content){padding:20px 16px}
 dialog dl.vessel-facts{gap:9px 16px;font-size:11px}
 .vessel-facts>div{gap:6px}
 .voyage-history-head{display:none}
 .voyage-history-row{grid-template-columns:1fr 1fr;gap:6px 12px}
 .voyage-history-number{grid-column:1;grid-row:1}
 .voyage-history-row .status{grid-column:2;grid-row:1}
 .voyage-history-departure{grid-column:1;grid-row:2}
 .voyage-history-arrival{grid-column:2;grid-row:2}
 .voyage-history-departure .voyage-history-city:before{content:'Из ';color:var(--muted)}
 .voyage-history-arrival .voyage-history-city:before{content:'В ';color:var(--muted)}
}
@media(max-width:370px){dialog dl.vessel-facts{grid-template-columns:1fr}.vessel-route{gap:12px}.route-place{font-size:13px}}
