*{box-sizing:border-box}body{margin:0;background:#f3f7f8;color:#183c46;font:15px/1.5 system-ui,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:235px;background:white;border-right:1px solid #d7e4e8;padding:25px 18px;overflow:auto}aside img{max-width:100%;height:auto}aside p{font-size:10px;letter-spacing:2px;color:#607f8c}nav{display:grid;gap:4px;margin:24px 0}nav button{text-align:left;background:transparent;color:#294e5a}nav button[aria-current=page]{background:#e2f0ef;color:#086965;font-weight:bold}#workspace{margin-left:235px}header{position:sticky;top:0;z-index:2;display:flex;gap:16px;align-items:center;padding:14px 26px;background:white;border-bottom:1px solid #d7e4e8;flex-wrap:wrap}h1{font-size:22px;margin:0;flex:1}main{padding:24px;max-width:1500px}.banner{padding:12px 16px;border:1px solid #eed4a0;background:#fff6df;border-radius:8px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}button{font:inherit;border:0;border-radius:7px;padding:10px 14px;background:#08746e;color:white;cursor:pointer}button:disabled{opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid #e7a638;outline-offset:3px}#feedback,#signout-status{padding:10px 14px;border:1px solid #b8d96c;border-radius:7px;background:#effbd2;color:#35520d}.error{background:#fff0f0!important;color:#a32222!important;border-color:#e9b5b5!important}.card{background:white;border:1px solid #d7e4e8;padding:20px;border-radius:10px;overflow:auto;margin-bottom:18px}.map{position:relative;width:100%;min-width:620px;aspect-ratio:636/324;overflow:hidden}.map img{display:block;width:100%}.berth{position:absolute;transform:translate(-50%,-50%);background:white;color:#164652;border:1px solid #39798a;border-radius:4px;font-size:10px;padding:1px 3px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e1e9ed;overflow-wrap:anywhere}th{background:#f5f9fa}body.collapsed aside{display:none}body.collapsed #workspace{margin-left:0}[hidden]{display:none!important}@media(max-width:760px){aside{width:210px;z-index:3;top:73px;box-shadow:5px 0 20px #163d4620}#workspace{margin-left:0}header{padding:12px;gap:8px}h1{font-size:18px}main{padding:14px}.card{padding:12px}}
.berth.occupied{background:#bdebd1}.berth.booked{background:#c9e5ff}.actions input{font:inherit;padding:8px;border:1px solid #9db6bd;border-radius:6px}

/* Compact markers preserve saved map coordinates without overlapping text. */
.map-scroll{overflow:auto;max-width:100%;padding:12px 0}.map-controls{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0}.map-controls label{display:flex;align-items:center;gap:8px}.map-controls select{font:inherit;padding:8px;border:1px solid #9db6bd;border-radius:6px;background:white;color:#183c46}.map-detail{padding:10px 12px;background:#effbd2;border:1px solid #b8d96c;border-radius:7px;min-height:46px}.map-legend{font-size:13px;color:#526b79}.map .berth{width:1.45%;height:auto;aspect-ratio:1;min-width:8px;max-width:18px;padding:0;font-size:0;border-radius:50%;border:1px solid #164652;line-height:1;overflow:visible}.map .berth.selected{outline:2px solid #e7a638;outline-offset:1px;z-index:2}.map .berth:hover,.map .berth:focus-visible{z-index:3}.map .berth:hover::after,.map .berth:focus-visible::after,.map .berth.selected::after{content:attr(data-site);position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);font:12px/1.2 system-ui,sans-serif;color:#173e48;background:white;border:1px solid #39798a;border-radius:3px;padding:2px 4px;white-space:nowrap;pointer-events:none}

.map-operations{margin-bottom:20px}.map-operations h2{font-size:20px}.map-summary-note{border:1px solid #d5e5eb;border-radius:8px;background:#f0f7fa;padding:14px;margin:12px 0}.map-summary-note p{margin:6px 0}.map-category-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.map-category-summary span{background:#edf3f5;padding:6px 10px;border-radius:5px;font-size:13px}.map-operations details{background:white;border:1px solid #d5e5eb;border-radius:7px;padding:12px;margin:8px 0}.map-operations summary{cursor:pointer;font-weight:600}.map-overview-item{display:flex;flex-wrap:wrap;gap:12px;padding:10px 0;border-top:1px solid #edf2f5;margin-top:6px}.map-overview-item span{font-size:13px;color:#5b7482}.map-vessel-link{background:transparent;color:#08746e;padding:0;text-decoration:underline}.map-controls input{font:inherit;padding:8px;border:1px solid #9db6bd;border-radius:6px;max-width:100%}.map-controls{align-items:center}.map .search-muted{opacity:.18}.map{min-width:0}.map-scroll{scroll-behavior:smooth}@media(max-width:600px){.map-controls label{flex-wrap:wrap}.map-controls{gap:8px}}

.accounts-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.accounts-panel{background:#fff;border:1px solid #d7e4e8;border-radius:8px;padding:20px}.accounts-panel h2{font-size:18px;margin:0 0 10px}.accounts-panel h3{font-size:15px}.accounts-panel p,.accounts-panel li{line-height:1.6}.accounts-panel li{margin:6px 0}.accounts-wide{grid-column:1/-1}.accounts-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.accounts-note{padding:12px;background:#f0f6f8;border:1px solid #d7e4e8;border-radius:6px}.accounts-badge{display:inline-block;background:#edf4f7;border:1px solid #d7e4e8;border-radius:5px;padding:4px 9px;font-size:12px}.accounts-link{display:block;width:fit-content;margin:12px 0;color:#086e73;text-decoration:underline}@media(max-width:760px){.accounts-layout,.accounts-columns{grid-template-columns:1fr}.accounts-panel{padding:16px}}

.history-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}.history-filters label{display:grid;gap:5px;min-width:160px}.history-feedback{flex-basis:100%;padding:10px 12px;background:#eff8d7;border:1px solid #cadf99;border-radius:6px;margin:0}.history-feedback.error{background:#fff1f1;border-color:#e4adad;color:#942b2b}.history-table{overflow:auto}.history-table table{width:100%;table-layout:auto}.history-table td{overflow-wrap:anywhere;vertical-align:top}.history-table th:first-child{min-width:145px}.history-pager{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
