:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--tg-theme-bg-color, #f2f4f7);color:var(--tg-theme-text-color, #1c1c1c)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--tg-theme-bg-color, #f2f4f7);color:inherit}#root{min-height:100vh}.app{--app-text-primary: #f8fafc;--app-text-secondary: rgba(226, 232, 240, .88);--app-chip-text: #f1f9ff;height:100vh;min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:32px 16px 48px;box-sizing:border-box;background-color:var(--tg-theme-bg-color, #050814);background-image:radial-gradient(circle at 50% -10%,rgba(46,166,255,.25),transparent 58%),radial-gradient(circle at 10% 110%,rgba(205,148,255,.18),transparent 45%),linear-gradient(160deg,#040a18f5,#061224fa);color:var(--app-text-primary)}.app-shell{width:100%;max-width:460px;max-height:calc(100vh - 32px);min-height:calc(100vh - 32px);display:flex;flex-direction:column;align-items:center;gap:42px;padding:44px 36px 52px;border-radius:40px;overflow:hidden;overflow-y:auto;background:linear-gradient(145deg,#111728eb,#0a1020e0);-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);box-shadow:0 20px 60px #0308148c,inset 0 0 0 1px #94a3b814;border:1px solid rgba(148,163,184,.16)}.app-shell.guest{align-items:center;text-align:center;gap:18px;padding:48px 32px}.guest-badge{padding:6px 12px;border-radius:999px;background:#2ea6ff29;color:var(--app-text-primary);font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(46,166,255,.32)}.guest-badge--error{background:#f8717129;border-color:#f8717161}.registration-head{display:flex;flex-direction:column;gap:12px;text-align:center}.registration-title{margin:0;font-size:26px;font-weight:700;color:var(--app-text-primary)}.registration-text{margin:0;color:var(--app-text-secondary);line-height:1.5}.registration-form{width:100%;display:flex;flex-direction:column;gap:16px;margin-top:10px}.form-field{display:flex;flex-direction:column;gap:10px}.form-field label{font-size:14px;color:var(--app-text-secondary);letter-spacing:.04em;text-transform:uppercase}.form-field input{width:100%;padding:14px 16px;border-radius:14px;border:1px solid rgba(148,163,184,.26);background:#0f172a8c;color:var(--app-text-primary);font-size:16px;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.form-field input:focus{outline:none;border-color:#38bdf8b3;box-shadow:0 10px 30px #02081466;transform:translateY(-1px)}.textarea{width:100%;min-height:110px;padding:14px 16px;border-radius:14px;border:1px solid rgba(148,163,184,.26);background:#0f172a8c;color:var(--app-text-primary);font-size:16px;resize:vertical;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.textarea:focus{outline:none;border-color:#38bdf8b3;box-shadow:0 10px 30px #02081466;transform:translateY(-1px)}.file-input{width:100%;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.26);background:#0f172a8c;color:var(--app-text-primary);font-size:14px}.file-input::file-selector-button{margin-right:12px;padding:10px 14px;border-radius:12px;border:1px solid rgba(46,166,255,.42);background:linear-gradient(135deg,#2ea6ff4d,#3b82f673);color:var(--app-text-primary);font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.file-input::file-selector-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #02081459}.file-input::file-selector-button:active{transform:translateY(0)}.field-hint{font-size:13px;color:var(--app-text-secondary)}.form-error,.form-success{padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.4}.form-error{background:#f8717124;border:1px solid rgba(248,113,113,.26);color:#fecdd3}.form-success{background:#34d39924;border:1px solid rgba(52,211,153,.26);color:#bbf7d0}.submit-button{width:100%;padding:14px 18px;border-radius:14px;border:1px solid rgba(46,166,255,.42);background:linear-gradient(135deg,#2ea6ff66,#3b82f68f);color:var(--app-text-primary);font-weight:700;font-size:16px;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.submit-button:hover{transform:translateY(-1px);box-shadow:0 16px 32px #02081480}.submit-button:active{transform:translateY(0)}.submit-button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.registration-note{width:100%;padding:14px 16px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#0f172a80;color:var(--app-text-secondary);line-height:1.5}.registration-note p{margin:0}.pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#2ea6ff2e;border:1px solid rgba(46,166,255,.3);color:var(--app-text-primary);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.guest-title{margin:0;font-size:24px;font-weight:700;color:var(--app-text-primary)}.guest-text{margin:0;color:var(--app-text-secondary);line-height:1.5;font-size:16px}.guest-link{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:12px;background:#2ea6ff2e;color:var(--app-text-primary);text-decoration:none;font-weight:600;border:1px solid rgba(46,166,255,.32);transition:transform .14s ease,box-shadow .14s ease,background .14s ease;cursor:pointer}.guest-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px #02081466;background:#2ea6ff38}.guest-link:active{transform:translateY(0)}.profile{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;width:100%}.avatar{width:160px;height:160px;border-radius:50%;border:6px solid rgba(148,163,184,.2);background:linear-gradient(145deg,#121c30e6,#0a101cf2);box-shadow:0 18px 34px #0206128c,inset 0 0 0 1px #ffffff0d;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;font-size:48px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--tg-theme-text-color, #f1f5f9)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar[data-loading=true]:after{content:"";position:absolute;inset:0;background:#0d121e29;animation:avatarPulse 1.6s ease-in-out infinite}@keyframes avatarPulse{0%{opacity:.18}50%{opacity:.38}to{opacity:.18}}.profile-info{display:flex;flex-direction:column;gap:10px;align-items:center}.profile-name{margin:0;font-size:30px;font-weight:700;letter-spacing:.02em;color:var(--app-text-primary)}.profile-subtitle{font-size:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--app-text-secondary)}.profile-username{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#2ea6ff1f;color:var(--app-chip-text);font-size:15px;font-weight:500;letter-spacing:.03em}.info-card{width:100%;padding:16px 18px;border-radius:18px;border:1px solid rgba(148,163,184,.18);background:#0f172a8c;box-shadow:inset 0 0 0 1px #94a3b814}.info-card.clickable{cursor:pointer}.info-card[data-variant=rejected]{border-color:#f8717166;background:#7f1d1d40}.info-title{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--app-text-primary)}.info-text{margin:0;color:var(--app-text-secondary);line-height:1.5}.works{width:100%;display:flex;flex-direction:column;gap:18px}.section-header{display:flex;align-items:center;justify-content:center}.section-title{margin:0;font-size:18px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--app-text-primary)}.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.works-grid[data-disabled=true] .work-card{opacity:.55;pointer-events:none}.work-card{display:flex;align-items:center;justify-content:center;position:relative;height:120px;border-radius:24px;border:1px dashed rgba(148,163,184,.32);background:#0f172a8c;color:var(--app-text-primary);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.work-card--empty:hover,.work-card--empty:focus-visible{transform:translateY(-2px);border-color:#2ea6ff99;background:#0e182ac7;box-shadow:0 16px 30px #02081473;outline:none}.work-card--empty:active{transform:translateY(0)}.plus-icon{font-size:42px;font-weight:300;line-height:1;color:var(--app-text-primary)}.section-hint{margin:0;color:var(--app-text-secondary);text-align:center;font-size:14px}.teacher-panel{display:flex;flex-direction:column;gap:14px}.avatars-row{display:flex;gap:10px;margin-top:4px}.avatar.small{width:52px;height:52px;border-width:3px;font-size:18px}.list-card{width:100%;max-height:360px;padding:12px 14px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#0f172a8c;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.list-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--app-text-secondary);font-size:14px}.student-list,.homework-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.student-row,.homework-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.18);background:#0f172a73;color:var(--app-text-primary)}.student-row{cursor:pointer}.student-row:hover{border-color:#2ea6ff80}.student-name{font-weight:600}.homework-title{font-weight:600;font-size:15px}.homework-meta{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.status{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(148,163,184,.26)}.status.status-pending{border-color:#2ea6ff80;color:#bae6fd}.status.status-approved{border-color:#34d39980;color:#bbf7d0}.status.status-revision,.status.status-rejected{border-color:#f8717180;color:#fecdd3}.text-preview{max-width:220px;color:var(--app-text-secondary);font-size:13px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.link-button{padding:8px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#0f172a99;color:var(--app-text-primary);font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.link-button:hover{transform:translateY(-1px);border-color:#2ea6ff80;box-shadow:0 12px 24px #02081459}.link-button:active{transform:translateY(0)}.form-inline{display:flex;gap:10px;align-items:center;margin-top:8px}.form-inline input{flex:1;padding:12px 14px;border-radius:12px;border:1px solid rgba(148,163,184,.26);background:#0f172a8c;color:var(--app-text-primary)}.submit-button.secondary{border-color:#94a3b859;background:#0f172ab3}.bottom-sheet-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;padding:24px 16px;z-index:999}.bottom-sheet{width:100%;max-width:520px;background:#0e1423f5;border-radius:16px 16px 12px 12px;padding:18px 16px 22px;border:1px solid rgba(148,163,184,.22);box-shadow:0 -10px 30px #0308148c;display:flex;flex-direction:column;gap:12px;max-height:82vh;overflow-y:auto}.sheet-handle{width:50px;height:5px;border-radius:999px;background:#94a3b866;margin:0 auto 6px}.sheet-title{margin:0;font-size:18px;font-weight:700;color:var(--app-text-primary);text-align:center}.sheet-text{margin:0;color:var(--app-text-secondary);text-align:center;line-height:1.5}*{scrollbar-color:rgba(148,163,184,.5) rgba(15,23,42,.6);scrollbar-width:thin}*::-webkit-scrollbar{width:8px}*::-webkit-scrollbar-track{background:#0f172a80;border-radius:999px}*::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#2ea6ff80,#3b82f6a6);border-radius:999px;border:1px solid rgba(12,20,36,.6)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#2ea6ffa6,#3b82f6cc)}.sheet-actions{display:flex;gap:10px;margin-top:10px}.checkbox-field{display:inline-flex;align-items:center;gap:8px;color:var(--app-text-primary);font-weight:600}.loader{width:56px;height:56px;border-radius:50%;border:4px solid rgba(226,232,240,.18);border-top-color:var(--tg-theme-button-color, #38bdf8);animation:loaderSpin .8s linear infinite}@keyframes loaderSpin{to{transform:rotate(360deg)}}@media(max-width:520px){.app{padding:24px 12px 36px}.app-shell{padding:36px 24px 42px;border-radius:32px;gap:38px}.avatar{width:140px;height:140px;border-width:5px;font-size:40px}.profile-name{font-size:26px}.works-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
