/* Interactive tools — quiz, calculator, grit, prioritizer, setup, visualizer, dust, maintenance, database, planner */

.dsg-tool-card{position:relative}
.dsg-tool-card__progress{height:6px;background:#f0ebe2;border-radius:999px;overflow:hidden;margin:-.4rem -.2rem 1rem}
.dsg-progress-bar{display:block;height:100%;background:linear-gradient(90deg,var(--dsg-orange),var(--dsg-yellow));transition:width .3s ease;width:0}
.dsg-tool-card__body{min-height:120px}
.dsg-tool-card__nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--dsg-border)}
.dsg-tool-result{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--dsg-border)}
.dsg-tool-result[hidden]{display:none}
.dsg-tool-note{font-size:.85rem;color:var(--dsg-steel);margin:.8rem 0 0}
.dsg-tool-loading{color:var(--dsg-steel);font-style:italic;margin:0}

/* Quiz */
.dsg-quiz__q{font-size:1.15rem;font-weight:800;margin:0 0 1rem;color:var(--dsg-graphite)}
.dsg-quiz__options{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));list-style:none;padding:0;margin:0}
.dsg-quiz__opt{display:block}
.dsg-quiz__opt input{position:absolute;opacity:0;pointer-events:none}
.dsg-quiz__opt label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);cursor:pointer;font-weight:600;transition:border-color .15s,background .15s,box-shadow .15s}
.dsg-quiz__opt label:hover{border-color:var(--dsg-orange)}
.dsg-quiz__opt input:checked + label{border-color:var(--dsg-orange);background:rgba(255,122,24,.06);box-shadow:0 6px 18px rgba(255,122,24,.18)}
.dsg-quiz__opt label:after{content:'';width:18px;height:18px;border-radius:50%;border:2px solid var(--dsg-border);flex:none}
.dsg-quiz__opt input:checked + label:after{background:var(--dsg-orange);border-color:var(--dsg-orange);box-shadow:inset 0 0 0 3px #fff}
.dsg-quiz__meta{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--dsg-steel);margin-bottom:.6rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}

/* Quiz result */
.dsg-result{display:grid;gap:1rem;grid-template-columns:1.1fr .9fr;align-items:start}
@media (max-width:720px){.dsg-result{grid-template-columns:1fr}}
.dsg-result__pick{background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius-lg);padding:1.2rem;display:flex;flex-direction:column;gap:.6rem}
.dsg-result__why{background:var(--dsg-beige);border-radius:var(--dsg-radius-lg);padding:1.2rem}
.dsg-result__why ul{margin:.4rem 0 0 1.1rem;padding:0;font-size:.92rem}
.dsg-result__why strong{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dsg-steel)}
.dsg-result__title{font-size:1.3rem;font-weight:800;margin:0}
.dsg-result__chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.3rem 0}

/* Form fields */
.dsg-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}
.dsg-field{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}
.dsg-field>span{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dsg-steel)}
.dsg-field input,.dsg-field select{padding:.7rem .8rem;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius-sm);background:#fff;font-size:1rem;font-family:inherit;color:var(--dsg-graphite)}
.dsg-field input:focus,.dsg-field select:focus{outline:2px solid var(--dsg-orange);outline-offset:1px;border-color:var(--dsg-orange)}

/* Calculator result */
.dsg-calc-result__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem;margin-bottom:1rem}
.dsg-stat{background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);padding:.85rem 1rem}
.dsg-stat__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dsg-steel);font-weight:700}
.dsg-stat__value{font-size:1.4rem;font-weight:800;color:var(--dsg-graphite);margin-top:.1rem}

/* Grit chips */
.dsg-grit-sequence{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.6rem 0 1rem}
.dsg-grit-chip{display:inline-flex;align-items:center;justify-content:center;background:var(--dsg-graphite);color:#fff;border-radius:999px;padding:.5rem .9rem;font-weight:800;font-size:.95rem;letter-spacing:.04em;position:relative}
.dsg-grit-chip[data-stage="extra_coarse"]{background:#5a1f0a}
.dsg-grit-chip[data-stage="coarse"]{background:#7a3a14}
.dsg-grit-chip[data-stage="medium"]{background:#a55b1f}
.dsg-grit-chip[data-stage="fine"]{background:#c8965d}
.dsg-grit-chip[data-stage="extra_fine"]{background:#e9c896;color:var(--dsg-graphite)}
.dsg-grit-arrow{color:var(--dsg-steel);font-weight:800}

/* Prioritizer ranking */
.dsg-priority-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;counter-reset:dsgprio}
.dsg-priority-item{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);padding:.85rem 1rem}
.dsg-priority-item:before{counter-increment:dsgprio;content:counter(dsgprio);width:32px;height:32px;border-radius:50%;background:var(--dsg-orange);color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.dsg-priority-item h4{margin:0;font-size:1rem}
.dsg-priority-item p{margin:0;color:var(--dsg-steel);font-size:.88rem}

/* Setup result */
.dsg-setup-result h3{margin:.4rem 0 .6rem;font-size:1.05rem}
.dsg-setup-result__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}
.dsg-setup-block{background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);padding:.95rem 1rem}
.dsg-setup-block ul{margin:.3rem 0 0 1.1rem;padding:0;font-size:.92rem;color:var(--dsg-graphite)}

/* Visualizer */
.dsg-vis__controls{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.dsg-vis__stage{position:relative}
.dsg-vis__svg{width:100%;height:auto;max-height:420px;background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius)}
.dsg-vis__caption{margin-top:.6rem;font-weight:800;color:var(--dsg-graphite);font-size:1.05rem}
.dsg-vis__legend{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--dsg-steel)}
.dsg-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:.3rem;vertical-align:middle}
.dsg-dot--cover{background:rgba(255,122,24,.4)}
.dsg-dot--corner{background:rgba(245,180,0,.9);border-radius:50%}
.dsg-dot--risk{background:rgba(195,74,26,.5);border:1px dashed #c34a1a}
.dsg-dot--edge{background:rgba(245,180,0,.85)}
.dsg-dot--dust{background:rgba(31,35,38,.3)}

/* Checklist */
.dsg-checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem}
.dsg-checklist li label{display:flex;gap:.55rem;align-items:flex-start;padding:.65rem .8rem;background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);cursor:pointer;transition:border-color .15s,background .15s}
.dsg-checklist input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--dsg-orange)}
.dsg-checklist li label:has(input:checked){border-color:var(--dsg-orange);background:rgba(255,122,24,.05)}
.dsg-checklist__progress{height:6px;background:#f0ebe2;border-radius:999px;overflow:hidden;margin-top:.9rem}
.dsg-checklist__progress span{display:block;height:100%;background:linear-gradient(90deg,var(--dsg-orange),var(--dsg-yellow));width:0;transition:width .3s ease}

/* Database */
.dsg-database__filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem;margin-bottom:1.2rem}
.dsg-database__filters label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}
.dsg-database__filters span{font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--dsg-steel)}
.dsg-database__filters select{padding:.6rem .7rem;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius-sm);background:#fff;font-family:inherit}
.dsg-database__results{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.dsg-database__empty{padding:1.5rem 1.2rem;text-align:center;color:var(--dsg-graphite);background:#fff;border:1px dashed var(--dsg-border);border-radius:var(--dsg-radius);grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.dsg-database__empty strong{font-size:1.05rem}
.dsg-database__empty p{margin:.1rem 0;color:var(--dsg-steel);font-size:.92rem;display:flex;gap:.35rem;flex-wrap:wrap;justify-content:center}

/* Planner */
.dsg-planner__add{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.dsg-planner__add select{padding:.65rem .8rem;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius-sm);background:#fff;flex:1;min-width:220px}
.dsg-planner__list{display:grid;gap:.6rem}
.dsg-planner__item{background:#fff;border:1px solid var(--dsg-border);border-radius:var(--dsg-radius);padding:.85rem 1rem;display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center}
.dsg-planner__item h4{margin:0;font-size:1rem}
.dsg-planner__item p{margin:0;color:var(--dsg-steel);font-size:.88rem}
.dsg-planner__remove{background:transparent;color:var(--dsg-steel);font-weight:700;font-size:.85rem}
.dsg-planner__remove:hover{color:#c34a1a}

/* Print */
@media print{
  .dsg-header,.dsg-footer,.dsg-mobile-cta,.dsg-compare-rail,.dsg-tool-card__nav,.dsg-btn{display:none!important}
  body{background:#fff;color:#000}
  .dsg-card{box-shadow:none;border:1px solid #999;break-inside:avoid}
}
