.group-head{padding:10px 11px;border-bottom:1px solid #e8ebf2;display:grid;grid-template-columns:auto 1fr 1fr auto;gap:8px;align-items:end;background:#f7f8fd}.active-radio{align-self:center;display:flex;align-items:center;gap:6px;font-size:9.5px;color:var(--primary);font-weight:900;white-space:nowrap}.active-radio input{width:auto;min-height:0;box-shadow:none}.group-body{padding:10px 11px}.session-list{display:flex;flex-direction:column;gap:7px}.session-row{display:grid;grid-template-columns:1.15fr .85fr .85fr 38px;gap:7px;align-items:end;border:1px solid #e3e6ef;border-radius:11px;background:#fff;padding:8px}.add-session,.add-group{width:100%;margin-top:7px;border:1px dashed #b9b6f7;background:#fafaff;color:var(--primary);border-radius:10px;min-height:38px;font-weight:900;font-size:10px}.exam-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed #e1e4ed}.validation,.success{display:none;margin-top:12px;padding:11px 12px;border-radius:12px;font-size:9.8px;line-height:1.9}.validation.show{display:block;background:var(--dangerSoft);border:1px solid #ffd4d7;color:#9d3039}.success.show{display:block;background:var(--successSoft);border:1px solid #ccefe4;color:var(--success);font-weight:900}.validation ul{margin:5px 0 0;padding-right:16px}.modal-foot{position:sticky;bottom:0;z-index:20;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:12px 16px;display:flex;gap:7px;align-items:center}
    .toast{position:fixed;left:18px;bottom:18px;z-index:2000;opacity:0;transform:translateY(10px);pointer-events:none;background:#1d2336;color:#fff;border-radius:11px;padding:10px 13px;font-size:10.5px;box-shadow:0 16px 38px rgba(10,14,27,.25);transition:.2s ease}.toast.show{opacity:1;transform:translateY(0)}
    @media(max-width:1080px){.workspace{grid-template-columns:1fr}.side-stack{display:grid;grid-template-columns:1fr 1fr}}
    @media(max-width:760px){.app{padding:11px}.hero{grid-template-columns:1fr;padding:16px;border-radius:22px}.hero-actions{width:100%}.hero-actions .btn-primary{flex:1}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:11px}.metric-value{font-size:19px}.side-stack{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr 1fr}.span2,.span4{grid-column:span 2}.group-head{grid-template-columns:1fr 1fr}.active-radio{grid-column:span 2}.session-row{grid-template-columns:1fr 1fr}.session-row .remove-session{grid-column:span 2;width:100%}.exam-grid{grid-template-columns:1fr 1fr}.exam-grid .exam-date{grid-column:span 2}}
  
    /* ===== v4 product polish ===== */
    .planbar{padding:11px 13px;border-color:rgba(219,224,235,.95);background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}
    .plan-left{min-width:0;flex:1}
    .plan-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
    .plan-tab{
      min-height:36px;border:1px solid var(--line);background:#fff;color:#646c7f;border-radius:11px;
      padding:4px 6px 4px 10px;display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:850;
      transition:.16s ease;box-shadow:0 2px 8px rgba(24,32,56,.025)
    }
    .plan-tab:hover{border-color:#cbcdea;background:#fbfbff;color:#31384b}
    .plan-tab.active{color:#403fb0;background:linear-gradient(180deg,#f3f2ff,#ececff);border-color:#d5d3ff;box-shadow:0 5px 14px rgba(91,92,226,.09)}
    .plan-tab-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .plan-tab-x{width:23px;height:23px;border:0;border-radius:7px;background:transparent;color:#9a9fb0;display:grid;place-items:center;font-size:15px;line-height:1;transition:.14s ease;padding:0}
    .plan-tab-x:hover{background:#ffecef;color:var(--danger)}
    .plan-tab-x.disabled{opacity:.28;cursor:not-allowed;pointer-events:none}
    .plan-actions{margin-right:auto}
    .hero-actions .btn,.plan-actions .btn{font-weight:800}

    .metric{position:relative;overflow:hidden;border-color:rgba(220,225,235,.96);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,250,254,.94))}
    .metric::after{content:"";position:absolute;left:-28px;top:-32px;width:82px;height:82px;border-radius:50%;background:rgba(91,92,226,.035)}
    .panel-head{padding:16px 18px}
    .course-card{position:relative;overflow:hidden;padding:12px;background:linear-gradient(145deg,#fff,#fbfcff)}
    .course-card::before{content:"";position:absolute;right:0;top:13px;bottom:13px;width:3px;border-radius:5px;background:var(--card-accent,#6c6de4);opacity:.82}
    .course-card .card-top,.course-card .badge-row,.course-card .card-controls{position:relative;z-index:1}

    input.invalid,select.invalid,textarea.invalid{border-color:#e47a82!important;background:#fff9f9!important;box-shadow:0 0 0 3px rgba(203,69,80,.08)!important}
    .input-hint{min-height:14px;margin-top:1px;font-size:8.8px;color:#9ba1b0;line-height:1.5}
    .input-hint.error{color:var(--danger);font-weight:750}
    .time24::placeholder{color:#adb3c0}

    .course-block{box-shadow:0 10px 24px rgba(32,38,63,.17),inset 0 1px 0 rgba(255,255,255,.18)}
    .lane{background:linear-gradient(180deg,#fff 0%,#fdfdff 100%)}
    .day-label{color:#343b4f}
    .axis-track{background:linear-gradient(180deg,#fafbff,#f6f8fc)}

    .confirm-modal{width:min(430px,100%);background:#fff;border-radius:22px;border:1px solid rgba(255,255,255,.8);box-shadow:0 30px 90px rgba(9,14,27,.30);padding:18px}
    .confirm-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--dangerSoft);color:var(--danger);font-size:21px;margin-bottom:12px}
    .confirm-modal h3{margin:0 0 7px;font-size:16px}
    .confirm-modal p{margin:0;color:var(--muted);font-size:10.5px;line-height:1.9}
    .confirm-target{margin-top:11px;padding:9px 11px;border-radius:11px;background:#f7f8fc;border:1px solid var(--line);font-size:10.5px;font-weight:900;color:#3b4255;overflow-wrap:anywhere}
    .confirm-actions{display:flex;justify-content:flex-start;gap:7px;margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}

    @media(max-width:760px){
      .plan-left{width:100%}.plan-list{width:100%}.plan-tab{max-width:100%}.plan-tab-name{max-width:145px}
      .plan-actions{margin-right:0;width:100%}
    }

  
    /* ===== v5: internal dialogs + UI polish ===== */
    :root{
      --bg:#f4f6fb;
      --surface:#fff;
      --soft:#f8f9fd;
      --ink:#171b2b;
      --muted:#6f7688;
      --line:#e0e4ed;
      --primary:#5f5ce6;
      --primary-2:#8176f3;
      --primary-deep:#4542be;
      --primary-soft:#efefff;
      --success:#178363;
      --success-soft:#eaf8f3;
      --danger:#c94a55;
      --danger-soft:#fff0f2;
      --warning:#b97822;
      --warning-soft:#fff6e8;
      --shadow:0 14px 36px rgba(25,31,52,.075);
      --shadow-soft:0 5px 16px rgba(25,31,52,.055);
    }
