/* Tower Safety Rigging Lab Master Template
   Shared UI foundation for simulator Input, Results, Warning, spacing, type, and card padding. */
.ts-rigging-master{--ts-red:#b91c1c;--ts-red2:#dc2626;--ts-green:#15803d;--ts-green2:#16a34a;--ts-dark:#111827;--ts-border:#d9e0ea;--ts-soft:#f8fafc;--ts-blue:#2563eb;--ts-yellow:#facc15;--ts-high:#f97316;--ts-critical:#b91c1c;font-family:Arial,Helvetica,sans-serif;max-width:1240px;margin:16px auto;color:#18212f}.ts-rigging-master *{box-sizing:border-box}.ts-master-shell{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 26px rgba(0,0,0,.08);overflow:hidden}.ts-master-hero{background:linear-gradient(135deg,#111827,#374151);color:#fff;padding:18px 22px;border-bottom:4px solid #d1d5db}.ts-master-kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#e5e7eb;font-weight:800}.ts-master-hero h2{margin:6px 0 4px;font-size:28px;line-height:1.1;color:#fff}.ts-master-sub{font-size:14px;color:#e5e7eb}.ts-master-status{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:7px 11px;border-radius:999px;background:#16a34a;color:#fff;font-weight:800;font-size:13px}.ts-master-dot{width:11px;height:11px;border-radius:999px;background:#fff}.ts-master-grid{display:grid;grid-template-columns:minmax(560px,1fr) 350px;gap:14px;padding:14px;align-items:start}.ts-master-panel{display:flex;flex-direction:column;gap:10px}.ts-master-panel .ts-master-section:first-child{position:sticky;top:14px}.ts-master-section{background:#fff;border:1px solid var(--ts-border);border-radius:12px;padding:0;box-shadow:0 4px 12px rgba(0,0,0,.045);overflow:hidden}.ts-master-section-title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:9px 12px;color:#fff}.ts-master-section-title h3{margin:0;font-size:18px;color:#fff;font-weight:900;line-height:1}.ts-master-section-title span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.92);font-weight:900}.ts-master-input-head{background:linear-gradient(135deg,#991b1b,var(--ts-red2))}.ts-master-results-head{background:linear-gradient(135deg,#166534,var(--ts-green2))}.ts-master-options-head{background:linear-gradient(135deg,#111827,#374151)}.ts-master-section-body{padding:10px;background:#fff}.ts-master-inputs{display:grid;grid-template-columns:1fr;gap:8px}.ts-master-field{background:#fff;border:1px solid #e5e7eb;border-radius:9px;padding:8px 9px;box-shadow:none}.ts-master-field label{display:block;font-size:13px;font-weight:900;color:#111827;margin-bottom:5px;line-height:1.15}.ts-master-number,.ts-master-select{width:100%;border:1px solid #cbd5e1;border-radius:7px;padding:7px 9px;text-align:right;font-size:15px;font-weight:900;color:#111827;background:#f8fafc;min-height:36px;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.ts-master-number:focus,.ts-master-select:focus{outline:2px solid rgba(37,99,235,.18);border-color:#2563eb;background:#fff}.ts-master-select{text-align:left}.ts-master-help{font-size:11px;color:#64748b;margin-top:4px;font-weight:700;line-height:1.2}.ts-master-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.ts-master-mode{border:1px solid #d1d5db;border-radius:9px;background:#f9fafb;padding:8px 7px;font-size:12px;font-weight:900;color:#111827;cursor:pointer}.ts-master-mode.active{background:#eff6ff;border-color:#2563eb;color:#1e40af}.ts-master-results{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ts-master-result{border-radius:9px;border:1px solid #e5e7eb;background:#fff;padding:9px 10px;border-top:4px solid #2563eb;box-shadow:none}.ts-master-result b{display:block;color:#475569;font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.ts-master-result span{font-size:20px;font-weight:900;color:#111827;line-height:1.05}.ts-master-result.caution{border-top-color:#facc15}.ts-master-result.high{border-top-color:#f97316}.ts-master-result.critical{border-top-color:#b91c1c;background:#fff5f5}.ts-master-force-alert{margin:0 0 8px;padding:9px 10px;border-radius:9px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-size:13px;font-weight:900;line-height:1.3}.ts-master-force-alert.caution{border-color:#fde68a;background:#fffbeb;color:#92400e}.ts-master-force-alert.high{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.ts-master-force-alert.critical{border-color:#fecaca;background:#fef2f2;color:#991b1b}.ts-master-controls{display:flex;gap:8px;flex-wrap:wrap}.ts-master-btn{border:0;border-radius:999px;padding:8px 12px;background:#111827;color:#fff;font-weight:800;cursor:pointer;font-size:13px}.ts-master-btn.light{background:#e5e7eb;color:#111827}.ts-master-warning{border-radius:10px;border:1px solid #d1d5db;background:#f9fafb;padding:10px;font-size:13px;line-height:1.4}.ts-master-warning h3{color:#111827;margin:0 0 7px;font-size:16px}.ts-master-footer{padding:12px 16px;background:#111827;color:#e5e7eb;text-align:center;font-weight:800;font-size:13px}
/* Trolley simulator stage-specific layout. */
.ts-trolley-stage{position:relative;min-height:510px;border-radius:12px;border:1px solid #d1d5db;background:#f8fafc;overflow:hidden}.ts-trolley-stage.vector-only{background:#fff}.ts-trolley-stage img{position:absolute;left:0;top:50%;transform:translateY(-50%);width:88%;height:88%;object-fit:contain;object-position:left center}.ts-trolley-stage.vector-only img{opacity:.08}.ts-trolley-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ts-trolley-label{position:absolute;background:rgba(17,24,39,.90);color:#fff;border-left:4px solid #64748b;border-radius:7px;padding:5px 7px;font-size:11px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.16)}.ts-trolley-label small{display:block;color:#d1d5db;font-weight:600}.topLabel{left:21%;top:14%}.travLabel{left:39%;top:41%}.loadLabel{left:38%;top:56%}.ts-trolley-note{position:absolute;left:12px;bottom:12px;max-width:270px;background:rgba(255,255,255,.94);border:1px solid #d1d5db;border-left:5px solid #64748b;border-radius:10px;padding:9px;font-size:13px}.ts-trolley-note b{color:#111827}@media(max-width:900px){.ts-master-grid{grid-template-columns:1fr}.ts-master-panel .ts-master-section:first-child{position:static}.ts-trolley-stage{min-height:500px}.ts-trolley-stage img{width:92%;height:92%}.ts-master-results,.ts-master-mode-grid,.ts-master-inputs{grid-template-columns:1fr}}@media print{.ts-master-btn{display:none}.ts-master-shell{box-shadow:none}.ts-master-grid{grid-template-columns:1fr 350px}.ts-trolley-stage{min-height:500px}}
