/* Local webfonts — vendored so the app never touches the network.
   Design shell shared with MidshipScantling / ClauseFinder next door. */
@import url('fonts.css');

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg-primary:#0a0e17;--bg-secondary:#111827;--bg-tertiary:#1a2236;--bg-input:#0d1321;
  --accent:#3b82f6;--accent-hover:#2563eb;--accent-glow:rgba(59,130,246,0.15);--accent-subtle:rgba(59,130,246,0.08);
  --text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;
  --success:#22c55e;--warning:#f59e0b;--error:#ef4444;--border:#1e293b;
  --cyan:#06b6d4;--orange:#f59e0b;--purple:#a855f7;
  --font-display:'JetBrains Mono',monospace;--font-body:'Inter',system-ui,sans-serif;--font-mono:'JetBrains Mono',monospace;
  --fs-xs:0.75rem;--fs-sm:0.8125rem;--fs-base:0.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.5rem;
  --spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;
  --radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(59,130,246,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,0.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}

.ea-header{position:sticky;top:0;z-index:100;background:linear-gradient(180deg,rgba(17,24,39,0.98),rgba(10,14,23,0.98));backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.ea-header::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0.5}
.ea-header-inner{max-width:1600px;margin:0 auto;padding:var(--spacing-md) var(--spacing-xl)}
.ea-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}
.ea-header-left{display:flex;align-items:center;gap:var(--spacing-lg)}
.ea-brand{display:flex;align-items:center;gap:var(--spacing-md)}
.ea-logo{width:40px;height:40px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--accent),#1d4ed8);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:white;box-shadow:0 0 20px rgba(59,130,246,0.3)}
.ea-title-group h1{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:700;color:var(--text-primary);line-height:1.2}
.ea-title-group p{font-size:var(--fs-xs);color:var(--text-muted)}
.ea-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}
.ea-header-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--fs-xs);font-family:var(--font-display);cursor:pointer;transition:all 0.2s}
.ea-header-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}
.ea-header-btn.primary{background:var(--accent);border-color:var(--accent);color:white}
.ea-header-btn.primary:hover{background:var(--accent-hover)}
.ea-header-btn svg{width:14px;height:14px}
.ea-header-badge{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-tertiary);padding:4px 10px;border-radius:20px;border:1px solid var(--border)}

.ea-wizard{display:flex;align-items:center;justify-content:center;gap:0}
.ea-wizard-step{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 20px;background:transparent;border:none;color:var(--text-muted);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all 0.2s}
.ea-wizard-step:hover{color:var(--text-secondary)}
.ea-wizard-step.active{color:var(--accent)}
.ea-wizard-step.completed{color:var(--success)}
.ea-wizard-num{width:24px;height:24px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700}
.ea-wizard-step.active .ea-wizard-num{background:var(--accent);border-color:var(--accent);color:white}
.ea-wizard-step.completed .ea-wizard-num{background:var(--success);border-color:var(--success);color:white}
.ea-wizard-line{width:60px;height:2px;background:var(--border);margin:0 var(--spacing-xs)}
.ea-wizard-line.completed{background:var(--success)}

.ea-page{display:none;position:relative;z-index:1}
.ea-page.active{display:block}
.ea-main{max-width:1600px;width:100%;margin:0 auto;padding:var(--spacing-xl)}

/* Rule Check drawer — lives at the bottom of the Geometry page in analysis mode.
   Collapsed by default: only header is visible. Click to expand. */
.rulecheck-drawer.collapsed{max-height:44px}
.rulecheck-drawer.expanded{max-height:min(42vh, 520px)}
.rulecheck-drawer-header{cursor:pointer;user-select:none;padding:10px 16px !important;transition:background 0.15s}
.rulecheck-drawer-header:hover{background:var(--bg-tertiary)}
.rulecheck-drawer-status{margin-left:auto;font-family:var(--font-mono);font-size:0.72rem;color:var(--text-muted);display:flex;align-items:center;gap:10px}
.rulecheck-drawer-chevron{font-size:0.7rem;color:var(--text-muted);transition:transform 0.25s ease;margin-left:10px;display:inline-block}
.rulecheck-drawer.collapsed .rulecheck-drawer-chevron{transform:rotate(180deg)}
.rulecheck-drawer-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
.rulecheck-drawer.collapsed .rulecheck-drawer-body{display:none}
.ea-setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);max-width:900px;margin:0 auto}
.ea-input-layout{display:flex;flex-direction:column;gap:var(--spacing-lg)}
.ea-input-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);align-items:stretch}
.ea-input-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);align-items:stretch}
.ea-input-row-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);align-items:stretch}
.ea-input-row .ea-panel,.ea-input-row-3 .ea-panel,.ea-input-row-2 .ea-panel{display:flex;flex-direction:column}
.ea-input-row .ea-panel-body{flex:1}
.ea-results-layout{display:flex;flex-direction:column;gap:var(--spacing-xl)}

.ea-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden}
.ea-panel-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--spacing-sm)}
.ea-panel-icon{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}
.ea-panel-icon.success{background:var(--success)}.ea-panel-icon.warning{background:var(--warning)}.ea-panel-icon.cyan{background:var(--cyan)}
.ea-panel-icon.purple{background:var(--purple)}
.ea-panel-icon.orange{background:var(--orange)}
.ea-panel-title{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}
.ea-panel-body{padding:var(--spacing-lg)}

.ea-section-title{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border)}
.ea-field{margin-bottom:var(--spacing-md)}.ea-field:last-child{margin-bottom:0}
.ea-label{display:block;font-size:var(--fs-xs);font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:0.5px}
.ea-input{width:100%;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:10px 14px;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--fs-base);transition:border-color 0.2s}
.ea-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-glow)}
.ea-input::placeholder{color:var(--text-muted)}
.ea-input.readonly{background:rgba(59,130,246,0.08);color:var(--accent)}
.ea-select{appearance:none;background:var(--bg-input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--border);color:var(--text-primary);padding:10px 36px 10px 14px;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--fs-base);cursor:pointer;width:100%}
.ea-select:focus{border-color:var(--accent);outline:none}
.ea-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}
.ea-form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-md)}
.ea-form-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}
.ea-form-row .ea-field,.ea-form-row-3 .ea-field,.ea-form-row-4 .ea-field{margin-bottom:0}
.ea-calc-box{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-top:var(--spacing-sm)}
.ea-calc-row{display:flex;justify-content:space-between;padding:6px 0;font-size:var(--fs-sm);border-bottom:1px solid var(--border)}
.ea-calc-row:last-child{border-bottom:none}
.ea-calc-row .lbl{color:var(--text-secondary)}.ea-calc-row .val{color:var(--accent);font-family:var(--font-mono);font-weight:600}
.ea-calc-row .val.cyan{color:var(--cyan)}.ea-calc-row .val.success{color:var(--success)}.ea-calc-row .val.warning{color:var(--warning)}

.ea-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
.ea-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.ea-table th{background:var(--bg-tertiary);padding:10px 12px;text-align:center;font-weight:600;color:var(--text-secondary);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid var(--border);white-space:nowrap}
.ea-table td{padding:8px 12px;border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--text-primary);text-align:center}
.ea-table tr:last-child td{border-bottom:none}
.ea-table tr:hover td{background:var(--accent-subtle)}
.ea-table .highlight td{background:rgba(239,68,68,0.08)!important}
.ea-table input{width:75px;padding:6px 8px;text-align:center;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-xs)}
.ea-table input:focus{border-color:var(--accent);outline:none}
.ea-table select{width:100%;min-width:150px;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-xs)}
.ea-table .cyan{color:var(--cyan);font-weight:600}
.ea-table .success{color:var(--success);font-weight:600}
.ea-table .warning{color:var(--warning);font-weight:600}
.ea-table .error{color:var(--error);font-weight:600}
.ea-table .ok{color:var(--success);font-weight:600}
.ea-table .fail{color:var(--error);font-weight:600}

.ea-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-md)}
.ea-summary-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);text-align:center}
.ea-summary-card.pass{border-color:var(--success)}.ea-summary-card.pass .ea-summary-value{color:var(--success)}
.ea-summary-card.fail{border-color:var(--error)}.ea-summary-card.fail .ea-summary-value{color:var(--error)}
.ea-summary-card.cyan{border-color:var(--cyan)}.ea-summary-card.cyan .ea-summary-value{color:var(--cyan)}
.ea-summary-card.purple{border-color:var(--purple)}.ea-summary-card.purple .ea-summary-value{color:var(--purple)}
.ea-summary-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.ea-summary-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--accent);margin-bottom:4px}
.ea-summary-sub{font-size:var(--fs-xs);color:var(--text-muted)}

.ea-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 18px;border:1px solid transparent;border-radius:var(--radius-md);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all 0.2s;text-decoration:none}
.ea-btn-primary{background:var(--accent);color:white;border-color:var(--accent)}
.ea-btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}
.ea-btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border)}
.ea-btn-secondary:hover{border-color:var(--text-muted);color:var(--text-primary)}
.ea-btn-sm{padding:6px 12px;font-size:var(--fs-xs)}
.ea-btn-delete{background:transparent;border:none;color:var(--error);cursor:pointer;padding:4px;display:inline-flex}
.ea-btn-delete:hover{color:#f87171}
.ea-btn-group{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}
.mt-md{margin-top:var(--spacing-md)}
.ea-page-actions{display:flex;justify-content:space-between;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}

.ea-logo-preview{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;cursor:pointer;transition:border-color 0.2s;display:flex;align-items:center;justify-content:center;min-height:120px}
.ea-logo-preview:hover{border-color:var(--accent)}
.ea-logo-preview img{max-height:80px;max-width:100%}
.hidden-input{display:none}

.ea-footer{margin-top:auto;background:var(--bg-secondary);border-top:1px solid var(--border);padding:var(--spacing-md) 0}
.ea-footer-inner{max-width:1600px;margin:0 auto;padding:0 var(--spacing-xl);display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted)}

.ship-diagram{display:flex;justify-content:center;margin:var(--spacing-md) 0}
.ship-diagram svg{max-width:100%;height:auto}

.element-group{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:var(--fs-xs);font-family:var(--font-mono);font-weight:600}
.badge-blue{background:rgba(59,130,246,0.15);color:var(--accent)}
.badge-green{background:rgba(34,197,94,0.15);color:var(--success)}
.badge-cyan{background:rgba(6,182,212,0.15);color:var(--cyan)}
.badge-orange{background:rgba(245,158,11,0.15);color:var(--orange)}
.badge-purple{background:rgba(168,85,247,0.15);color:var(--purple)}

.info-text{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--spacing-xs);font-style:italic}

@media(max-width:900px){
  .ea-setup-grid,.ea-input-row,.ea-input-row-3,.ea-input-row-2,.ea-summary-grid{grid-template-columns:1fr}
  .ea-form-row,.ea-form-row-3,.ea-form-row-4{grid-template-columns:1fr}
  .element-group{grid-template-columns:1fr}
}

   DRAWING MODULE CSS (page-4 Geometry) — from midship_drawing_test_6
   ================================================================ */



.ea-sub{color:var(--text-secondary);font-size:var(--fs-sm);margin-bottom:var(--spacing-lg)}
