*{box-sizing:border-box}body{color:#172033;background:#f6f7f9;margin:0;font-family:Arial,Helvetica,sans-serif}.shell{max-width:1500px;margin:0 auto;padding:20px}.app-title{margin:0}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.tabs{gap:8px;display:flex}.btn,.tab,input,select{font:inherit}.btn,.tab{cursor:pointer;background:#fff;border:1px solid #cfd5df;border-radius:10px;padding:9px 13px}.btn:hover,.tab:hover{background:#f4f6fa}.tab.active,.btn.primary{color:#fff;background:#1457d9;border-color:#1457d9}.btn.primary:hover{background:#1048b5}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.danger{color:#a82121;border-color:#e5bcbc}.card{background:#fff;border:1px solid #d9dee7;border-radius:14px;margin-top:14px;padding:16px}.grid{gap:12px;display:grid}.row{flex-wrap:wrap;gap:10px;display:flex}.field{flex:1;gap:5px;min-width:180px;display:grid}.field input,.field select{background:#fff;border:1px solid #ccd3dd;border-radius:9px;padding:10px}.muted{color:#687386;font-size:13px}.status{color:#fff;z-index:40;background:#172033;border-radius:10px;padding:10px 14px;position:fixed;bottom:18px;right:18px;box-shadow:0 6px 24px #0002}.auth{max-width:420px;margin:80px auto}.split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.calendar-wrap{margin-top:14px}.calendar-toolbar{background:#fff;border:1px solid #d9dee7;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.calendar-toolbar h2{margin:0 0 3px}.week-nav{flex-wrap:wrap;gap:7px;display:flex}.week-label{margin:12px 2px 8px;font-weight:700}.week-grid{grid-template-columns:repeat(7,minmax(170px,1fr));align-items:start;gap:8px;padding-bottom:12px;display:grid;overflow-x:auto}.calendar-day{background:#fff;border:1px solid #d9dee7;border-radius:12px;min-width:170px;overflow:hidden}.day-heading{background:#fbfcfd;border-bottom:1px solid #e5e9ef;justify-content:space-between;padding:10px 11px;display:flex}.day-heading span{color:#687386}.no-hours{text-align:center;color:#98a1af;padding:20px 10px;font-size:12px}.availability-block+.availability-block{border-top:6px solid #f6f7f9}.availability-title{background:#eef3fb;border-bottom:1px solid #dce5f2;gap:2px;padding:7px 9px;font-size:12px;display:grid}.availability-title small{color:#64748b}.time-grid{position:relative}.time-row{border-bottom:1px solid #edf0f4;grid-template-columns:52px 1fr;height:20px;display:grid;position:relative}.time-row.continuation{border-bottom-color:#0000}.time-label{color:#7a8492;text-align:right;white-space:nowrap;padding:3px 4px;font-size:9px}.open-slot{cursor:pointer;background:0 0;border:0;width:100%;height:100%;position:relative}.open-slot:hover{background:#e8f1ff}.open-slot:hover:after{content:"+";color:#1457d9;font-weight:700;position:absolute;top:0;right:6px}.calendar-item{z-index:4;text-align:left;border:0;border-radius:7px;flex-direction:column;gap:2px;padding:5px 7px;font-size:11px;display:flex;position:absolute;top:1px;left:52px;right:4px;overflow:hidden}.lesson-item{color:#143b75;cursor:pointer;background:#dce9ff;border-left:3px solid #1457d9}.lesson-item:hover{filter:brightness(.97)}.lesson-item span,.lesson-item em{font-size:10px;font-style:normal}.blocked-item{color:#525b68;background:#e7e9ed;border-left:3px solid #7c8795}.status-completed{color:#245b36;background:#e4f3e9;border-left-color:#4a8a5b}.status-no_show{color:#7b2b2b;background:#f7e6e6;border-left-color:#b65050}.empty-state{text-align:center;color:#687386}.modal-backdrop{z-index:60;background:#17203355;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #d8dde6;border-radius:16px;width:min(650px,100%);max-height:90vh;padding:18px;overflow:auto;box-shadow:0 20px 60px #0003}.modal-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.modal-header h3{margin:0 0 4px}.icon-btn{cursor:pointer;color:#697386;background:0 0;border:0;font-size:27px;line-height:1}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:15px}.modal-form .field:last-child{grid-column:1/-1}.attendance-box{border-top:1px solid #e5e8ed;margin-top:16px;padding-top:13px}.attendance-title{margin-bottom:8px;font-weight:700}.attendance-actions{flex-wrap:wrap;gap:7px;display:flex}.attendance-actions .btn{padding:7px 9px;font-size:12px}.modal-actions{border-top:1px solid #e5e8ed;flex-wrap:wrap;align-items:center;gap:8px;margin-top:17px;padding-top:14px;display:flex}.block-reason{border:1px solid #ccd3dd;border-radius:9px;flex:1;min-width:190px;padding:9px}@media (max-width:900px){.week-grid{grid-template-columns:repeat(7,minmax(160px,1fr))}.shell{padding:12px}}@media (max-width:700px){.split,.modal-form{grid-template-columns:1fr}.modal-form .field:last-child{grid-column:auto}.week-grid{display:block;overflow:visible}.calendar-day{min-width:0;margin-bottom:10px}.calendar-toolbar{align-items:flex-start}.status{bottom:12px;left:12px;right:12px}.shell{padding:10px}}.check-row{flex-wrap:wrap;gap:18px;display:flex}.check-row label{align-items:center;gap:7px;display:flex}.check-row input{width:auto}.recurrence-box{border-top:1px solid #e5e8ed;gap:10px;margin-top:16px;padding-top:13px;display:grid}.recurrence-controls .field{min-width:150px}.reminder-note{color:#667085;background:#f6f8fb;border:1px solid #e1e6ee;border-radius:9px;margin-top:12px;padding:9px 11px;font-size:12px}.blocked-item{cursor:pointer}
