:root{--color-bg-primary: #0e1117;--color-bg-secondary: #161b22;--color-bg-tertiary: #21262d;--color-card-bg: #1c2128;--color-card-border: rgba(255, 255, 255, .08);--color-text-primary: #f0f6fc;--color-text-secondary: #8b949e;--color-text-muted: #6e7681;--color-accent: #2f81f7;--color-accent-hover: #388bfd;--color-accent-text: #ffffff;--color-accent-soft: rgba(47, 129, 247, .15);--color-success: #238636;--color-success-soft: rgba(35, 134, 54, .18);--color-warning: #d29922;--color-warning-soft: rgba(210, 153, 34, .18);--color-danger: #da3633;--color-danger-soft: rgba(218, 54, 51, .18);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-full: 9999px;--shadow-sm: 0 2px 6px rgba(0, 0, 0, .15);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .4);--font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=light]{--color-bg-primary: #f6f8fa;--color-bg-secondary: #ffffff;--color-bg-tertiary: #eaeef2;--color-card-bg: #ffffff;--color-card-border: rgba(0, 0, 0, .08);--color-text-primary: #1f2328;--color-text-secondary: #656d76;--color-text-muted: #8c959f;--color-accent: #0969da;--color-accent-hover: #0860ca;--color-accent-text: #ffffff;--color-accent-soft: rgba(9, 105, 218, .1);--color-success: #1a7f37;--color-success-soft: rgba(26, 127, 55, .12);--color-warning: #9a6700;--color-warning-soft: rgba(154, 103, 0, .12);--color-danger: #cf222e;--color-danger-soft: rgba(207, 34, 46, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 14px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);font-size:15px;line-height:1.45;user-select:none;-webkit-user-select:none;min-height:100vh;min-height:-webkit-fill-available;overflow-x:hidden;transition:background-color .2s ease,color .2s ease}input,textarea,button,select{font-family:inherit;font-size:inherit;color:inherit}button{background:none;border:none;cursor:pointer;outline:none}.app-container{display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(var(--safe-bottom) + 80px)}.screen-content{flex:1;padding:16px;max-width:680px;margin:0 auto;width:100%;animation:fadeIn .25s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#0e1117d9;border-bottom:1px solid var(--color-card-border);padding:calc(var(--safe-top) + 10px) 16px 12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:background-color .2s ease}[data-theme=light] .app-header{background:#f6f8fae0}.header-left{display:flex;align-items:center;gap:10px;min-width:0}.header-title-box{min-width:0}.header-title{font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-subtitle{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-card-border);transition:transform .15s ease,background .15s ease}.icon-btn:active{transform:scale(.92)}.search-wrapper{position:relative;margin-bottom:16px}.search-input{width:100%;padding:12px 16px 12px 42px;background:var(--color-bg-secondary);border:1px solid var(--color-card-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:15px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:13px}.university-grid{display:flex;flex-direction:column;gap:12px}.uni-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-md);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;box-shadow:var(--shadow-sm)}.uni-card:active{transform:scale(.985);border-color:var(--color-accent)}.uni-logo-badge{width:50px;height:50px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:#fff;flex-shrink:0;box-shadow:0 4px 10px #0003}.uni-info{flex:1;min-width:0}.uni-name{font-size:16px;font-weight:700;color:var(--color-text-primary);margin-bottom:2px;line-height:1.25}.uni-fullname{font-size:13px;color:var(--color-text-secondary);margin-bottom:6px;line-height:1.3}.uni-stats-row{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--color-text-muted)}.uni-stat-item{display:flex;align-items:center;gap:4px}.chips-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;margin-bottom:12px;scrollbar-width:none}.chips-scroll::-webkit-scrollbar{display:none}.filter-chip{padding:7px 14px;border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-card-border);color:var(--color-text-secondary);font-size:13px;font-weight:500;white-space:nowrap;transition:all .15s ease}.filter-chip.active{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.teacher-list{display:flex;flex-direction:column;gap:12px}.teacher-card{padding:16px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-md);cursor:pointer;transition:transform .15s ease,border-color .15s ease;box-shadow:var(--shadow-sm)}.teacher-card:active{transform:scale(.985);border-color:var(--color-accent)}.teacher-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.teacher-fio{font-size:16px;font-weight:700;color:var(--color-text-primary);line-height:1.3}.teacher-position{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.rating-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:14px;font-weight:700;color:#fff;flex-shrink:0}.badge-excellent{background:#238636}.badge-good{background:#2f81f7}.badge-average{background:#d29922}.badge-poor{background:#da3633}.teacher-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag-discipline{font-size:12px;padding:3px 8px;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.tag-active-sem{background:var(--color-accent-soft);color:var(--color-accent);font-weight:500}.teacher-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-card-border);font-size:12px;color:var(--color-text-muted)}.criteria-container{display:flex;flex-direction:column;gap:10px;margin:16px 0}.criteria-row{display:flex;flex-direction:column;gap:4px}.criteria-labels{display:flex;justify-content:space-between;font-size:13px}.criteria-title{color:var(--color-text-secondary);font-weight:500}.criteria-val{font-weight:700;color:var(--color-text-primary)}.scale-track{height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;position:relative}.scale-fill{height:100%;border-radius:var(--radius-full);transition:width .6s cubic-bezier(.16,1,.3,1)}.profile-hero{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.profile-avatar-row{display:flex;gap:16px;align-items:center;margin-bottom:14px}.profile-avatar{width:64px;height:64px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),#8a2be2);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #2f81f74d}.profile-main-fio{font-size:20px;font-weight:800;line-height:1.25}.profile-meta-line{font-size:13px;color:var(--color-text-secondary);margin-top:4px}.profile-stats-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:14px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin:16px 0;text-align:center}.summary-score-large{font-size:32px;font-weight:800;color:var(--color-text-primary);line-height:1}.summary-score-sub{font-size:12px;color:var(--color-text-muted);margin-top:4px}.user-rating-box{background:var(--color-card-bg);border:1px dashed var(--color-accent);border-radius:var(--radius-md);padding:16px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:var(--color-accent);color:var(--color-accent-text);border-radius:var(--radius-md);font-size:15px;font-weight:600;transition:all .15s ease;box-shadow:0 4px 14px var(--color-accent-soft)}.btn-primary:active{transform:scale(.97);background:var(--color-accent-hover)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-card-border);color:var(--color-text-primary);border-radius:var(--radius-md);font-size:14px;font-weight:600;transition:all .15s ease}.btn-secondary:active{transform:scale(.97);background:var(--color-bg-tertiary)}.comments-section{margin-top:24px}.comments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title{font-size:18px;font-weight:700}.comment-card{padding:16px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--radius-md);margin-bottom:12px;box-shadow:var(--shadow-sm)}.comment-top-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.comment-author-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.comment-author-name{font-weight:600;font-size:14px}.badge-tag{font-size:11px;padding:2px 7px;border-radius:var(--radius-full);font-weight:600}.badge-chat{background:#0088cc26;color:#08c;border:1px solid rgba(0,136,204,.3)}.badge-verified{background:var(--color-success-soft);color:var(--color-success);border:1px solid rgba(35,134,54,.3)}.comment-text{font-size:14px;line-height:1.5;color:var(--color-text-primary);margin:10px 0;word-break:break-word}.comment-footer{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--color-card-border);font-size:12px;color:var(--color-text-muted)}.comment-actions{display:flex;align-items:center;gap:14px}.like-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:13px;transition:all .15s ease}.like-btn.liked{color:var(--color-danger);background:var(--color-danger-soft)}.report-btn{color:var(--color-text-muted);font-size:12px;padding:4px}.report-btn:hover{color:var(--color-danger)}.modal-overlay{position:fixed;inset:0;z-index:100;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.modal-sheet{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);width:100%;max-width:580px;max-height:90vh;overflow-y:auto;padding:20px 20px calc(var(--safe-bottom) + 24px) 20px;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-title{font-size:18px;font-weight:700}.stars-selector{display:flex;gap:6px}.star-btn{font-size:24px;color:var(--color-text-muted);transition:transform .1s ease,color .1s ease;line-height:1}.star-btn.active{color:#e3b341}.star-btn:active{transform:scale(1.2)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:6px}.form-textarea{width:100%;min-height:100px;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-card-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:14px;resize:vertical;outline:none}.form-textarea:focus{border-color:var(--color-accent)}.skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px;margin-bottom:8px}.skeleton-card{padding:16px;background:var(--color-card-bg);border-radius:var(--radius-md);border:1px solid var(--color-card-border);margin-bottom:12px}.toast-container{position:fixed;bottom:calc(var(--safe-bottom) + 30px);left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:calc(100% - 32px);max-width:400px}.toast{padding:12px 18px;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;text-align:center;box-shadow:var(--shadow-md);animation:toastIn .25s cubic-bezier(.16,1,.3,1);pointer-events:auto}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-success{background:#238636}.toast-error{background:#da3633}.toast-info{background:#2f81f7}.state-center-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 16px;min-height:280px}.state-icon{font-size:48px;margin-bottom:12px;opacity:.8}.state-title{font-size:18px;font-weight:700;margin-bottom:6px}.state-desc{font-size:14px;color:var(--color-text-secondary);max-width:320px;margin-bottom:16px}.onboarding-guide-card{background:linear-gradient(135deg,#2f81f71f,#8a2be214);border:1px solid rgba(47,129,247,.35);border-radius:var(--radius-md);padding:16px;margin-bottom:16px;box-shadow:0 4px 14px #2f81f714;animation:fadeIn .25s ease}[data-theme=light] .onboarding-guide-card{background:linear-gradient(135deg,#0969da14,#8a2be20d);border-color:#0969da40;box-shadow:0 2px 10px #0969da0f}.onboarding-guide-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.onboarding-guide-badge{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent);color:var(--color-accent-text);padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:700;letter-spacing:.2px}.onboarding-guide-text{font-size:14.5px;font-weight:700;color:var(--color-text-primary);margin-bottom:6px;line-height:1.35}.onboarding-guide-subtext{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px;line-height:1.45}.onboarding-guide-step{font-size:13px;color:var(--color-accent);background:var(--color-bg-secondary);padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-card-border);line-height:1.45}.badge-locked{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-card-border);font-size:12px;font-weight:600;padding:4px 8px}.onboarding-gate-wrapper{position:relative;overflow:hidden;border-radius:var(--radius-lg);margin-top:16px;min-height:480px}.onboarding-gate-blurred{filter:blur(12px) brightness(.6);-webkit-filter:blur(12px) brightness(.6);opacity:.55;pointer-events:none;user-select:none;transform:scale(.99);transition:all .3s ease}[data-theme=light] .onboarding-gate-blurred{filter:blur(12px) brightness(.9);-webkit-filter:blur(12px) brightness(.9);opacity:.4}.onboarding-gate-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.onboarding-gate-card{background:#161b22e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1.5px solid rgba(47,129,247,.4);border-radius:var(--radius-lg);padding:28px 22px;text-align:center;max-width:440px;width:100%;box-shadow:0 16px 40px #00000080,0 0 24px #2f81f733;animation:fadeIn .3s cubic-bezier(.16,1,.3,1)}[data-theme=light] .onboarding-gate-card{background:#ffffffeb;border-color:#0969da59;box-shadow:0 16px 40px #0000001f,0 0 20px #0969da26}.onboarding-gate-icon-circle{width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-accent-soft);border:1px solid rgba(47,129,247,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 4px 12px #2f81f733}.onboarding-gate-icon{font-size:26px;line-height:1}.onboarding-gate-header{margin-bottom:8px}.onboarding-gate-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent);font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.onboarding-gate-title{font-size:19px;font-weight:800;color:var(--color-text-primary);margin-bottom:10px;line-height:1.3}.onboarding-gate-text{font-size:14.5px;font-weight:600;line-height:1.5;color:var(--color-text-primary);margin-bottom:8px}.onboarding-gate-subtext{font-size:13px;line-height:1.45;color:var(--color-text-secondary);margin-bottom:22px}.onboarding-gate-btn{width:100%;padding:14px 20px;font-size:15px;font-weight:700;border-radius:var(--radius-md);box-shadow:0 6px 20px #2f81f759}:root{--color-text-secondary: #b4c0d1;--color-text-muted: #a0aec2;--color-accent: #70a6ff;--color-accent-text: #071426;--color-card-bg: #162238;--color-bg-primary: #0a1220;--color-bg-secondary: #101b2e;--color-bg-tertiary: #20304a}[data-theme=light]{--color-text-primary: #19283c;--color-text-secondary: #475569;--color-text-muted: #526276;--color-accent: #175bd2;--color-accent-text: #fff;--color-bg-primary: #f2f5fa;--color-bg-secondary: #fff;--color-bg-tertiary: #e6edf7;--color-card-bg: #fff}body{user-select:text;-webkit-user-select:text;line-height:1.6;transition:none}button{min-height:44px}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.onboarding-gate-wrapper{min-height:0}.onboarding-gate-overlay{position:static;padding:0}.onboarding-gate-card{background:var(--color-card-bg);width:100%}.comment-text{font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.action-card{text-align:left;padding:16px;border:1px solid var(--color-card-border);border-radius:16px;background:var(--color-card-bg)}.action-card strong{display:block;font-size:15px}.action-card small{display:block;margin-top:4px;color:var(--color-text-secondary);font-size:12px}.workspace-section{margin:18px 0;padding:20px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:20px}.workspace-section h2{font-size:20px;margin-bottom:10px}.workspace-section p{color:var(--color-text-secondary)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:55;padding:8px 16px calc(8px + var(--safe-bottom));display:flex;justify-content:center;gap:8px;background:var(--color-bg-secondary);border-top:1px solid var(--color-card-border)}.bottom-nav button{flex:1;max-width:220px;border-radius:12px;color:var(--color-text-secondary);padding:8px}.bottom-nav button[aria-current=page]{color:var(--color-accent);background:var(--color-accent-soft)}.inline-status{padding:12px 16px;margin:12px 0;border-radius:12px;background:var(--color-accent-soft)}.form-stack{display:grid;gap:12px}.form-stack label{display:grid;gap:6px;font-weight:600}.form-stack input,.form-stack textarea,.form-stack select{width:100%;padding:12px;background:var(--color-bg-primary);border:1px solid var(--color-card-border);border-radius:12px}.form-stack textarea{min-height:110px;resize:vertical}.list-record{padding:16px 0;border-bottom:1px solid var(--color-card-border);overflow-wrap:anywhere}.list-record:last-child{border-bottom:none}.list-record time,.list-record small{color:var(--color-text-secondary);font-size:12px}.form-errors{color:var(--color-danger)}@media (max-width: 360px){.action-grid{grid-template-columns:1fr}.workspace-section{padding:16px}}.search-wrapper{display:flex;align-items:center}.search-input{flex:1;min-width:0}.search-submit{padding:0 12px;color:var(--color-accent);font-weight:600}.search-clear{position:static;flex-shrink:0;transform:none}.search-hint{color:var(--color-text-secondary);font-size:12px;margin:-4px 0 14px}.modal-overlay{padding-bottom:var(--safe-bottom)}.modal-sheet{max-height:90dvh;overflow-y:auto}.form-stack button:disabled,.action-card:disabled{opacity:.6;cursor:default}.screen-content{animation:none}.hero-actions{display:flex;gap:10px;margin:16px 0 12px}.hero-actions>*{flex:1;min-width:0;text-align:center}.teacher-details summary{cursor:pointer;color:var(--color-text-secondary);font-size:14px;padding:8px 0}.teacher-details[open] summary{color:var(--color-accent)}.action-card strong{display:flex;gap:8px;align-items:flex-start;line-height:1.35;font-weight:650}.action-icon{flex-shrink:0;color:var(--color-accent);margin-top:1px}.action-card small{line-height:1.45;margin-top:8px}.action-card{min-height:108px;padding:14px}.criteria-labels{align-items:flex-start;gap:12px}.criteria-title{min-width:0}.criteria-val{flex-shrink:0}.comments-section{scroll-margin-top:84px}.summary-score-large{font-size:28px}.app-container{padding-bottom:calc(var(--safe-bottom) + 96px)}.bottom-nav{box-shadow:0 -8px 24px #0000001f}:root{color-scheme:dark}[data-theme=light]{color-scheme:light}.badge-excellent{background:#166534}.badge-good{background:#1d4ed8}.badge-average{background:#854d0e}.badge-poor{background:#b91c1c}
