/* ═══════════════════════════════════════
   СпортКалендарь — Pages
   Glass-unified styles
   ═══════════════════════════════════════ */

/* ═══ LOGIN PAGE ═══ */
.login-page{
  display:flex;min-height:100dvh;width:100%;
  font-family:var(--font-family);
  background:var(--background);color:var(--foreground);
}
.login-form-section{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:2rem;
}
.login-form-container{width:100%;max-width:420px}
.login-form-content{display:flex;flex-direction:column;gap:1.5rem}
.login-title{
  font-size:var(--font-3xl);font-weight:600;
  line-height:1.15;letter-spacing:-.03em;
}
.login-title-light{font-weight:300;color:var(--foreground)}
.login-description{color:var(--muted-foreground);font-size:var(--font-base);line-height:1.6}

/* Glass input wrappers */
.login-form .form-field{margin-bottom:1.25rem}
.login-form .form-field label{
  display:block;font-size:var(--font-sm);font-weight:500;
  color:var(--muted-foreground);margin-bottom:.375rem;
}
.glass-input{
  border-radius:var(--radius-2xl);
  border:1px solid var(--border);
  background:rgba(15,23,42,.04);
  backdrop-filter:blur(4px);
  transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);
}
.glass-input:focus-within{
  border-color:rgba(167,139,250,.7);
  background:rgba(139,92,246,.08);
}
.glass-input input{
  width:100%;background:transparent;
  font-size:var(--font-base);
  padding:1rem 1.125rem;
  border-radius:var(--radius-2xl);
  border:none;outline:none;
  color:var(--foreground);
}
.glass-input input::placeholder{color:var(--muted-foreground)}
.password-wrapper{position:relative}
.password-wrapper input{padding-right:3rem}
.password-toggle{
  position:absolute;top:0;right:.75rem;bottom:0;
  display:flex;align-items:center;
  background:none;border:none;cursor:pointer;
  color:var(--muted-foreground);
  transition:color var(--dur-fast) var(--ease);
}
.password-toggle:hover{color:var(--foreground)}
.password-toggle svg{width:20px;height:20px}
.password-toggle .eye-off{display:none}
.password-toggle.showing .eye-on{display:none}
.password-toggle.showing .eye-off{display:block}

.login-error{
  color:var(--destructive);font-size:var(--font-sm);
  padding:.625rem .875rem;background:var(--danger-bg);
  border-radius:var(--radius-md);display:none;
}
.login-error.visible{display:block}

.login-submit{
  display:flex;align-items:center;justify-content:center;
  width:100%;padding:.875rem 1.25rem;border:none;
  border-radius:var(--radius-2xl);
  background:var(--primary);color:var(--primary-foreground);
  font-family:var(--font-family);font-size:var(--font-md);
  font-weight:600;cursor:pointer;
  transition:all var(--dur-fast) var(--ease);
}
.login-submit:hover{background:var(--primary-hover);box-shadow:0 4px 16px rgba(124,58,237,.3)}
.login-submit:active{transform:scale(.98)}
.login-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.login-submit .spinner{
  display:none;width:18px;height:18px;
  border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;border-radius:50%;
  animation:spin .6s linear infinite;
  margin-right:.5rem;
}
.login-submit.loading .spinner{display:block}

.login-footer-text{
  text-align:center;font-size:var(--font-sm);
  color:var(--muted-foreground);
}

/* Hero section */
.login-hero-section{
  display:none;flex:1;position:relative;padding:1rem;
}
@media(min-width:768px){
  .login-hero-section{display:block}
}
.login-hero{
  position:absolute;inset:1rem;
  border-radius:var(--radius-2xl);
  overflow:hidden;
  background:linear-gradient(135deg,#7c3aed 0%,#4f46e5 40%,#0ea5e9 100%);
  background-size:cover;background-position:center;
}
.login-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.35) 100%);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:2rem;
}
.login-hero-brand{
  display:flex;align-items:center;gap:.75rem;
  color:#fff;font-weight:700;font-size:var(--font-md);
  opacity:.9;
}
.login-hero-tagline{color:#fff;max-width:380px}
.login-hero-tagline h2{
  font-size:var(--font-2xl);font-weight:600;
  color:#fff;margin-bottom:.5rem;line-height:1.2;
}
.login-hero-tagline p{font-size:var(--font-base);opacity:.8;line-height:1.6}


/* ═══ DASHBOARD — Calendar ═══ */

.calendar-container{
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur));
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-xs);
  overflow:hidden;
}

/* Calendar header */
.calendar-header{
  display:flex;flex-wrap:wrap;gap:1rem;
  align-items:center;justify-content:space-between;
  padding:1.25rem 1.5rem;
  border-bottom:1px solid rgba(226,232,240,.4);
}
.calendar-header-left{
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
}
.calendar-title{
  font-size:var(--font-lg);font-weight:600;
  letter-spacing:-.02em;white-space:nowrap;
}
.calendar-nav{display:flex;align-items:center;gap:.375rem}
.calendar-nav .btn{min-width:auto}

/* View switcher — pill group */
.calendar-views{
  display:flex;align-items:center;gap:2px;
  background:rgba(241,245,249,.7);
  backdrop-filter:blur(4px);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  padding:3px;
}
.cal-view-btn{
  display:inline-flex;align-items:center;gap:.25rem;
  padding:.375rem .875rem;border:none;
  border-radius:calc(var(--radius-xl) - 2px);
  background:transparent;color:var(--muted-foreground);
  font-family:var(--font-family);font-size:var(--font-sm);
  font-weight:500;cursor:pointer;
  transition:all var(--dur-base) var(--ease);
  height:2rem;
}
.cal-view-btn:hover{color:var(--foreground)}
.cal-view-btn.active{
  background:var(--card);color:var(--foreground);
  font-weight:600;box-shadow:var(--shadow-sm);
}
.cal-view-btn svg{width:14px;height:14px}

/* Calendar search + filters */
.calendar-toolbar{
  display:flex;flex-wrap:wrap;gap:.625rem;
  padding:1rem 1.5rem;
  border-bottom:1px solid rgba(226,232,240,.4);
  align-items:center;
}
.calendar-search{
  position:relative;flex:1;min-width:180px;max-width:340px;
}
.calendar-search input{
  width:100%;
  padding:.625rem 1rem .625rem 2.25rem;
  border:1px solid var(--border);border-radius:var(--radius-xl);
  background-color:rgba(15,23,42,.03);
  backdrop-filter:blur(4px);
  color:var(--foreground);
  font-size:var(--font-sm);
  transition:all var(--dur-base) var(--ease);
}
.calendar-search input:focus{
  outline:none;border-color:rgba(167,139,250,.6);
  background-color:rgba(139,92,246,.05);
  box-shadow:0 0 0 3px rgba(124,58,237,.08);
}
.calendar-search input::placeholder{color:var(--muted-foreground)}
.calendar-search svg{
  position:absolute;left:.875rem;top:50%;
  transform:translateY(-50%);
  width:14px;height:14px;
  color:var(--muted-foreground);stroke:currentColor;
  fill:none;stroke-width:2;
}
.calendar-filter{
  padding:.625rem 1rem;
  border:1px solid var(--border);border-radius:var(--radius-xl);
  background-color:rgba(15,23,42,.03);
  backdrop-filter:blur(4px);
  font-size:var(--font-sm);
  color:var(--foreground);cursor:pointer;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .875rem center;
  padding-right:2.25rem;
  transition:all var(--dur-base) var(--ease);
}
.calendar-filter:focus{
  outline:none;border-color:rgba(167,139,250,.6);
  box-shadow:0 0 0 3px rgba(124,58,237,.08);
}

/* ─── Month View ─── */
.cal-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);
  border-bottom:1px solid rgba(226,232,240,.4);
}
.cal-weekday{
  padding:.625rem;text-align:center;
  font-size:var(--font-xs);font-weight:600;
  color:var(--muted-foreground);text-transform:uppercase;
  letter-spacing:.04em;
}
.cal-days{
  display:grid;grid-template-columns:repeat(7,1fr);
}
.cal-day{
  min-height:6.5rem;
  padding:.5rem;
  border-right:1px solid rgba(226,232,240,.3);
  border-bottom:1px solid rgba(226,232,240,.3);
  transition:background var(--dur-base) var(--ease);
  cursor:default;
}
.cal-day:nth-child(7n){border-right:none}
.cal-day:hover{background:rgba(139,92,246,.03)}
.cal-day--other{opacity:.4}
.cal-day--today .cal-day-num{
  background:var(--primary);color:var(--primary-foreground);
  font-weight:700;
}
.cal-day-num{
  display:flex;align-items:center;justify-content:center;
  width:1.75rem;height:1.75rem;
  border-radius:var(--radius-full);
  font-size:var(--font-sm);font-weight:500;
  margin-bottom:.375rem;
}
.cal-events{display:flex;flex-direction:column;gap:2px}

/* Event chips in month view */
.cal-ev{
  padding:2px 8px;border-radius:var(--radius-lg);
  font-size:var(--font-xs);font-weight:500;
  color:#fff;cursor:pointer;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  transition:all var(--dur-base) var(--ease);
  line-height:1.5;
}
.cal-ev:hover{transform:scale(1.03);box-shadow:var(--shadow-sm);z-index:2;position:relative}
.cal-ev--planned{background:var(--ev-blue)}
.cal-ev--ongoing{background:var(--ev-purple)}
.cal-ev--completed{background:var(--ev-slate)}
.cal-ev--warning{background:var(--ev-orange)}
.cal-ev--critical{background:var(--ev-red)}
.cal-ev--normal{background:var(--ev-blue)}
.cal-ev-more{
  font-size:10px;color:var(--muted-foreground);
  padding:2px 6px;cursor:pointer;
}
.cal-ev-more:hover{color:var(--foreground)}

/* Event hover popup — glass */
.cal-popup{
  position:absolute;left:0;top:100%;z-index:var(--z-dropdown);
  margin-top:4px;width:260px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(20px);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);padding:1rem;
  box-shadow:var(--shadow-xl);
  animation:slideUp var(--dur-base) var(--ease);
  pointer-events:none;
}
.cal-popup-title{font-weight:600;font-size:var(--font-sm);margin-bottom:.375rem}
.cal-popup-time{
  display:flex;align-items:center;gap:.375rem;
  font-size:var(--font-xs);color:var(--muted-foreground);
  margin-bottom:.375rem;
}
.cal-popup-time svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.cal-popup-badges{display:flex;flex-wrap:wrap;gap:.25rem}

/* ─── Week View ─── */
.cal-week{display:grid;grid-template-columns:60px repeat(7,1fr)}
.cal-week-header{
  display:grid;grid-template-columns:60px repeat(7,1fr);
  border-bottom:1px solid rgba(226,232,240,.4);
}
.cal-week-header-time{
  padding:.5rem;font-size:var(--font-xs);
  color:var(--muted-foreground);text-align:center;
  border-right:1px solid rgba(226,232,240,.3);
}
.cal-week-header-day{
  padding:.5rem;text-align:center;
  border-right:1px solid rgba(226,232,240,.3);
  font-size:var(--font-xs);font-weight:600;
  color:var(--muted-foreground);
}
.cal-week-header-day:last-child{border-right:none}
.cal-week-header-day .day-date{
  font-size:var(--font-xs);color:var(--muted-foreground);
  font-weight:400;
}
.cal-week-row{
  display:grid;grid-template-columns:60px repeat(7,1fr);
  border-bottom:1px solid rgba(226,232,240,.25);
}
.cal-week-time{
  padding:.5rem;font-size:10px;
  color:var(--muted-foreground);
  border-right:1px solid rgba(226,232,240,.3);
  text-align:right;
}
.cal-week-cell{
  min-height:3.5rem;
  padding:3px;
  border-right:1px solid rgba(226,232,240,.25);
  transition:background var(--dur-base) var(--ease);
}
.cal-week-cell:last-child{border-right:none}
.cal-week-cell:hover{background:rgba(139,92,246,.03)}

/* ─── Day View ─── */
.cal-day-view-row{
  display:flex;border-bottom:1px solid rgba(226,232,240,.25);
}
.cal-day-view-time{
  width:5rem;flex-shrink:0;
  padding:.75rem;
  font-size:var(--font-xs);color:var(--muted-foreground);
  border-right:1px solid rgba(226,232,240,.3);
  text-align:right;
}
.cal-day-view-content{
  flex:1;min-height:4rem;padding:.5rem .625rem;
  transition:background var(--dur-base) var(--ease);
}
.cal-day-view-content:hover{background:rgba(139,92,246,.03)}

/* Day view event card — glass */
.cal-ev-detail{
  border-radius:var(--radius-lg);padding:.875rem;
  color:#fff;cursor:pointer;margin-bottom:.5rem;
  transition:all var(--dur-base) var(--ease);
}
.cal-ev-detail:hover{transform:scale(1.01);box-shadow:var(--shadow-lg)}
.cal-ev-detail-title{font-weight:600;font-size:var(--font-sm)}
.cal-ev-detail-desc{font-size:var(--font-xs);opacity:.85;margin-top:.25rem}
.cal-ev-detail-time{
  display:flex;align-items:center;gap:.375rem;
  font-size:var(--font-xs);opacity:.75;margin-top:.375rem;
}
.cal-ev-detail-time svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}

/* ─── List View ─── */
.cal-list{padding:1.25rem 1.5rem}
.cal-list-group{margin-bottom:1.75rem}
.cal-list-date{
  font-size:var(--font-xs);font-weight:600;
  color:var(--muted-foreground);margin-bottom:.625rem;
  text-transform:uppercase;letter-spacing:.04em;
}
.cal-list-item{
  display:flex;align-items:flex-start;gap:.875rem;
  padding:1rem;
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur));
  margin-bottom:.5rem;cursor:pointer;
  transition:all var(--dur-base) var(--ease);
}
.cal-list-item:hover{
  background:var(--glass-bg-hover);
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}
.cal-list-dot{
  width:.625rem;height:.625rem;
  border-radius:var(--radius-full);
  flex-shrink:0;margin-top:.375rem;
}
.cal-list-info{flex:1;min-width:0}
.cal-list-title{font-weight:600;font-size:var(--font-sm);color:var(--foreground)}
.cal-list-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  margin-top:.375rem;font-size:var(--font-xs);color:var(--muted-foreground);
}
.cal-list-meta svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}


/* ═══ TABS — Pill style ═══ */
.tabs{
  display:flex;gap:.25rem;
  background:rgba(241,245,249,.7);
  backdrop-filter:blur(4px);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  padding:3px;
  margin-bottom:1.5rem;
}
.tabs__tab{
  padding:.5rem 1.25rem;border:none;background:transparent;
  font-family:var(--font-family);font-size:var(--font-sm);
  font-weight:500;color:var(--muted-foreground);
  cursor:pointer;
  border-radius:calc(var(--radius-xl) - 2px);
  transition:all var(--dur-base) var(--ease);
}
.tabs__tab:hover{color:var(--foreground)}
.tabs__tab--active,.tabs__tab.active{
  background:var(--card);
  color:var(--foreground);
  font-weight:600;
  box-shadow:var(--shadow-sm);
}


/* ═══ REPORT FILTERS — Glass ═══ */
.report-filters{
  display:flex;gap:.875rem;align-items:flex-end;flex-wrap:wrap;
  margin-bottom:1.5rem;padding:1.25rem;
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur));
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
}
.report-filters .form-group,.report-filters .form__group{margin-bottom:0;min-width:140px}


/* ═══ EVENT DETAIL ═══ */
.event-detail__header{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;margin-bottom:1.75rem;
}
.event-detail__header h1{margin:0}
.event-detail__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.event-detail__actions{
  display:flex;gap:.625rem;flex-wrap:wrap;margin-top:1.5rem;
}
.detail-item{display:flex;flex-direction:column;gap:.125rem}
.detail-label{
  font-size:var(--font-xs);font-weight:600;
  color:var(--muted-foreground);text-transform:uppercase;
  letter-spacing:.04em;
}
.detail-value{font-size:var(--font-base);color:var(--foreground)}


/* ═══ PROTOCOL FORM ═══ */
.protocol-form .form-control,.protocol-form .form__input,.protocol-form .form__select{
  padding:.5rem .75rem;font-size:var(--font-sm);border-radius:var(--radius-lg);
}
.protocol-form .data-table input{
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:.5rem .75rem;width:100%;font-size:var(--font-sm);
  background-color:rgba(15,23,42,.03);
  transition:all var(--dur-base) var(--ease);
}
.protocol-form .data-table input:focus{
  outline:none;border-color:rgba(167,139,250,.6);
  box-shadow:0 0 0 3px rgba(124,58,237,.08);
}
.protocol-results-form{display:flex;flex-direction:column;gap:.625rem;margin-bottom:.625rem}
.protocol-result-row.form__row{
  grid-template-columns:2fr 1fr 1.5fr auto;
  align-items:center;gap:.625rem;
}


/* ═══ APPLICATIONS ═══ */
.participant-list{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}
.participant-item{display:flex;align-items:center;gap:.5rem;font-size:var(--font-sm)}
.participant-item input[type="checkbox"]{accent-color:var(--primary)}
.participants-checklist{
  max-height:280px;overflow-y:auto;
  display:flex;flex-direction:column;gap:.5rem;
  padding:.75rem;
  border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);
  background-color:rgba(15,23,42,.02);
  margin-top:.375rem;
}
.checkbox-label{
  display:flex;align-items:center;gap:.5rem;
  font-size:var(--font-sm);cursor:pointer;
  padding:.5rem .625rem;border-radius:var(--radius-lg);
  transition:background var(--dur-base) var(--ease);
}
.checkbox-label:hover{background:rgba(139,92,246,.04)}
.checkbox-label input[type="checkbox"]{accent-color:var(--primary)}


/* ═══ ADMIN / MISC ═══ */
.admin-content,.report-content,.results-form{margin-top:.75rem}
.crud-table-area{animation:fadeIn var(--dur-base) var(--ease)}

@media(max-width:640px){
  .event-detail__grid{grid-template-columns:1fr}
  .calendar-header{flex-direction:column;align-items:stretch}
  .calendar-header-left{flex-direction:column;align-items:flex-start}
  .calendar-views{width:100%;justify-content:center}
  .cal-day{min-height:4.5rem}
  .cal-weekday{font-size:10px}
}
