:root{
  --teal:#0f766e; --teal2:#14b8a6; --cream:#fbf7ef; --ink:#13302c; --accent:#e76f51; --gold:#e9b949;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Vazirmatn',sans-serif;color:var(--ink);
  background:
    radial-gradient(circle at 10% 0%, #d8f3ee 0, transparent 40%),
    radial-gradient(circle at 100% 100%, #fde8d8 0, transparent 35%),
    repeating-linear-gradient(45deg, rgba(15,118,110,.025) 0 2px, transparent 2px 14px),
    var(--cream);
  min-height:100vh;}
.mono{font-family:'JetBrains Mono',monospace}
.card{background:#fff;border:1px solid #e7e1d4;border-radius:18px;box-shadow:0 2px 0 #e7e1d4,0 10px 30px -18px rgba(15,60,55,.35)}
.inp{width:100%;border:1.5px solid #e2dccf;border-radius:12px;padding:.55rem .75rem;background:#fffdf9;outline:none;transition:.15s;font-family:inherit}
.inp:focus{border-color:var(--teal2);box-shadow:0 0 0 3px rgba(20,184,166,.15)}
.inp.bad{border-color:#dc2626;background:#fff1f1}
.inp.warn{border-color:#f59e0b;background:#fffaeb}
.btn{border-radius:12px;padding:.5rem 1rem;font-weight:700;transition:.15s;cursor:pointer}
.btn-p{background:var(--teal);color:#fff}.btn-p:hover{background:#115e59}
.btn-g{background:#f1ede4;color:var(--ink)}.btn-g:hover{background:#e7e1d4}
.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border-radius:999px;border:1.5px solid #e2dccf;cursor:pointer;font-size:.88rem;background:#fff;transition:.12s;user-select:none}
.chip.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.chip small{opacity:.6;font-size:.7rem}
.fade{animation:fade .45s ease both}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.drop{border:2.5px dashed #b8d8d2;border-radius:18px;transition:.15s}
.drop.over{border-color:var(--teal);background:#e8f7f4}
.bar{height:8px;border-radius:99px;background:#ece6d9;overflow:hidden}
.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--teal2),var(--teal));transition:width .4s}
.confetti{position:fixed;top:-20px;font-size:26px;animation:fall 2.8s linear forwards;pointer-events:none;z-index:99}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
.scroll-x{overflow-x:auto;scrollbar-width:thin}
@media print{.noprint{display:none!important}}