/* ---------------------------------------------------
	 WriTeam Theme v2 — розово-фиолетовый стиль
	 Общая цветовая палитра и UI-элементы
--------------------------------------------------- */
:root {
	--accent: #6C63FF;
	--accent2: #FF6584;
	--bg-gradient: linear-gradient(135deg, #6C63FF, #FF6584);
	--bg: #F7F7FA;
	--panel: #FFFFFF;
	--muted: #6B7280;
}
/* ---------------------------------------------------
	 Базовые стили
--------------------------------------------------- */

body {
	background: var(--bg);
	font-family: 'Inter', system-ui, sans-serif;
	color: #222;
	scroll-behavior: smooth;
	height: 100%; /* Устанавливаем высоту документа */
	margin: 0; /* Убираем отступы */
}

body{
	background:var(--bg);
	font-family:'Inter',system-ui,sans-serif;
	color:#222;
}

.text-gradient {
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
}

.wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh; /* Минимальная высота равна высоте экрана */
}

.content {
	flex: 1; /* Занимает всё доступное пространство */
}

footer {
	background-color: #333;
	color: white;
	text-align: center;
	padding: 10px 0;
}

/* ---------------------------------------------------
	 Login
--------------------------------------------------- */

.auth-page {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-gradient);
	background-attachment: fixed;
}
.auth-card {
	background: var(--panel);
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.15);
	padding: 3rem 2.5rem;
	max-width: 420px;
	width: 100%;
	text-align: center;
}
.auth-card h2 {
	font-weight: 700;
	margin-bottom: 1rem;
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
}
.auth-card p {
	color: var(--muted);
	margin-bottom: 2rem;
}
.auth-input {
	border-radius: 12px;
	padding: 0.75rem 1rem;
	border: 1px solid #ddd;
	transition: .3s;
}
.auth-input:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 0.25rem rgba(108, 99, 255, 0.2);
}
.auth-footer {
	margin-top: 2rem;
	color: var(--muted);
	font-size: 0.9rem;
}
.auth-footer a {
	color: var(--accent);
	font-weight: 600;
}
.logo-gradient {
	font-size: 1.6rem;
	font-weight: 800;
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
}

/* ---------------------------------------------------
	 Navbar
--------------------------------------------------- */

.navbar {
	background: var(--panel);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.navbar-brand {
	font-weight: 700;
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
}

.navbar .dropdown-menu {
	background-color: var(--panel);
	border: none;
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
	padding: 0.5rem;
	animation: fadeIn .2s ease-in-out;
}

.navbar .dropdown-item {
	border-radius: 8px;
	color: var(--text);
	font-weight: 500;
	transition: .3s;
}

.navbar .dropdown-item:hover {
	background: rgba(108, 99, 255, 0.1);
	color: var(--accent);
}

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(-5px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ---------------------------------------------------
	 Cards & Panels
--------------------------------------------------- */
.entity-header {
	background: var(--bg-gradient);
	color: #fff;
	padding: 4rem 0 6rem;
	text-align: center;
	position: relative;
	border-radius: 0 0 60px 60px;
	box-shadow: 0 8px 24px rgba(108, 99, 255, 0.4);
}

.table-header {
	background:var(--bg-gradient);
	color:#fff;
	padding:4rem 0 6rem;
	text-align:center;
	border-radius:0 0 60px 60px;
	box-shadow:0 8px 24px rgba(108, 99, 255, 0.4);
}

.entity-body {
	background: var(--panel);
	border: none;
	border-radius: 20px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	margin-top:-80px;
	transition: 0.3s;
	position:relative;
	/*z-index:10;*/
	padding:2.5rem 1.5rem;
}

.card-body {
	background: var(--panel);
	border: none;
	border-radius: 20px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	margin-top:-80px;
	transition: 0.3s;
	position:relative;
	/*z-index:10;*/
	padding:2.5rem 1.5rem;
}

.card-item {
	background: var(--panel);
	border: none;
	border-radius: 20px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	/*margin-top:-80px;*/
	transition: 0.3s;
	position:relative;
	/*z-index:10;*/
	padding:2.5rem 1.5rem;
}

.card-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 26px rgba(108, 99, 255, 0.15);
}

.table-card {
	background:var(--panel);
	border:none;
	border-radius:20px;
	box-shadow:0 4px 20px rgba(0,0,0,0.08);
	margin-top:-80px;
	position:relative;
	z-index:10;
	padding:2.5rem 1.5rem;
}

.table thead {
	background: rgba(108, 99, 255, 0.08);
}

.table th {
	font-weight: 600;
}

/* ---------------------------------------------------
	 Text
--------------------------------------------------- */

.text-cover-thumb {
	width: 300px !important;
	height: 300px !important;
	object-fit: cover;
	border-radius: 6px;
	box-shadow: 3px 6px 20px rgba(0,0,0,0.18);
	float: left;
	margin: 4px 1.5rem 1rem 0;
	transition: transform .15s;
	display: block;
	cursor: pointer;
}
.text-cover-thumb:hover {
	transform: scale(1.04);
}

/* ---------------------------------------------------
	 Project
--------------------------------------------------- */

.entity-body.project {
	margin-top:-80px;
	position:relative;
	/*z-index:10;*/
}

.story-text {
	line-height: 1.8;
	color: #333;
	font-size: 1.05rem;
}

.project-cover-thumb {
	width: 150px !important;
	height: 150px !important;
	object-fit: cover;
	border-radius: 6px;
	box-shadow: 3px 6px 20px rgba(0,0,0,0.18);
	float: left;
	margin: 4px 1.5rem 1rem 0;
	transition: transform .15s;
	display: block;
	cursor: pointer;
}
.project-cover-thumb:hover {
	transform: scale(1.04);
}
/* ---------------------------------------------------
	 Contest
--------------------------------------------------- */

.entity-body.contest {
	margin-top:-80px;
	position:relative;
	/*z-index:10;*/
}

.contest-status {
	display: inline-block;
	background: rgba(108, 99, 255, 0.1);
	color: var(--accent);
	border-radius: 12px;
	padding: 4px 10px;
	font-size: 0.85rem;
	font-weight: 500;
}

.contest-cover-thumb {
	width: 150px !important;
	height: 150px !important;
	object-fit: cover;
	border-radius: 6px;
	box-shadow: 3px 6px 20px rgba(0,0,0,0.18);
	float: left;
	margin: 4px 1.5rem 1rem 0;
	transition: transform .15s;
	display: block;
	cursor: pointer;
}
.contest-cover-thumb:hover {
	transform: scale(1.04);
}

/* ---------------------------------------------------
	 Profile elements
--------------------------------------------------- */


.author-info,
.profile-info {
	background: rgba(108, 99, 255, 0.05);
	border-radius: 16px;
	padding: 1rem 1.5rem;
}


.profile-avatar{
	width:120px;
	height:120px;
	border-radius:50%;
	border:4px solid #fff;
	box-shadow:0 4px 20px rgba(0,0,0,0.1);
}

.profile-avatar {
	border-radius: 50%;
	border: 4px solid #fff;
	box-shadow: 0 0 0 4px rgba(108, 99, 255, 0.3);
}

.profile-stats {
	display: flex;
	gap: 1.5rem;
	justify-content: center;
}

.profile-stats .stat {
	text-align: center;
}

.profile-stats .stat h6 {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--accent);
}

.text-muted.small {
	line-height: 1.4;
	min-height: calc(1.4em * 3);
}

/* ---------------------------------------------------
	 Buttons
--------------------------------------------------- */

.btn {
	border: none;
}

.btn-primary,
.btn-accent {
	background: var(--accent);
	color: #fff;
	font-weight: 600;
	transition: 0.3s;
}
.btn-primary:hover,
.btn-accent:hover {
	background: #4439f1;
	color: #fff;
}

.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active {
	background-color: #4439f1;
}

.btn-outline-accent {
	border: 2px solid var(--accent);
	color: var(--accent);
	font-weight: 600;
	transition: 0.3s;
}

.btn-outline-accent:hover {
	background: var(--accent);
	color: #fff;
}

.btn.disabled {
	border: none;
}

/* ---------------------------------------------------
	 File Upload zone
--------------------------------------------------- */

.dropzone{
    min-height:50px;
    border:1px solid #f1f1f1;
    background:#f4f7fa;
    padding: 20px;
    box-shadow: none;
}
.dropzone.dz-clickable .dz-message{
    cursor:pointer;
    text-align:center;
    margin: 1em 0;
}
.dz-message span{
    font-size: 18px;
}

/* ---------------------------------------------------
	 Text utilities
--------------------------------------------------- */

.meta-muted {
	color: var(--muted);
	font-size: 0.9rem;
}

.section-title {
	border-left: 4px solid var(--accent);
	padding-left: 10px;
	font-weight: 600;
	margin-top: 2.5rem;
	margin-bottom: 1.2rem;
}

/* ---------------------------------------------------
	 Tags, badges, pills
--------------------------------------------------- */

.tag {
	background: rgba(108, 99, 255, 0.1);
	color: var(--accent);
	border-radius: 20px;
	padding: 4px 10px 6px 10px;
	font-size: 0.85rem;
}


/* ---------------------------------------------------
	 Comments
--------------------------------------------------- */

.comment {
	background: var(--panel);
	border-radius: 12px;
	padding: 1rem 1.2rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.spinner-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: rgba(0, 0, 0, 0.5);
	z-index: 2000;
}

/* Чтобы модалка не затенялась сама */
.modal {
	z-index: 2000 !important;
}

.modal-backdrop {
	z-index: 1990 !important;
}

.modal-backdrop.show {
	opacity: 0.4 !important;
}

/* ---------------------------------------------------
	 Footer
--------------------------------------------------- */

footer {
	background: var(--bg-gradient);
	color: #fff;
	padding: 2rem 0;
	border-radius: 60px 60px 0 0;
	margin-top: 4rem;
}

footer p {
	margin-bottom: 0;
}


/* ---------------------------------------------------
	 Animations / Interactions
--------------------------------------------------- */

a {
	text-decoration: none;
	color: var(--accent);
	transition: 0.3s;
}

a:hover {
	color: var(--accent2);
}

.btn, .card-item, .panel, .navbar {
	transition: all 0.3s ease;
}

/* ---------------------------------------------------
	 Contest Submission Page
--------------------------------------------------- */

.submit-page {
	min-height: 100vh;
	background: var(--bg-gradient);
	background-attachment: fixed;
	padding: 4rem 1rem;
	display: flex;
	justify-content: center;
	align-items: flex-start;
}

.submit-card {
	background: var(--panel);
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.15);
	padding: 3rem;
	max-width: 800px;
	width: 100%;
}

.submit-card h2 {
	font-weight: 700;
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
	margin-bottom: 1rem;
}

.submit-card p {
	color: var(--muted);
	margin-bottom: 2rem;
}

.file-drop {
	border: 2px dashed var(--accent-light);
	border-radius: 16px;
	padding: 2rem;
	text-align: center;
	color: var(--muted);
	cursor: pointer;
	transition: .3s;
}

.file-drop:hover {
	background: rgba(108, 99, 255, 0.05);
}

.file-drop i {
	font-size: 2rem;
	color: var(--accent);
	margin-bottom: .5rem;
}

/* ---------------------------------------------------
	 Event Page
--------------------------------------------------- */

.event-section-title {
	background: var(--bg-gradient);
	color: #fff;
	padding: 6rem 1rem 5rem;
	text-align: center;
	border-bottom-left-radius: 60px;
	border-bottom-right-radius: 60px;
}

.event-section-title h1 {
	font-weight: 800;
	font-size: 2.8rem;
	margin-bottom: 1rem;
}

.event-meta {
	font-size: 1.1rem;
	opacity: 0.9;
}

.event-section {
	max-width: 900px;
	margin: 3rem auto;
	background: var(--panel);
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.1);
	padding: 2.5rem;
}

.event-section h3 {
	font-weight: 700;
	margin-bottom: 1.5rem;
	background: var(--bg-gradient);
	-webkit-background-clip: text;
	color: transparent;
}

.speaker-card {
	text-align: center;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 5px 15px rgba(0,0,0,0.08);
	padding:2.5rem 1.5rem;
	transition: .3s;
}

.speaker-card:hover {
	transform: translateY(-5px);
}

.speaker-card img {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 1rem;
}

.event-schedule-item {
	display: flex;
	align-items: flex-start;
	margin-bottom: 1rem;
}

.event-schedule-item i {
	color: var(--accent);
	font-size: 1.2rem;
	margin-right: 1rem;
}

.event-location {
	font-size: 1.1rem;
	background: rgba(255,255,255,0.5);
	border-radius: 12px;
	padding: 1rem;
	color: #333;
}

.event-cover-thumb {
	width: 150px !important;
	height: 150px !important;
	object-fit: cover;
	border-radius: 6px;
	box-shadow: 3px 6px 20px rgba(0,0,0,0.18);
	float: left;
	margin: 4px 1.5rem 1rem 0;
	transition: transform .15s;
	display: block;
	cursor: pointer;
}
.event-cover-thumb:hover {
	transform: scale(1.04);
}
/**  =====================
      Radio & Checked css start
==========================  **/
.checkbox {
  padding: 10px 0;
  min-height: auto;
  position: relative;
  margin-right: 5px;
}
.checkbox input[type=checkbox] {
  margin: 0;
  display: none;
  width: 22px;
}
.checkbox input[type=checkbox] + .cr {
  padding-left: 0;
}
.checkbox input[type=checkbox] + .cr:before {
  content: "\F633";
  width: 23px;
  height: 23px;
  display: inline-block;
  margin-right: 0px;
  border: 1px solid #ced4da;
  border-radius: 3px;
  font-size: 15px;
  font-family: 'bootstrap-icons';
  font-weight: 400;
  line-height: 19px;
  vertical-align: bottom;
  text-align: center;
  background: #ffffff;
  color: transparent;
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.checkbox input[type=checkbox]:checked + .cr:before {
  background: #1dd5d2;
  border-color: #1dd5d2;
  color: #ffffff;
}
.checkbox input[type=checkbox].disabled + .cr, .checkbox input[type=checkbox]:disabled + .cr {
  opacity: 0.5;
}
.checkbox input[type=checkbox].disabled + .cr:before, .checkbox input[type=checkbox]:disabled + .cr:before {
  cursor: not-allowed;
}
.checkbox.checkbox-fill input[type=checkbox] + .cr:after {
  content: "\F633";
  width: 22.5px;
  height: 22.5px;
  display: inline-block;
  margin-right: 10px;
  border: 2px solid #e9eaec;
  border-radius: 2px;
  vertical-align: bottom;
  text-align: center;
  background: transparent;
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  position: absolute;
  top: 8.5px;
  left: 3px;
}
.checkbox.checkbox-fill input[type=checkbox] + .cr:before {
  opacity: 0;
  content: "\F633";
  font-size: 27px;
  background: transparent;
}
.checkbox.checkbox-fill input[type=checkbox]:checked + .cr:after {
  opacity: 0;
}
.checkbox.checkbox-fill input[type=checkbox]:checked + .cr:before {
  opacity: 1;
  background: transparent;
  color: #1dd5d2;
  border-color: transparent;
}
.checkbox.checkbox-accent input[type=checkbox]:checked + .cr:before {
  background: var(--accent);
  border-color: var(--accent);
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-accent input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: var(--accent);
  border-color: transparent;
}
.checkbox.checkbox-primary input[type=checkbox]:checked + .cr:before {
  background: #04a9f5;
  border-color: #04a9f5;
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-primary input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: #04a9f5;
  border-color: transparent;
}
.checkbox.checkbox-danger input[type=checkbox]:checked + .cr:before {
  background: #f44236;
  border-color: #f44236;
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-danger input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: #f44236;
  border-color: transparent;
}
.checkbox.checkbox-success input[type=checkbox]:checked + .cr:before {
  background: #1de9b6;
  border-color: #1de9b6;
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-success input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: #1de9b6;
  border-color: transparent;
}
.checkbox.checkbox-warning input[type=checkbox]:checked + .cr:before {
  background: #f4c22b;
  border-color: #f4c22b;
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-warning input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: #f4c22b;
  border-color: transparent;
}
.checkbox.checkbox-info input[type=checkbox]:checked + .cr:before {
  background: #3ebfea;
  border-color: #3ebfea;
  color: #ffffff;
}
.checkbox.checkbox-fill.checkbox-info input[type=checkbox]:checked + .cr:before {
  background: transparent;
  color: #3ebfea;
  border-color: transparent;
}
.checkbox .cr {
  cursor: pointer;
}

.radio {
  padding: 10px 0;
  min-height: auto;
  position: relative;
  margin-right: 5px;
}
.radio input[type=radio] {
  margin: 0;
  display: none;
  width: 22px;
}
.radio input[type=radio] + .cr {
  padding-left: 0;
}
.radio input[type=radio] + .cr:after, .radio input[type=radio] + .cr:before {
  content: "";
  display: inline-block;
  margin-right: 10px;
  border-radius: 50%;
  vertical-align: bottom;
  background: #fff;
  color: transparent;
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.radio input[type=radio] + .cr:before {
  width: 22px;
  height: 22px;
  border: 2px solid #e9eaec;
}
.radio input[type=radio] + .cr:after {
  width: 12px;
  height: 12px;
  position: absolute;
  top: 13px;
  left: 5px;
}
.radio input[type=radio]:checked + .cr:before {
  border-color: #1dd5d2;
}
.radio input[type=radio]:checked + .cr:after {
  background: linear-gradient(-135deg, #1de9b6 0%, #1dc4e9 100%);
}
.radio input[type=radio]:disabled + .cr {
  opacity: 0.5;
  cursor: not-allowed;
}
.radio input[type=radio]:disabled + .cr:after, .radio input[type=radio]:disabled + .cr:before {
  cursor: not-allowed;
}
.radio.radio-fill input[type=radio] + .cr:after {
  width: 18px;
  height: 18px;
  top: 10px;
  left: 2px;
}
.radio.radio-accent input[type=radio]:checked + .cr:before {
  border-color: var(--accent);
}
.radio.radio-accent input[type=radio]:checked + .cr:after {
  background: var(--accent);
}
.radio.radio-primary input[type=radio]:checked + .cr:before {
  border-color: #04a9f5;
}
.radio.radio-primary input[type=radio]:checked + .cr:after {
  background: #04a9f5;
}
.radio.radio-danger input[type=radio]:checked + .cr:before {
  border-color: #f44236;
}
.radio.radio-danger input[type=radio]:checked + .cr:after {
  background: #f44236;
}
.radio.radio-success input[type=radio]:checked + .cr:before {
  border-color: #1de9b6;
}
.radio.radio-success input[type=radio]:checked + .cr:after {
  background: #1de9b6;
}
.radio.radio-warning input[type=radio]:checked + .cr:before {
  border-color: #f4c22b;
}
.radio.radio-warning input[type=radio]:checked + .cr:after {
  background: #f4c22b;
}
.radio.radio-info input[type=radio]:checked + .cr:before {
  border-color: #3ebfea;
}
.radio.radio-info input[type=radio]:checked + .cr:after {
  background: #3ebfea;
}
.radio .cr {
  cursor: pointer;
}

@-moz-document url-prefix() {
  .radio input[type="radio"] + .cr::after {
    top: 14px;
  }
}
.custom-controls-stacked .radio input[type=radio] + .cr:after {
  top: 15px;
}

/**====== Radio & Checked css end ======**/

/*====== Font-size css starts ======*/
.f-10 {
  font-size: 10px;
}

.f-12 {
  font-size: 12px;
}

.f-14 {
  font-size: 14px;
}

.f-16 {
  font-size: 16px;
}

.f-18 {
  font-size: 18px;
}

.f-20 {
  font-size: 20px;
}

.f-22 {
  font-size: 22px;
}

.f-24 {
  font-size: 24px;
}

.f-26 {
  font-size: 26px;
}

.f-28 {
  font-size: 28px;
}

.f-30 {
  font-size: 30px;
}

.f-32 {
  font-size: 32px;
}

.f-34 {
  font-size: 34px;
}

.f-36 {
  font-size: 36px;
}

.f-38 {
  font-size: 38px;
}

.f-40 {
  font-size: 40px;
}

.f-42 {
  font-size: 42px;
}

.f-44 {
  font-size: 44px;
}

.f-46 {
  font-size: 46px;
}

.f-48 {
  font-size: 48px;
}

.f-50 {
  font-size: 50px;
}

.f-52 {
  font-size: 52px;
}

.f-54 {
  font-size: 54px;
}

.f-56 {
  font-size: 56px;
}

.f-58 {
  font-size: 58px;
}

.f-60 {
  font-size: 60px;
}

.f-62 {
  font-size: 62px;
}

.f-64 {
  font-size: 64px;
}

.f-66 {
  font-size: 66px;
}

.f-68 {
  font-size: 68px;
}

.f-70 {
  font-size: 70px;
}

.f-72 {
  font-size: 72px;
}

.f-74 {
  font-size: 74px;
}

.f-76 {
  font-size: 76px;
}

.f-78 {
  font-size: 78px;
}

.f-80 {
  font-size: 80px;
}

/*====== Font-size css ends ======*/
/*====== Font-weight css starts ======*/
.f-w-100 {
  font-weight: 100;
}

.f-w-200 {
  font-weight: 200;
}

.f-w-300 {
  font-weight: 300;
}

.f-w-400 {
  font-weight: 400;
}

.f-w-500 {
  font-weight: 500;
}

.f-w-600 {
  font-weight: 600;
}

.f-w-700 {
  font-weight: 700;
}

.f-w-800 {
  font-weight: 800;
}

.f-w-900 {
  font-weight: 900;
}

/*====== Font-weight css ends ======*/