/* DeepSea Web Style — shared tokens + components (master copy: DSE Template/resources/web/; see DeepSea_Web_Style.md)
   Colours = the document style guide (logo navy 0B4074 / red CC152B); layout = the crew-portal look. */
:root{--ds-navy:#0B4074;--ds-navy-d:#082F57;--ds-navy-l:#E2E9F2;--ds-pale:#F3F6FA;--ds-red:#CC152B;--ds-red-d:#A80F22;
 --ds-ink:#10213A;--ds-mute:#5B6B80;--ds-line:#D7DFE9;--ds-ok:#1D9E75;--ds-ok-l:#E1F5EE;--ds-warn:#B7791F;--ds-warn-l:#FEF3C7;--ds-bad:#B91C1C;--ds-bad-l:#FCEBEB;
 --ds-sans:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;--ds-mono:ui-monospace,Menlo,Consolas,monospace;--ds-radius:14px}
.ds-body{margin:0;background:var(--ds-pale);color:var(--ds-ink);font:14px/1.5 var(--ds-sans);-webkit-font-smoothing:antialiased}
.ds-body a{color:var(--ds-navy)}
/* header bar (crew-portal pattern) */
.ds-header{display:flex;align-items:center;gap:14px;padding:10px 18px;background:linear-gradient(120deg,var(--ds-navy),var(--ds-navy-d));color:#fff;flex-wrap:wrap}
.ds-header img{height:34px;width:auto;display:block;filter:brightness(0) invert(1)}
.ds-header b{font-size:16px;letter-spacing:.01em}.ds-header small{color:#b9cbe3}.ds-header a{color:#d6e4f5}.ds-header .sp{flex:1}
.ds-header.rule{border-bottom:3px solid var(--ds-red)}
/* card */
.ds-card{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:22px 24px;box-shadow:0 1px 6px #0b40741a}
.ds-card h2,.ds-card h3{color:var(--ds-navy);margin:0 0 10px;font:700 16px/1.3 var(--ds-sans)}.ds-card h2 small{font-weight:400;color:var(--ds-mute);font-size:12px;margin-left:8px}
/* buttons: one red .primary per screen */
.ds-btn{display:inline-block;font:600 13px/1.2 var(--ds-sans);padding:7px 14px;border:1px solid var(--ds-navy);background:#fff;color:var(--ds-navy);border-radius:8px;cursor:pointer;text-decoration:none}
.ds-btn:hover{background:var(--ds-navy-l);text-decoration:none}
.ds-btn.primary{background:var(--ds-red);border-color:var(--ds-red);color:#fff}.ds-btn.primary:hover{background:var(--ds-red-d);border-color:var(--ds-red-d)}
.ds-btn.navy{background:var(--ds-navy);border-color:var(--ds-navy);color:#fff}.ds-btn.navy:hover{background:var(--ds-navy-d)}
.ds-btn.sm{font-size:12px;padding:3px 9px}.ds-btn:disabled{opacity:.5;cursor:default}
/* status pills */
.ds-pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--ds-navy-l);color:var(--ds-navy);margin:1px 2px 1px 0}
.ds-pill.on{background:var(--ds-ok-l);color:#0F6E56}.ds-pill.warn{background:var(--ds-warn-l);color:#92400E}.ds-pill.off{background:var(--ds-bad-l);color:var(--ds-bad)}.ds-pill.red{background:var(--ds-red);color:#fff}
/* inputs */
.ds-input,.ds-select{font:14px var(--ds-sans);padding:8px 10px;border:1px solid #B7C2D0;border-radius:8px;width:100%;box-sizing:border-box;color:var(--ds-ink);background:#fff}
.ds-input:focus,.ds-select:focus{outline:2px solid #7cb0e6;border-color:var(--ds-navy)}
.ds-label{display:block;font-size:12px;color:var(--ds-mute);margin:0 0 4px}
/* table (document rule on screen) */
.ds-table{border-collapse:collapse;width:100%}.ds-table th{background:var(--ds-navy);color:#fff;text-align:left;padding:8px 10px;font-size:12px;font-weight:600}
.ds-table td{padding:7px 10px;border-bottom:1px solid var(--ds-line);vertical-align:top}.ds-table tr:nth-child(even) td{background:var(--ds-pale)}
/* messages */
.ds-msg{padding:8px 12px;border-radius:8px;font-size:13px;margin:8px 0}.ds-msg.ok{background:var(--ds-ok-l);color:#0F6E56}.ds-msg.warn{background:var(--ds-warn-l);color:#6B4D00}.ds-msg.err{background:var(--ds-bad-l);color:var(--ds-bad)}
