/* Матч дня — стили */
  :root{
    --grass:#2e8b3d; --grass-d:#1c6b2c; --grass-l:#3aa54d;
    --pitch1:#2f9243; --pitch2:#2a863c;
    --ink:#123320; --card:#ffffff; --muted:#7c8a80;
    --lime:#c6ff3d; --gold:#ffd23f; --ref:#111; --red:#e23b3b;
    --radius:22px; --shadow:0 10px 26px rgba(20,60,30,.28);
    --line:rgba(255,255,255,.5);
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    color:var(--ink); min-height:100vh;
    -webkit-tap-highlight-color:transparent;
    background: linear-gradient(rgba(8,20,52,.58),rgba(8,20,52,.58)), url('bg.jpg') center 30%/cover no-repeat fixed;
  }
  .wrap{max-width:560px;margin:0 auto;padding:16px 14px 44px}

  /* верхняя панель как счёт на табло */
  header.top{
    display:flex;align-items:center;gap:12px;
    background:linear-gradient(135deg,#123320,#1c6b2c);
    border-radius:var(--radius);box-shadow:var(--shadow);
    padding:14px 16px;color:#fff;
    border:2px solid rgba(198,255,61,.5);
  }
  .avatar{
    font-size:38px;line-height:1;background:#fff;border-radius:50%;
    width:58px;height:58px;display:flex;align-items:center;justify-content:center;
    box-shadow:inset 0 0 0 3px #123320;flex:0 0 auto;
  }
  .greet h1{font-size:23px;margin:0;line-height:1.15;letter-spacing:.2px}
  .greet p{margin:3px 0 0;color:#bfe6c6;font-size:13px;font-weight:600}

  .progress{
    background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
    padding:14px 16px;margin:16px 0;position:relative;overflow:hidden;
  }
  .progress:before{
    content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
    background:repeating-linear-gradient(90deg,#000 0 24px,transparent 24px 48px);
  }
  .progress .row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;position:relative}
  .progress .row b{font-size:15px}
  .progress .row span{font-size:13px;color:var(--muted);font-weight:700}
  .bar{height:16px;border-radius:999px;background:#e6efe6;overflow:hidden;border:1px solid #d3e2d3;position:relative}
  .bar i{display:block;height:100%;width:0;border-radius:999px;
    background:linear-gradient(90deg,var(--grass-l),var(--lime));transition:width .4s ease}
  .praise{margin:9px 0 0;font-size:14px;font-weight:800;position:relative}

  nav.tabs{display:flex;gap:6px;margin:6px 0 16px;
    background:rgba(18,51,32,.35);padding:6px;border-radius:var(--radius);
    backdrop-filter:blur(4px)}
  nav.tabs button{
    flex:1;min-width:0;border:0;cursor:pointer;padding:11px 3px;border-radius:16px;
    font-size:12.5px;font-weight:800;color:#dff0e2;background:transparent;
    transition:.2s;display:flex;flex-direction:column;align-items:center;gap:3px;
  }
  nav.tabs button .ico{font-size:20px;line-height:1}
  nav.tabs button.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}

  .panel{display:none;animation:fade .25s ease}
  .panel.active{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

  .task{
    display:flex;align-items:center;gap:14px;background:var(--card);
    border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px;
    cursor:pointer;transition:.2s;border:2px solid transparent;user-select:none;
  }
  .task .emoji{font-size:26px;line-height:1}
  .task .title{font-size:16px;font-weight:700}
  .task .pts{margin-left:auto;font-size:13px;font-weight:900;color:var(--grass-d);background:#eefbe9;
    border-radius:999px;padding:3px 10px;white-space:nowrap}
  .task .check{
    width:30px;height:30px;border-radius:50%;
    border:2px solid #cfe0cf;flex:0 0 auto;position:relative;transition:.2s;background:#f4f8f4;
  }
  .task.done{background:#eefbe9;border-color:var(--lime)}
  .task.done .check{background:var(--grass);border-color:var(--grass)}
  .task.done .check::after{
    content:"";position:absolute;left:9px;top:5px;width:8px;height:14px;
    border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg);
  }
  .task.done .title{text-decoration:line-through;color:#8fa793}
  .task.done .pts{opacity:.5}

  .card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
    padding:14px 16px;margin-bottom:12px}
  .dayname{font-weight:800;font-size:16px;margin:2px 0 10px}
  .lesson{display:grid;grid-template-columns:54px minmax(0,1fr) 34px 34px 34px;gap:8px;align-items:center;padding:8px 0;border-top:1px dashed #e2ede2}
  .lesson:first-of-type{border-top:0}
  .lhead{display:grid;grid-template-columns:54px minmax(0,1fr) 34px 34px 34px;gap:8px;margin-bottom:2px;padding-top:2px}
  .lhead span{font-size:10px;font-weight:800;color:var(--muted);text-align:center;line-height:1.1}
  .lhead span:nth-child(-n+2){text-align:left}
  .lesson .time{font-variant-numeric:tabular-nums;font-weight:800;color:var(--grass-d);font-size:12px;line-height:1.2}
  .lesson .subj{font-weight:700;font-size:15px}
  .lesson .room{color:var(--muted);font-size:13px;margin-top:1px}
  .badge{display:inline-block;font-size:12px;font-weight:800;padding:2px 10px;border-radius:999px;
    color:#123320;background:var(--lime);margin-bottom:6px}
  .badge.today{color:#fff;background:var(--grass)}
  .segbar{display:flex;gap:6px;background:rgba(18,51,32,.30);padding:5px;border-radius:14px;margin-bottom:12px;backdrop-filter:blur(4px)}
  .segbar button{flex:1;border:0;cursor:pointer;padding:9px 8px;border-radius:11px;font-weight:800;font-size:14px;color:#dff0e2;background:transparent;transition:.2s}
  .segbar button.on{background:var(--card);color:var(--ink);box-shadow:0 6px 16px rgba(0,0,0,.18)}

  .grade{width:34px;height:34px;border-radius:10px;border:2px dashed #cfe0cf;
    background:#f4f8f4;color:#c3ccc3;font-weight:900;font-size:16px;cursor:pointer;display:flex;
    align-items:center;justify-content:center;padding:0;font-variant-numeric:tabular-nums}
  .grade.g5{background:#2fae5a;color:#fff;border:2px solid #248f49}
  .grade.g4{background:#ffd23f;color:#5a4300;border:2px solid #e6b62a}
  .grade.g3{background:#ff9e1a;color:#fff;border:2px solid #e68a12}
  .grade.g2{background:#e23b3b;color:#fff;border:2px solid #c02f2f}
  .lesson .subjwrap{min-width:0}
  .gradePop{position:fixed;z-index:60;display:none;gap:8px;background:#fff;border:2px solid var(--grass);
    border-radius:14px;padding:8px;box-shadow:0 14px 34px rgba(0,0,0,.28)}
  .gradePop.show{display:flex}
  .gradePop button{width:42px;height:42px;border:0;border-radius:10px;font-size:18px;font-weight:900;cursor:pointer;color:#fff}
  .gradePop .p5{background:#2fae5a}.gradePop .p4{background:#e6b62a;color:#5a4300}
  .gradePop .p3{background:#ff9e1a}.gradePop .p2{background:#e23b3b}.gradePop .px{background:#aab4aa;font-size:16px}
  .attmark{font-size:12px;font-weight:800;color:var(--muted);background:#eef0ee;
    border-radius:999px;padding:3px 9px;white-space:nowrap}
  .task.done .attmark{background:#d7f5dd;color:var(--grass-d)}
  .sepname{font-weight:800;font-size:15px;margin:14px 2px 8px;color:#eafff0;text-shadow:0 1px 3px rgba(0,0,0,.35)}

  .act{margin-bottom:12px}
  .act .when{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:2px}
  .act .what{font-size:17px;font-weight:800}
  .act .addr{display:flex;gap:6px;align-items:flex-start;color:var(--ink);font-size:14px;margin-top:8px;
    background:#eef6ee;border-radius:12px;padding:9px 11px}
  .act .addr a{color:var(--grass-d);font-weight:800;text-decoration:none;margin-left:auto;white-space:nowrap}
  .act .addr a:active{opacity:.6}

  .hint{color:#eafff0;font-size:12px;text-align:center;margin-top:16px;line-height:1.5;
    text-shadow:0 1px 3px rgba(0,0,0,.3)}

  .toast{
    position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(40px);
    background:var(--ref);color:#fff;padding:12px 20px;border-radius:999px;font-weight:800;
    font-size:15px;box-shadow:0 12px 30px rgba(0,0,0,.35);opacity:0;transition:.35s;pointer-events:none;z-index:50;
    border:2px solid var(--gold);
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  .scoreline{display:flex;gap:10px;margin-bottom:10px;position:relative}
  .chip{flex:1;background:linear-gradient(135deg,#123320,#1c6b2c);border-radius:16px;padding:9px 12px;color:#fff;
    display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--lime)}
  .chip .big{font-size:24px;font-weight:900;line-height:1}
  .chip small{font-size:11px;color:#bfe6c6;margin-top:3px;font-weight:700;text-align:center}
  /* кнопка-чип для ручного начисления баллов */
  button.chip{font:inherit;cursor:pointer;color:#fff}
  .cta{background:linear-gradient(135deg,#123320,#1c6b2c);border:2px solid var(--lime);
    border-radius:14px;padding:10px 16px;color:#fff;font:inherit;font-weight:800;cursor:pointer;
    white-space:nowrap}
  .cta:active{transform:scale(.97)}
  .rankrow{display:flex;justify-content:space-between;align-items:baseline;position:relative;margin-bottom:5px}
  .rankname{font-weight:900;font-size:15px;color:var(--grass-d)}
  .ranknext{font-size:12px;color:var(--muted);font-weight:700}
  .bar.rank{height:12px;background:#eef0ee;margin-bottom:14px}
  .bar.rank i{background:linear-gradient(90deg,var(--gold),#ff9e1a)}
  @media (min-width:640px){
    .wrap{max-width:600px}
    body{font-size:17px}
  }
