.lane{position:relative;height:var(--laneH);flex:0 0 auto;background:linear-gradient(180deg,#fff,#fdfdff)}.lane::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#f1f3f7}.course-block{position:absolute;top:12px;height:86px;border-radius:15px;color:#fff;padding:11px 12px;overflow:hidden;box-shadow:0 9px 22px rgba(38,43,66,.16);border:1px solid rgba(255,255,255,.35);transition:.16s ease;direction:rtl}.course-block:hover{transform:translateY(-2px);z-index:20;box-shadow:0 14px 28px rgba(38,43,66,.22)}.course-title{font-size:11.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.course-sub{font-size:9.3px;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.course-time{display:inline-flex;direction:ltr;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:3px 6px;font-size:9px;font-weight:900}.empty-timeline{min-width:760px;padding:72px 20px;text-align:center;color:var(--muted);line-height:1.9}.empty-timeline .icon{font-size:36px}.empty-timeline strong{display:block;color:var(--ink);font-size:14px}
    .side-stack{display:flex;flex-direction:column;gap:14px}.filter-row{padding:9px 10px 0;display:flex;gap:5px;flex-wrap:wrap}.filter{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:99px;padding:5px 9px;font-size:9.5px;font-weight:800}.filter.active{background:var(--primarySoft);color:var(--primary);border-color:#dcdcff}.course-list{padding:9px;max-height:520px;overflow:auto}.course-card{border:1px solid var(--line);border-radius:16px;padding:11px;background:linear-gradient(180deg,#fff,#fdfdff);margin-bottom:8px;transition:.16s ease}.course-card:hover{border-color:#d5d9e7;box-shadow:var(--shadowSoft)}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.name-wrap{display:flex;gap:8px;align-items:flex-start}.color-dot{width:10px;height:10px;border-radius:50%;margin-top:5px}.course-card h3{margin:0 0 2px;font-size:12.5px;line-height:1.7}.meta{font-size:9.7px;color:var(--muted);line-height:1.8}.badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:4px 7px;font-size:8.8px;font-weight:900;border:1px solid var(--line);background:#fff;color:#687083}.badge.selected{background:var(--successSoft);color:var(--success);border-color:#ccefe4}.badge.candidate{background:var(--warningSoft);color:var(--warning);border-color:#ffe7ba}.badge.priority{background:var(--primarySoft);color:var(--primary);border-color:#ddddff}.card-actions{display:flex;gap:4px}.mini{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#7b8294;display:grid;place-items:center}.mini:hover{background:var(--soft);color:var(--ink)}.mini.delete:hover{background:var(--dangerSoft);color:var(--danger)}.card-controls{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin-top:9px;padding-top:8px;border-top:1px solid #edf0f5}.group-select{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:7px 8px;font-size:9.5px}.status-toggle{border:1px solid var(--line);border-radius:9px;background:#fff;color:#60687a;padding:7px 8px;font-size:9px;font-weight:900;white-space:nowrap}.status-toggle.on{background:var(--successSoft);color:var(--success);border-color:#ccefe4}.empty-card{padding:26px 15px;text-align:center;color:var(--muted);font-size:10.5px;line-height:2}
    .exam-list{padding:7px 11px 12px}.exam-item{display:grid;grid-template-columns:60px 1fr;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.exam-item:last-child{border-bottom:0}.date-card{min-height:52px;border-radius:12px;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#f0efff,#f7f5ff);border:1px solid #e4e1ff;color:var(--primary);font-size:9.5px;font-weight:900;line-height:1.5;padding:6px 4px}.exam-info h4{margin:0 0 3px;font-size:11px}.exam-info div{font-size:9.3px;color:var(--muted);line-height:1.7}.storage{margin:0 9px 9px;padding:10px 11px;border:1px dashed #d7dbe7;border-radius:13px;background:#fafbff;color:var(--muted);font-size:9.6px;line-height:1.9}.storage-state{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 7px;border-radius:99px;background:var(--successSoft);color:var(--success);font-weight:900}.state-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
    .modal-backdrop{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1000;background:rgba(12,17,31,.52);backdrop-filter:blur(7px);padding:16px}.modal-backdrop.open{display:flex}.modal{width:min(980px,100%);max-height:93vh;overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.8);border-radius:25px;box-shadow:0 32px 95px rgba(11,15,27,.3)}.modal-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h2{margin:0;font-size:17px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:9.8px}.close{width:35px;height:35px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#7d8496;font-size:19px}.modal-body{padding:16px}.section{border:1px solid var(--line);border-radius:17px;padding:14px;background:linear-gradient(180deg,#fff,#fcfcff);margin-bottom:12px}.section-title{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:900;margin-bottom:11px;color:#3b4152}.section-icon{width:26px;height:26px;border-radius:8px;background:var(--primarySoft);display:grid;place-items:center;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.field{display:flex;flex-direction:column;gap:5px}.span2{grid-column:span 2}.span4{grid-column:span 4}label{font-size:9.8px;color:#596174;font-weight:900}input,select,textarea{width:100%;border:1px solid #dfe3ec;background:#fff;color:var(--ink);border-radius:10px;padding:9px 10px;outline:none;transition:.15s ease;min-height:40px}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus{border-color:#9993f4;box-shadow:0 0 0 3px #f0efff}.time24{direction:ltr;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.4px}.groups{display:flex;flex-direction:column;gap:10px}.group-card{border:1px solid #dfe3ec;border-radius:15px;background:#fafbfe;overflow:hidden}
