:root{
  --storm:#0f2538;
  --storm-2:#173b52;
  --storm-teal:#0f766e;
  --storm-pale:#eaf3f5;
  --storm-wash:#f3f7f8;
  --warning:#8a4b08;
  --warning-bg:#fff7e8;
  --danger:#a32121;
  --danger-bg:#fff1f1;
  --focus:#f59e0b;
}

html{scroll-behavior:smooth}
.storm-board-page{background:linear-gradient(180deg,#edf4f5 0,#f7f8fb 420px);color:var(--ink)}
.storm-board-page button,.storm-board-page input,.storm-board-page select{font:inherit}
.storm-board-page button,.storm-board-page a,.storm-board-page input,.storm-board-page select{outline-offset:3px}
.storm-board-page :focus-visible{outline:3px solid var(--focus);box-shadow:0 0 0 2px #fff}
.skip-link{position:fixed;left:16px;top:-100px;z-index:1000;background:var(--storm);color:#fff;padding:12px 16px;border-radius:0 0 10px 10px;font-weight:800;text-decoration:none}
.skip-link:focus{top:0}
.planner-nav .button{text-decoration:none}
.planner-shell{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:34px 0 52px}
.planner-hero{max-width:1120px;margin-bottom:22px}
.planner-hero h1{max-width:980px;color:var(--storm);font-size:clamp(38px,5.6vw,76px);line-height:.98;margin:8px 0 16px}
.planner-intro{max-width:900px;margin:0;color:#415262;font-size:clamp(17px,2vw,21px);line-height:1.58}
.safety-notice{margin-top:18px;max-width:1120px;display:grid;grid-template-columns:minmax(200px,290px) 1fr;gap:18px;padding:16px 18px;border:1px solid #d6b778;border-left:5px solid #c47a16;border-radius:14px;background:var(--warning-bg);color:#573b18;line-height:1.5}
.safety-notice strong{color:#633708}

.planner-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-template-areas:"controls summary";gap:20px;align-items:start}
.planner-controls{grid-area:controls;display:grid;gap:18px;min-width:0}
.summary-card{grid-area:summary;position:sticky;top:84px;background:var(--storm);color:#fff;border:1px solid #27485f;border-radius:22px;padding:20px;box-shadow:0 24px 70px rgba(15,37,56,.18)}
.summary-heading,.card-heading,.result-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.summary-heading h2,.card-heading h2,.result-heading h2{margin:3px 0 0;letter-spacing:-.035em}
.summary-heading h2{font-size:24px}.card-heading h2,.result-heading h2{font-size:28px;color:var(--storm)}
.card-kicker{display:block;color:#4b6a7e;font-weight:850;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.summary-card .card-kicker{color:#a7c5d5}
.status-badge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:5px 9px;background:#d9f4e9;color:#075b44;font-size:12px;font-weight:850}
.status-badge.error{background:#ffe0df;color:#8b1f1f}

.summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.metric{min-height:98px;border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:13px;background:rgba(255,255,255,.07);display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.metric strong{font-size:26px;line-height:1}.metric span{color:#c7d9e4;font-size:13px}.metric-primary{background:#fff;color:var(--storm)}.metric-primary strong{font-size:38px}.metric-primary span{color:#536b7c}.metric.wide{grid-column:1/-1;min-height:auto;flex-direction:row;align-items:center}.metric.wide strong{font-size:20px}.metric.wide span{font-size:14px}
.area-details{display:grid;gap:0;margin:16px 0}.area-details div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.13)}.area-details dt{color:#b8cbd7}.area-details dd{margin:0;font-weight:800;text-align:right}
.full-button{width:100%;min-height:48px}.summary-card .button.primary{background:#fff;color:var(--storm);border-color:#fff}.summary-card .button.primary:hover{background:#e8f1f5}
.error-summary{margin:16px 0 0;border:1px solid #f4aaa5;background:#fff0ef;color:#7e1c1c;border-radius:13px;padding:13px;line-height:1.45}
.error-summary strong{display:block;margin-bottom:5px}.error-summary ul{margin:0;padding-left:20px;display:grid;gap:5px}

.planner-card,.result-section,.bottom-disclaimer{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 14px 50px rgba(17,24,39,.06)}
.section-help,.result-heading p,.local-card p{color:var(--muted);line-height:1.5}.section-help{margin:10px 0 18px}.result-heading p{margin:6px 0 0;max-width:760px}.local-card p{margin:8px 0 14px}
.button-row{display:flex;gap:8px;flex-wrap:wrap}.storm-board-page .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.storm-board-page .button.primary{background:var(--storm);border-color:var(--storm)}.storm-board-page .button.primary:hover{background:#081a29}.danger-button{color:var(--danger)!important;border-color:#e8b9b9!important;background:#fff!important}.danger-button:hover{background:var(--danger-bg)!important;border-color:#d98e8e!important}

.opening-table-wrap,.schedule-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:15px}
.openings-table,.schedule-table,.print-opening-table{width:100%;border-collapse:collapse;background:#fff}
.openings-table th,.schedule-table th,.print-opening-table th{font-size:12px;letter-spacing:.035em;text-transform:uppercase;text-align:left;color:#536171;background:#f2f5f7;padding:10px 9px;border-bottom:1px solid var(--line);white-space:nowrap}
.openings-table td,.schedule-table td,.print-opening-table td{padding:9px;border-bottom:1px solid #e6eaf0;vertical-align:middle}
.openings-table tr:last-child td,.schedule-table tr:last-child td,.print-opening-table tr:last-child td{border-bottom:0}
.openings-table input,.openings-table select{width:100%;min-width:92px;height:46px;border:1px solid #bcc7d2;border-radius:10px;background:#fff;color:var(--ink);padding:9px 10px}
.openings-table .opening-name{min-width:170px}.openings-table .opening-type{min-width:106px}.openings-table .opening-quantity{min-width:76px}
.openings-table input[aria-invalid="true"],.settings-grid input[aria-invalid="true"],.settings-grid select[aria-invalid="true"]{border-color:#c52d2d;background:#fff7f7;box-shadow:0 0 0 1px #c52d2d}
.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.row-actions .button{min-height:40px;padding:8px 10px;font-size:13px}
.empty-message,.empty-result{margin:16px 0 0;color:var(--muted);text-align:center;padding:20px;border:1px dashed #bdc8d3;border-radius:13px;background:#fafbfd}

.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.field{display:grid;gap:7px}.field>span{font-size:14px;font-weight:800;color:#293b49}.field small{font-weight:600;color:var(--muted)}
.field input,.field select{width:100%;min-height:48px;border:1px solid #b7c3cd;border-radius:11px;background:#fff;padding:10px 12px;color:var(--ink)}
.toggle-field{grid-column:span 2;display:flex;align-items:center;gap:12px;min-height:70px;border:1px solid #b7c3cd;border-radius:12px;padding:12px 14px;background:var(--storm-wash);cursor:pointer}.toggle-field input{width:22px;height:22px;accent-color:var(--storm-teal);flex:none}.toggle-field span{display:grid;gap:3px}.toggle-field small{color:var(--muted);line-height:1.35}
.local-actions .button{flex:1 1 190px}.save-status{min-height:22px;margin-bottom:0!important;font-weight:750;color:var(--storm-teal)!important}

.result-section{margin-top:20px}.sheet-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;margin-top:18px;align-items:start}
.sheet-card{border:1px solid #bdc9d3;border-radius:18px;padding:14px;background:#f8fafb;break-inside:avoid;page-break-inside:avoid}
.sheet-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.sheet-card-head h3{margin:0;color:var(--storm);font-size:21px}.sheet-card-head span{color:var(--muted);font-size:13px;font-weight:750}
.sheet-svg{display:block;width:100%;height:auto;max-height:760px;margin:0 auto;border:2px solid var(--storm);background:#e6ebee;box-shadow:0 7px 20px rgba(15,37,56,.1)}
.sheet-legend{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:7px}.sheet-legend li{display:grid;grid-template-columns:12px minmax(0,1fr);gap:8px;align-items:start;color:#405160;font-size:12px;line-height:1.35}.legend-swatch{width:12px;height:12px;border-radius:3px;margin-top:2px;border:1px solid rgba(15,37,56,.3)}

.schedule-heading{align-items:end}.sort-control{display:flex;align-items:center;gap:8px;color:#435566;font-size:14px;font-weight:750}.sort-control select{min-height:44px;border:1px solid #b7c3cd;border-radius:11px;padding:8px 35px 8px 10px;background:#fff}.schedule-wrap{margin-top:16px}.schedule-table td{font-size:14px}.schedule-table tbody tr:nth-child(even){background:#f8fafb}.rotation-yes{font-weight:800;color:var(--storm-teal)}
.bottom-disclaimer{margin-top:20px;background:var(--warning-bg);border-color:#dec28a;box-shadow:none}.bottom-disclaimer h2{font-size:22px;margin:0 0 7px;color:#633708}.bottom-disclaimer p{margin:0;color:#60441f;line-height:1.55}
.planner-footer{background:#fff}

.print-only{display:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}

@media(max-width:1080px){
  .planner-layout{grid-template-columns:minmax(0,1fr) 320px}
  .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:820px){
  .planner-shell{width:min(100% - 20px,1440px);padding-top:22px}
  .planner-layout{grid-template-columns:1fr;grid-template-areas:"summary" "controls"}
  .summary-card{position:static}
  .safety-notice{grid-template-columns:1fr;gap:5px}
  .planner-nav{position:static}
}

@media(max-width:700px){
  .planner-card,.result-section,.bottom-disclaimer,.summary-card{padding:15px;border-radius:17px}
  .card-heading,.result-heading,.schedule-heading{display:grid;gap:12px}.card-heading .button-row{width:100%}.card-heading .button-row .button{flex:1}
  .opening-table-wrap{overflow:visible;border:0;border-radius:0}
  .openings-table,.openings-table tbody{display:block}.openings-table thead{display:none}.openings-table tr{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#f8fafb}.openings-table td{display:grid;gap:6px;padding:0;border:0}.openings-table td::before{content:attr(data-label);font-size:12px;font-weight:850;color:#465969;text-transform:uppercase;letter-spacing:.035em}.openings-table td:first-child,.openings-table td:last-child{grid-column:1/-1}.openings-table input,.openings-table select,.openings-table .opening-name,.openings-table .opening-type,.openings-table .opening-quantity{min-width:0;width:100%;height:48px}.row-actions{grid-template-columns:1fr 1fr}.row-actions .button{min-height:46px}
  .settings-grid{grid-template-columns:1fr}.toggle-field{grid-column:auto}.local-actions{display:grid}.local-actions .button{width:100%}
  .sheet-plans{grid-template-columns:1fr}
  .schedule-wrap{overflow-x:auto}.schedule-table{min-width:720px}
}

@media(max-width:480px){
  .planner-shell{width:min(100% - 14px,1440px)}
  .planner-hero h1{font-size:39px}
  .planner-intro{font-size:16px}
  .summary-metrics{grid-template-columns:1fr 1fr}.metric{min-height:90px}.metric strong{font-size:23px}.metric-primary strong{font-size:34px}
  .opening-table tr{grid-template-columns:1fr}.openings-table td:first-child,.openings-table td:last-child{grid-column:auto}.row-actions{grid-template-columns:1fr}
  .planner-nav .tagline{display:none}
}

@media print{
  @page{margin:12mm;size:auto}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.storm-board-page{background:#fff;color:#000;font-size:10pt}
  .planner-nav,.screen-only,.local-card,.planner-controls,.bottom-disclaimer+.anything,.planner-footer,.skip-link{display:none!important}
  .planner-shell{width:100%;max-width:none;margin:0;padding:0}
  .planner-hero{margin:0 0 10mm;max-width:none}.planner-hero .eyebrow{color:#333}.planner-hero h1{font-size:28pt;color:#000;margin:2mm 0 4mm}.planner-intro{font-size:11pt;color:#222;max-width:none}.safety-notice{display:block;max-width:none;margin-top:5mm;padding:4mm;background:#fff7e8;border-color:#a76d16}.safety-notice strong{display:block;margin-bottom:1.5mm}
  .print-only{display:block}.print-report-head{margin-bottom:7mm}.print-report-head>p{margin:0 0 5mm;color:#333}.print-report-head h2{font-size:15pt;margin:5mm 0 2mm}.print-settings{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid #777;margin:0}.print-settings div{padding:2.5mm;border-right:1px solid #aaa;border-bottom:1px solid #aaa}.print-settings dt{font-size:8pt;text-transform:uppercase;color:#444}.print-settings dd{font-weight:800;margin:1mm 0 0}.print-opening-table th,.print-opening-table td{padding:2mm;border:1px solid #aaa;font-size:8.5pt}
  .planner-layout{display:block}.summary-card{position:static;background:#fff;color:#000;border:2px solid #111;box-shadow:none;margin:0 0 7mm;padding:5mm}.summary-card .card-kicker,.summary-card .metric span,.area-details dt{color:#333}.summary-heading h2{color:#000}.status-badge{border:1px solid #777;background:#fff;color:#000}.error-summary{display:none!important}.summary-metrics{grid-template-columns:repeat(5,1fr);gap:2mm}.metric,.metric-primary,.metric.wide{grid-column:auto;min-height:22mm;background:#fff;color:#000;border:1px solid #777;padding:3mm;display:flex;flex-direction:column;align-items:flex-start}.metric strong,.metric-primary strong,.metric.wide strong{font-size:15pt;color:#000}.metric span,.metric-primary span,.metric.wide span{color:#333}.area-details{grid-template-columns:repeat(3,1fr);display:grid;gap:3mm}.area-details div{border:0;padding:2mm 0;display:block}.area-details dd{text-align:left;margin-top:1mm}
  .result-section{border:0;box-shadow:none;padding:0;margin:0 0 7mm}.result-heading h2{color:#000;font-size:18pt}.result-heading p{color:#222}.sheet-plans{grid-template-columns:repeat(2,1fr);gap:6mm;margin-top:5mm}.sheet-card{background:#fff;border-color:#777;padding:3mm}.sheet-card-head h3{color:#000}.sheet-svg{max-height:225mm;box-shadow:none;border-color:#000}.sheet-legend{gap:1mm}.sheet-legend li{font-size:7.5pt;color:#222}
  .schedule-section{break-before:page}.schedule-wrap{overflow:visible}.schedule-table{min-width:0}.schedule-table th,.schedule-table td{padding:2mm;border:1px solid #888;font-size:8pt}.schedule-table tbody tr:nth-child(even){background:#f2f2f2}.empty-result{display:none!important}
  .bottom-disclaimer{display:block!important;border:1px solid #777;box-shadow:none;background:#fff;margin-top:6mm;padding:4mm;break-inside:avoid}.bottom-disclaimer h2{color:#000}.bottom-disclaimer p{color:#222}
}
