*,:before,:after{box-sizing:border-box}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg2:#f5f5f7;--bg3:#e8e8ed;--text:#1d1d1f;--text2:#86868b;--text3:#aeaeb2;--border:#d2d2d7;--border2:#c7c7cc;--blue:#007aff;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--gray:#8e8e93;--purple:#af52de}@media (prefers-color-scheme:dark){:root{--bg:#1c1c1e;--bg2:#2c2c2e;--bg3:#3a3a3c;--text:#f5f5f7;--text2:#98989d;--text3:#636366;--border:#48484a;--border2:#636366}}body{-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg2);min-height:100vh;font-family:-apple-system,SF Pro Display,SF Pro Text,Helvetica Neue,sans-serif}#root{max-width:820px;margin:0 auto;padding:20px 24px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.anim{animation:.35s both fadeUp}.anim-d1{animation-delay:50ms}.anim-d2{animation-delay:.1s}.anim-d3{animation-delay:.15s}.anim-d4{animation-delay:.2s}.anim-d5{animation-delay:.25s}.card{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;margin-bottom:10px;padding:20px 22px;transition:all .2s}.card.click{cursor:pointer}.card.click:hover{border-color:var(--border2);transform:scale(1.005)}.card-blue{border:2px solid var(--blue)}.card-red{border:2px solid var(--red);background:#ff3b3005}.card-orange{border:2px solid var(--orange);background:#ff95000d}input[type=text],input[type=number],input[type=date],select,textarea{border:1.5px solid var(--border);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:12px;outline:none;padding:11px 14px;font-family:inherit;font-size:15px;font-weight:400;transition:all .2s}input:hover,select:hover,textarea:hover{border-color:var(--border2)}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3.5px #007aff26}::placeholder{color:var(--text3);font-weight:400}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238E8E93' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}textarea{resize:vertical;min-height:76px;line-height:1.55}.btn{cursor:pointer;letter-spacing:.01em;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn-p{background:var(--blue);color:#fff}.btn-p:hover{background:#0056cc}.btn-p:active{transform:scale(.97)}.btn-s{background:var(--bg3);color:var(--text);font-weight:500}.btn-s:hover{opacity:.85}.btn-g{color:var(--blue);background:0 0;padding:8px 14px;font-weight:600}.btn-g:hover{background:#007aff14}.btn-d{color:var(--red);background:0 0;padding:8px 14px;font-weight:600}.btn-d:hover{background:#ff3b3014}.btn-icon{flex-shrink:0;width:42px;height:42px;padding:0;font-size:20px;line-height:1}.badge{letter-spacing:.03em;border-radius:8px;padding:5px 11px;font-size:12px;font-weight:700;display:inline-block}.tabs{background:var(--bg3);border-radius:12px;gap:4px;width:fit-content;margin-bottom:24px;padding:4px;display:flex}.tab{cursor:pointer;color:var(--text2);background:0 0;border:none;border-radius:10px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s}.tab.active{background:var(--bg);color:var(--text);font-weight:700;box-shadow:0 1px 4px #0000001a}.section-title{color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px;font-size:13px;font-weight:700}.row{border-bottom:1px solid var(--bg3);align-items:flex-start;padding:11px 0;display:flex}.row:last-child{border-bottom:none}.row-label{color:var(--text2);flex-shrink:0;min-width:150px;padding-top:2px;font-size:14px;font-weight:500}.row-value{color:var(--text);white-space:pre-wrap;flex:1;font-size:14px;font-weight:500}.field{margin-bottom:14px}.field.compact{margin-bottom:0}.field label{color:var(--text2);margin-bottom:5px;font-size:13px;font-weight:600;display:block}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.flex{align-items:center;display:flex}.flex-end{align-items:flex-end}.gap8{gap:8px}.gap6{gap:6px}.gap20{gap:20px}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex1{flex:1}.mt24{margin-top:24px}.mt20{margin-top:20px}.mb8{margin-bottom:8px}.mb10{margin-bottom:10px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}.mb24{margin-bottom:24px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg3);border-radius:14px;padding:16px 18px}.stat-label{color:var(--text2);margin-bottom:4px;font-size:13px;font-weight:500}.stat-value,.h1{letter-spacing:-.025em;font-size:30px;font-weight:800}.h2{font-size:18px;font-weight:700}.sub{color:var(--text2);margin-top:4px;font-size:15px;font-weight:500}.avatar{width:36px;height:36px;color:var(--blue);background:#007aff17;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin-right:12px;font-size:14px;font-weight:600;display:flex}.dot{border-radius:5px;flex-shrink:0;width:10px;height:10px}.dot-sm{border-radius:4px;flex-shrink:0;width:8px;height:8px;margin-right:10px}.search-row{gap:8px;margin-bottom:18px;display:flex}.search-row input{flex:1}.search-row select{width:140px}.empty{text-align:center;color:var(--text2);padding:4rem 1rem}.sticky-header{z-index:10;background:var(--bg2);padding:12px 0;position:sticky;top:0}.handover-banner{background:linear-gradient(135deg,#007aff12,#5856d612);border:none;border-radius:16px;margin-bottom:20px;padding:20px 22px}.client-banner{background:linear-gradient(135deg,#34c75912,#007aff12);border:none;border-radius:16px;margin-bottom:20px;padding:20px 22px}.progress-bg{background:var(--bg3);border-radius:3px;height:6px;margin-top:12px;margin-bottom:4px;overflow:hidden}.progress-bar{height:100%;transition:width .3s}.link{color:var(--blue);font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.tl-container{border-left:2px solid var(--border);margin-top:16px;margin-left:12px;padding-left:24px;position:relative}.tl-item{margin-bottom:24px;position:relative}.tl-item:last-child{margin-bottom:0}.tl-dot{background:var(--bg);border:3px solid var(--border);width:12px;height:12px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:2px;left:-31px}.tl-date{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:12px;font-weight:700}.tl-content{color:var(--text);font-size:15px;font-weight:500}.tl-sub{color:var(--text2);margin-top:2px;font-size:13px}.sched-group{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;margin-bottom:32px;padding:20px 22px}.sched-title{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;font-size:18px;font-weight:700;display:flex}@media print{body{background:#fff;min-height:auto;padding:0}#root{max-width:100%;margin:0;padding:0}body *{visibility:hidden}#print-area,#print-area *{visibility:visible}#print-area{width:100%;padding:20px;position:absolute;top:0;left:0}.no-print,.btn,.tabs,.sticky-header,.search-row,.stats-grid{display:none!important}.card{page-break-inside:avoid;box-shadow:none;border:1px solid #ddd;margin-bottom:15px}.tl-container{border-left-color:#ddd}.tl-dot{border-color:#aaa}}.top-bar{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:12px 20px;display:flex}.user-info{align-items:center;gap:12px;display:flex}.user-avatar{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.user-text{flex-direction:column;display:flex}.user-name{font-size:14px;font-weight:700}.user-role{color:var(--text2);text-transform:uppercase;font-size:11px;font-weight:600}.logout-btn{color:var(--red);cursor:pointer;text-transform:lowercase;background:0 0;border:none;padding:8px;font-size:13px;font-weight:600}.loader-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:60vh;display:flex}.loader{border:3px solid var(--bg3);border-top-color:var(--blue);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
