:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef4fb;color:#172033;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #0f67e9;--blue-dark: #0c55c4;--blue-soft: #eaf2ff;--green: #218a3d;--green-soft: #e8f7ea;--yellow: #a56509;--yellow-soft: #fff2d8;--red: #e33737;--red-soft: #fff0f0;--text: #172033;--muted: #647086;--line: #dce4ef;--panel: #ffffff;--page-pad: clamp(18px, 2.2vw, 36px);--radius: 8px;--shadow: 0 16px 38px rgba(31, 45, 70, .09)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}#root{min-height:100vh;overflow-x:hidden}.center-screen{display:grid;min-height:100vh;place-items:center;color:var(--muted)}.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh;background:linear-gradient(180deg,#fffc,#f6f9fdeb),#eef4fb}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;border-right:1px solid var(--line);background:#ffffffdb;padding:32px 24px 28px}.sidebar-brand{display:inline-grid;grid-template-columns:56px 2px minmax(0,1fr);gap:14px;align-items:center;color:#111827;text-decoration:none}.sidebar-brand:hover,.institute-brand:hover{opacity:.86}.sidebar-brand:focus-visible,.institute-brand:focus-visible{border-radius:8px;outline:3px solid rgba(47,107,231,.28);outline-offset:8px}.sidebar-brand-mark{display:block;width:56px;height:auto}.sidebar-brand-divider{width:2px;height:52px;background:#111827}.sidebar-brand-text strong{display:block;font-size:15px;font-weight:850;letter-spacing:0;line-height:1.08}.sidebar-nav{display:grid;gap:10px;margin-top:56px}.sidebar-nav a{display:flex;align-items:center;gap:14px;min-height:58px;border-radius:var(--radius);color:#273347;font-weight:650;padding:0 18px}.sidebar-nav a.active{background:var(--blue-soft);color:var(--blue)}.sidebar-nav a.dashboard-nav-link{background:#f8f2e7;color:#7d6440}.sidebar-nav a.dashboard-nav-link.active{background:#f3e7d3;color:#6f5631}.nav-link-label{display:grid;gap:2px;line-height:1.1}.nav-link-label small{color:currentColor;font-size:12px;font-weight:750;opacity:.76}.copyright{margin-top:auto;color:var(--muted);font-size:14px}.workspace{min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;min-height:86px;align-items:center;justify-content:flex-end;gap:20px;border-bottom:1px solid var(--line);background:#ffffffe6;padding:0 var(--page-pad);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-actions{display:flex;align-items:center;gap:12px}.user-chip{display:flex;align-items:center;gap:12px;min-width:0;border-radius:var(--radius);border-left:1px solid var(--line);padding:6px 8px 6px 16px}.user-chip:hover{background:#f4f8fd}.user-chip:focus-visible{outline:3px solid rgba(15,103,233,.16);outline-offset:3px}.user-chip span,.user-chip strong{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip strong{color:var(--muted);font-size:13px;font-weight:650}.avatar{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:999px;background:linear-gradient(135deg,#e5efff,#c6dbff);color:var(--blue);font-weight:800}.content{padding:var(--page-pad)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:28px}.page-header h1{margin:0;font-size:clamp(30px,3vw,42px);line-height:1.1}.page-header p{margin:10px 0 0;color:var(--muted);font-size:17px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;font-weight:750;line-height:1;padding:0 18px;transition:border-color .18s ease,background .18s ease,color .18s ease,opacity .18s ease}.button:disabled{cursor:not-allowed;opacity:.48}.button-primary{background:var(--blue);color:#fff}.button-primary:hover:not(:disabled){background:var(--blue-dark)}.button-secondary{border-color:var(--line);background:#fff;color:var(--text)}.button-danger{background:var(--red);color:#fff}.button-ghost{background:transparent;color:var(--text)}.full-width{width:100%}.icon-button{position:relative;width:40px;min-height:40px;padding:0}.disabled-control{background:#f2f5fa}.danger-icon{color:var(--red)}.notification-dot{position:absolute;top:3px;right:2px;display:grid;min-width:19px;height:19px;place-items:center;border-radius:999px;background:var(--blue);color:#fff;font-size:12px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:18px;margin-bottom:22px}.stat-card{display:flex;min-height:104px;align-items:center;gap:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:20px}.stat-icon{display:grid;width:52px;height:52px;flex:0 0 auto;place-items:center;border-radius:999px;background:var(--blue-soft);color:var(--blue)}.stat-card p{margin:0;color:#273347}.stat-card strong{display:block;margin-top:4px;color:var(--blue);font-size:30px;line-height:1}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dashboard-panel{display:grid;align-content:start;gap:18px;padding:24px}.dashboard-panel h2{margin:0;font-size:22px}.dashboard-rows{display:grid;gap:12px}.dashboard-row{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px}.dashboard-row:last-child{border-bottom:0;padding-bottom:0}.dashboard-row span{color:var(--muted)}.dashboard-row strong{color:var(--text);font-weight:800;text-align:right}.filters{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(3,minmax(180px,.7fr)) auto;gap:14px;margin-bottom:22px;padding:18px}.filters input,.filters select,.form-field input,.form-field select,.profile-edit-field input{width:100%;height:48px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);line-height:48px;padding:0 14px}.filters select,.form-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#647086 50%),linear-gradient(135deg,#647086 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:42px}.filters input:focus,.filters select:focus,.form-field input:focus,.form-field select:focus,.profile-edit-field input:focus{border-color:var(--blue);outline:3px solid rgba(15,103,233,.12)}.input-with-icon{position:relative}.input-with-icon svg{position:absolute;top:50%;left:14px;color:#78859a;transform:translateY(-50%)}.input-with-icon input{padding-left:46px}.table-wrap{overflow-x:auto}.data-table{width:100%;min-width:780px;border-collapse:collapse}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:13px 18px;text-align:left;vertical-align:middle}.data-table th{color:#1f2a3d;font-size:14px;font-weight:800}.data-table tr:last-child td{border-bottom:0}.data-table tr.selected-row td{background:#edf5ff}.data-table tr.clickable-row{cursor:pointer}.data-table tr.clickable-row:hover td,.data-table tr.clickable-row:focus-visible td{background:#f6faff}.data-table tr.selected-row:hover td,.data-table tr.selected-row:focus-visible td{background:#edf5ff}.data-table tr.clickable-row:focus-visible{outline:3px solid rgba(15,103,233,.18);outline-offset:-3px}.table-actions{display:flex;gap:8px}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);color:var(--muted);padding:16px 20px}.panel-footer{margin-top:-1px;border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:#fff;box-shadow:var(--shadow)}.pagination{display:flex;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:6px}.pagination button{min-width:36px;min-height:36px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;cursor:pointer;color:var(--text);font-weight:700}.pagination button.active{border-color:var(--blue);background:var(--blue);color:#fff}.pagination-ellipsis{display:grid;min-width:24px;min-height:36px;place-items:center;color:var(--muted);font-weight:750}.badge{display:inline-flex;align-items:center;min-height:26px;border-radius:var(--radius);font-size:13px;font-weight:750;padding:0 10px}.groups-manager-page .page-header,.employees-manager-page .page-header{margin-bottom:18px}.groups-manager-page,.employees-manager-page{margin-top:-12px;margin-bottom:-40px}.groups-manager-page .page-header h1,.employees-manager-page .page-header h1{font-size:clamp(30px,2.7vw,38px)}.groups-manager-page .page-header p,.employees-manager-page .page-header p{margin-top:8px;font-size:16px}.groups-manager-page .button,.employees-manager-page .button{min-height:40px;padding-right:14px;padding-left:14px}.groups-manager-page .stats-grid,.employees-manager-page .stats-grid{gap:14px;margin-bottom:16px}.groups-manager-page .stat-card,.employees-manager-page .stat-card{min-height:84px;gap:14px;padding:14px 18px}.groups-manager-page .stat-icon,.employees-manager-page .stat-icon{width:46px;height:46px}.groups-manager-page .stat-card p,.employees-manager-page .stat-card p{font-size:14px}.groups-manager-page .stat-card strong,.employees-manager-page .stat-card strong{font-size:26px}.groups-manager-page .filters,.employees-manager-page .filters{gap:12px;margin-bottom:16px;padding:14px}.groups-manager-page .filters input,.groups-manager-page .filters select,.employees-manager-page .filters input,.employees-manager-page .filters select{height:44px;line-height:44px}.groups-manager-page .filters select,.employees-manager-page .filters select{background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px}.groups-manager-page .data-table th,.groups-manager-page .data-table td,.employees-manager-page .data-table th,.employees-manager-page .data-table td,.employees-table th,.employees-table td{padding:14px 16px}.groups-manager-page .data-table th,.employees-manager-page .data-table th,.employees-table th{font-size:14px}.groups-manager-page .data-table td,.employees-manager-page .data-table td,.employees-table td{font-size:15px;line-height:1.25}.groups-table{min-width:1180px;table-layout:fixed}.groups-table-name-col{width:16%}.groups-table-hours-col{width:13%}.groups-table-disciplines-col{width:17%}.groups-table-semester-col{width:11%}.groups-table-employee-col{width:16%}.groups-table-status-col{width:18%}.groups-table-actions-col{width:9%}.groups-table-basic .groups-table-name-col{width:30%}.groups-table-basic .groups-table-hours-col{width:18%}.groups-table-basic .groups-table-disciplines-col{width:22%}.groups-table-basic .groups-table-semester-col,.groups-table-basic .groups-table-status-col{width:15%}.employees-table{min-width:980px;table-layout:fixed}.employees-table-name-col{width:18%}.employees-table-email-col{width:25%}.employees-table-phone-col,.employees-table-role-col{width:16%}.employees-table-groups-col{width:11%}.employees-table-actions-col{width:14%}.data-table .group-metric-cell,.data-table .group-centered-cell{text-align:center}.data-table .group-actions-cell .table-actions{justify-content:center}.employees-table .employee-centered-cell{text-align:center}.employees-table .employee-actions-cell .table-actions{justify-content:center}.groups-manager-page .table-actions,.employees-manager-page .table-actions,.employees-table .table-actions{gap:6px}.groups-manager-page .icon-button,.employees-manager-page .icon-button,.employees-table .icon-button{width:44px;min-height:44px}.groups-manager-page .icon-button svg,.employees-manager-page .icon-button svg,.employees-table .icon-button svg{width:18px;height:18px}.groups-manager-page .badge,.employees-manager-page .badge,.employees-table .badge{min-height:24px;font-size:13px;padding-right:10px;padding-left:10px}.employees-table .badge.employee-groups-count{min-width:44px;min-height:44px;font-size:16px;font-weight:850;justify-content:center}.employees-manager-page .table-footer{padding:12px 32px 12px 16px}.groups-manager-page .table-footer{padding:12px 22px 12px 16px}.employees-manager-page .employees-table-footer{padding-right:64px}.groups-manager-page .pagination button,.employees-manager-page .pagination button,.employees-table-footer .pagination button{min-width:34px;min-height:34px}.groups-manager-page .pagination-ellipsis,.employees-manager-page .pagination-ellipsis,.employees-table-footer .pagination-ellipsis{min-height:34px}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-yellow{background:var(--yellow-soft);color:var(--yellow)}.badge-purple{background:#f0eafa;color:#6f4bb5}.badge-red{background:#f9e8e8;color:#b14545}.badge-muted{background:#eef2f6;color:#596377}.form-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:26px}.form-panel{display:grid;gap:22px;padding:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px}.form-field{display:grid;gap:9px;color:#263247;font-weight:650}.form-field em{color:var(--red);font-style:normal}.field-error{color:var(--red);font-weight:600}.help-panel{padding:28px}.help-panel h2{display:flex;align-items:center;gap:9px;margin:0 0 16px;font-size:20px}.help-panel p,.muted{color:var(--muted);line-height:1.6}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.form-actions.compact{margin-top:0}.alert{border-radius:var(--radius);margin-bottom:18px;padding:14px 16px}.alert-error{background:var(--red-soft);color:#9a1f1f}.alert-info{background:var(--blue-soft);color:var(--blue-dark)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#16203257;padding:22px}.modal{width:min(560px,100%);border-radius:var(--radius);background:#fff;box-shadow:0 26px 80px #141f3238;padding:26px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.modal-header h2{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:26px}.modal-actions.centered{justify-content:center}.success-icon{display:grid;place-items:center;color:var(--green);margin:10px 0}.copied-message{color:var(--green);font-weight:700}.temporary-password{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #c9dbff;border-radius:var(--radius);background:#f8fbff;color:var(--blue);font-size:28px;font-weight:850;padding:18px;word-break:break-all}.empty-state{display:grid;min-height:240px;place-items:center;padding:34px;text-align:center}.empty-state h3{margin:0}.empty-state p{max-width:420px;color:var(--muted)}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(0,.72fr) minmax(0,1fr);background:#eef4fb;overflow-x:hidden}.login-hero{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:38px;background:linear-gradient(180deg,#ffffffd1,#e5efffe6),#f4f8fd;padding:clamp(32px,6vw,84px);overflow:hidden}.login-hero .brand,.login-copy,.login-features{width:min(100%,780px);min-width:0}.institute-brand{display:inline-grid;grid-template-columns:86px 2px auto;gap:20px;align-items:center;color:#111827;text-decoration:none}.institute-mark{width:86px;height:auto;display:block}.institute-divider{width:2px;height:72px;background:#111827}.institute-name{display:block;font-size:18px;font-weight:850;letter-spacing:0;line-height:1.08}.login-hero h1{margin:0;font-size:clamp(30px,2.65vw,40px);line-height:1.18;max-width:100%}.login-hero p{max-width:640px;margin:18px 0 0;color:var(--muted);font-size:18px;line-height:1.55}.login-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;padding-top:4px}.login-feature{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center}.login-feature span{display:grid;width:44px;height:44px;place-items:center;border-radius:999px;background:var(--blue-soft);color:var(--blue)}.login-feature strong{display:block;line-height:1.25}.login-feature p{margin:4px 0 0;color:var(--muted);font-size:16px;line-height:1.45}.login-form-area{display:grid;min-width:0;place-items:center;padding:32px}.login-card{width:min(560px,100%);padding:clamp(28px,5vw,54px)}.login-card h2{margin:0;text-align:center;font-size:30px}.login-card>p{margin:12px 0 32px;color:var(--muted);text-align:center}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 22px}.login-options label{display:inline-flex;align-items:center;gap:8px}.stub-link{color:#8a96aa;cursor:not-allowed}.profile-grid{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:28px}.profile-card{display:grid;align-content:start;gap:18px;padding:28px;text-align:center}.profile-avatar{display:grid;width:118px;height:118px;place-items:center;justify-self:center;border-radius:999px;background:linear-gradient(135deg,#e5efff,#c4d9ff);color:var(--blue);font-size:42px;font-weight:850}.profile-card h2{margin:0 0 12px}.profile-meta{display:grid;gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;text-align:left}.profile-meta span{color:var(--muted);font-size:14px}.profile-meta strong{margin-bottom:8px}.profile-details{display:grid;gap:20px}.readonly-list{display:grid;gap:14px;padding:28px}.readonly-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:center}.readonly-row span{color:var(--muted)}.readonly-row strong{min-height:44px;border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc;font-weight:650;padding:12px 14px}.profile-edit-field{display:grid;gap:7px}.profile-edit-field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.profile-edit-field em{color:var(--red);font-style:normal}.permissions{display:grid;gap:12px;padding:24px}.permission-item{display:flex;align-items:center;gap:12px}.permission-item.ok:before,.permission-item.no:before{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:999px;font-weight:850}.permission-item.ok:before{content:"✓";background:var(--blue-soft);color:var(--blue)}.permission-item.no:before{content:"–";background:#eef2f6;color:var(--muted)}.profile-lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:20px}.assigned-group{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.my-groups-layout{display:grid;gap:20px}.selected-group-panel{padding:22px 24px}.selected-group-panel h2{margin:0 0 12px;font-size:22px}.selected-group-panel .alert{margin-bottom:15px;padding:12px 15px}.selected-group-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.selected-group-panel .form-field{gap:8px}.selected-group-panel .form-actions{margin-top:19px}.selected-group-summary span{display:block;color:var(--muted);margin-bottom:6px}@media(min-width:2000px){.login-hero h1{white-space:nowrap}}@media(min-width:1800px){.content{max-width:1640px}.data-table th,.data-table td{padding-top:22px;padding-bottom:22px}}@media(max-width:1600px){.login-page{grid-template-columns:minmax(0,.78fr) minmax(0,1fr)}.login-hero{align-items:flex-start;padding:clamp(40px,5vw,68px)}.login-hero .brand,.login-copy,.login-features{width:min(100%,660px)}.login-hero h1{font-size:clamp(30px,2.25vw,36px)}.login-hero p{max-width:560px}.login-card{width:min(500px,100%)}}@media(max-width:1180px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.sidebar{padding:24px 16px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-shell,.dashboard-grid,.profile-grid,.profile-lower-grid{grid-template-columns:1fr}.help-panel{order:-1}.login-features{grid-template-columns:1fr}.login-hero h1{white-space:normal}}@media(max-width:860px){.app-shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar-nav{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}.sidebar-nav a{justify-content:center;min-height:48px;padding:0 10px}.copyright{display:none}.topbar{min-height:72px;justify-content:flex-end}.login-page{grid-template-columns:1fr}.login-hero{display:none}.filters,.form-grid,.selected-group-summary{grid-template-columns:1fr}}@media(max-width:1280px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-form-area{min-height:100vh}}@media(max-width:620px){.sidebar-brand{grid-template-columns:46px 2px minmax(0,1fr);gap:12px}.sidebar-brand-mark{width:46px}.sidebar-brand-divider{height:44px}.sidebar-brand-text strong{font-size:14px}.sidebar-nav{grid-template-columns:1fr}.page-header,.form-actions,.table-footer,.modal-actions{align-items:stretch;flex-direction:column}.page-header .button,.form-actions .button,.modal-actions .button{width:100%}.stats-grid{grid-template-columns:1fr}.user-chip div:not(.avatar),.user-chip svg{display:none}.readonly-row{grid-template-columns:1fr}}
