/* LeeWard shared component styles (v8 Scout). MASTER: leeward/tools/php/components.css. Needs tokens.css. Pairs with components.php (.lw-* only). */
.lw-btn { display: inline-block; padding: .6rem 1rem; font: 600 1rem var(--font-body); border: 1px solid var(--line); border-radius: 6px; background: var(--panel); color: var(--text); text-decoration: none; cursor: pointer; min-height: 44px; box-sizing: border-box; }
.lw-btn:hover { border-color: var(--cyan); }
.lw-btn.lw-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.lw-btn.lw-gold { background: var(--gold); border-color: var(--gold); color: #0b0d11; }
.lw-btn.lw-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.lw-btn.lw-ghost { background: transparent; }
.lw-pill { display: inline-block; padding: .1rem .6rem; border-radius: 999px; font: 500 .8rem var(--font-mono); border: 1px solid currentColor; }
.lw-tone-ok { color: var(--ok); } .lw-tone-warn { color: var(--warn); } .lw-tone-bad { color: var(--bad); } .lw-tone-idle { color: var(--idle); } .lw-tone-info { color: var(--cyan); }
.lw-card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin: 0 0 1rem; }
.lw-card h3 { margin: 0 0 .5rem; font: 600 1.1rem var(--font-body); }
.lw-stat-row { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1rem; }
.lw-stat { min-width: 7rem; } .lw-stat b { display: block; font: 600 1.5rem var(--font-mono); } .lw-stat span { color: var(--muted); font-size: .85rem; }
.lw-table { width: 100%; border-collapse: collapse; } .lw-table th, .lw-table td { text-align: left; padding: .4rem .6rem; border-bottom: 1px solid var(--line); } .lw-table th { color: var(--muted); font-weight: 500; }
.lw-fieldset { border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin: 0 0 1rem; } .lw-fieldset legend { padding: 0 .5rem; color: var(--muted); font-family: var(--font-mono); }
.lw-banner { padding: .7rem 1rem; border-radius: 6px; border: 1px solid currentColor; margin: 0 0 1rem; background: var(--panel); }
.lw-banner a { color: inherit; text-decoration: underline; }
.lw-brand-lockup { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1.5rem; }
.lw-brand-lockup img { width: 56px; height: 56px; object-fit: contain; } .lw-brand-lockup h1 { flex: 1; text-align: center; margin: 0; font: 600 1.6rem var(--font-display); }
.lw-site-foot { margin: 2rem 0 1rem; text-align: right; color: var(--muted); font: .85rem var(--font-mono); }
.lw-site-foot a { color: var(--muted); }
.lw-foot-version { display: block; }
@media (max-width: 560px) { .lw-site-foot { text-align: center; } .lw-foot-version { display: none; } }
.lw-founders { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1rem; }
.lw-founder { flex: 1 1 10rem; text-align: center; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 1rem; cursor: pointer; }
.lw-founder img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; } .lw-founder:focus { outline: 2px solid var(--cyan); }
.lw-founder-name { display: block; margin-top: .5rem; font: 600 1rem var(--font-display); letter-spacing: .08em; }
.lw-founder-bio { color: var(--muted); }
.lw-progress { margin: 0 0 .8rem; } .lw-progress .lw-track { height: 10px; background: var(--none); border-radius: 5px; overflow: hidden; } .lw-progress .lw-fill { height: 100%; background: var(--ok); }
.lw-progress .lw-fill.lw-s-warn { background: var(--warn); } .lw-progress .lw-fill.lw-s-bad { background: var(--bad); } .lw-progress .lw-fill.lw-s-idle { background: var(--idle); }
.lw-progress-label { display: flex; justify-content: space-between; font-size: .85rem; color: var(--muted); }
.lw-gauge { text-align: center; display: inline-block; } .lw-gauge text { fill: var(--text); font: 600 .9rem var(--font-mono); } .lw-gauge-label { color: var(--muted); font-size: .8rem; }
.lw-gauge-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.lw-histogram, .lw-timeline, .lw-gantt { width: 100%; height: auto; } .lw-histogram rect { fill: var(--cyan); } .lw-timeline rect { fill: var(--ok); } .lw-gantt rect { fill: var(--accent); }
.lw-axis { fill: var(--muted); font: .7rem var(--font-mono); }
.lw-status-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: .6rem; }
.lw-status-tile { display: block; padding: .6rem; border: 1px solid var(--line); border-left-width: 5px; border-radius: 6px; background: var(--panel); color: var(--text); text-decoration: none; }
.lw-status-tile.lw-s-ok { border-left-color: var(--ok); } .lw-status-tile.lw-s-warn { border-left-color: var(--warn); } .lw-status-tile.lw-s-bad { border-left-color: var(--bad); } .lw-status-tile.lw-s-idle { border-left-color: var(--idle); }
.lw-tooltip { position: fixed; z-index: 50; pointer-events: none; padding: .3rem .6rem; background: #000; color: var(--text); border: 1px solid var(--line); border-radius: 4px; font: .8rem var(--font-mono); }
.lw-tooltip[hidden] { display: none; }
