:root{--wg-green:#7CC47F;--wg-dark:#2b5930;--bg:#f6fbf7;--ink:#233}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
header{display:flex;gap:14px;align-items:center;padding:14px 18px;background:#fff;border-bottom:3px solid var(--wg-green);position:sticky;top:0;z-index:9}
.logo{height:42px}
h1{flex:1;text-align:center;color:var(--wg-green);margin:0;font-weight:800;letter-spacing:.3px}
.container{max-width:1120px;margin:24px auto;padding:16px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:#fff;border:1px solid #dfeee3;border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.05);padding:16px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 16px}
.btn{appearance:none;border:none;background:var(--wg-green);color:#fff;padding:10px 14px;border-radius:12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;font-weight:700}
.btn.secondary{background:#eaf6ed;color:var(--wg-dark);border:1px solid #cfe6d5}
.btn.ghost{background:transparent;border:1px solid var(--wg-green);color:var(--wg-dark)}
.badge{display:inline-block;background:#eaf6ed;color:var(--wg-dark);padding:2px 10px;border-radius:999px;font-size:.8rem}
.story-line{font-size:1.15rem;line-height:1.7}
.gap{display:inline-flex;align-items:center;gap:6px;padding:2px 6px;margin:0 4px;border-bottom:2px dashed #cde2cf}
.input{width:220px;max-width:60vw;padding:6px 8px;border:1px solid #cde2cf;border-radius:10px}
.hint{font-size:.85rem;color:#567;background:#f1fbf3;border:1px solid #cfe6d5;padding:2px 8px;border-radius:999px}
.ok{border-color:#7CC47F !important;background:#f4fff6}
.bad{border-color:#e97 !important;background:#fff7f2}
.sidebar{background:#fff;border:1px solid #dfeee3;border-radius:12px;padding:12px}
.sidebar h3{margin:0 0 6px}
footer{margin:28px 0 16px;text-align:center;color:#567}
.sol-hint{margin-left:8px;color:#2b5930;font-weight:700}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border:1px solid #e7f2ea;padding:8px}
.table th{background:#f5fbf6}
.mini{font-size:.9rem;color:#678}
.no-print{}
@media print {.no-print{display:none} body{background:#fff} header{position:static}}