/* ============================================================
   TractionTeam theme v1 — современный скин поверх Vikunja.
   Чистый CSS: логика не тронута. Откат = убрать <link> из nginx.
   ============================================================ */

/* ---------- Inter (селф-хост, кириллица + латиница) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/tt-assets/fonts/inter-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/tt-assets/fonts/inter-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/tt-assets/fonts/inter-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/tt-assets/fonts/inter-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/tt-assets/fonts/inter-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/tt-assets/fonts/inter-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/tt-assets/fonts/inter-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/tt-assets/fonts/inter-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- Токены ---------- */
:root{
  --tt-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --tt-r-sm:8px; --tt-r-md:10px; --tt-r-lg:14px;
  --tt-shadow-sm:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.07);
  --tt-shadow-md:0 6px 16px rgba(16,24,40,.10),0 2px 4px rgba(16,24,40,.06);
  --tt-ring:0 0 0 3px rgba(26,115,255,.16);
}
html.light{
  --site-background:#f6f7f9;
  --card-background-color:#ffffff;
  /* фирменный синий совы #1969B3 — все оттенки Vikunja собираются из h/s/l */
  --primary-h:209deg; --primary-s:75%; --primary-l:40%;
  --tt-ring:0 0 0 3px rgba(25,105,179,.18);
}
html.dark{
  --site-background:#10151c;
  --card-background-color:#171e27;
  --primary-h:209deg; --primary-s:70%; --primary-l:53%;
  --tt-shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --tt-shadow-md:0 8px 20px rgba(0,0,0,.45);
  --tt-ring:0 0 0 3px rgba(86,164,222,.25);
}

/* ---------- Типографика ---------- */
html,body,button,input,select,textarea,.button,.base-button{font-family:var(--tt-font)!important;}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,.title{letter-spacing:-.015em;}
h1,.title.is-3{font-weight:700!important;}

/* ---------- Навбар: «стекло» ---------- */
.navbar{
  background:rgba(255,255,255,.72)!important;
  -webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid rgba(16,24,40,.07)!important;
  box-shadow:none!important;
}
html.dark .navbar{
  background:rgba(16,21,28,.72)!important;
  border-bottom:1px solid rgba(255,255,255,.06)!important;
}

/* ---------- Сайдбар ---------- */
.menu-container{border-right:1px solid rgba(16,24,40,.05);}
html.dark .menu-container{border-right-color:rgba(255,255,255,.05);}
.menu-container a{border-radius:var(--tt-r-sm)!important;transition:background .12s ease,color .12s ease;}
.menu-container .menu-list a:hover{background:rgba(16,24,40,.055)!important;}
html.dark .menu-container .menu-list a:hover{background:rgba(255,255,255,.06)!important;}

/* ---------- Карточки / контейнеры ---------- */
.card{
  border-radius:var(--tt-r-lg)!important;
  border:1px solid rgba(16,24,40,.07)!important;
  box-shadow:var(--tt-shadow-sm)!important;
}
html.dark .card{border-color:rgba(255,255,255,.07)!important;}
.modal-content .card,.modal .card{border-radius:var(--tt-r-lg)!important;box-shadow:var(--tt-shadow-md)!important;}

/* ---------- Кнопки ---------- */
.button,.base-button--type-button.button,.base-button{border-radius:var(--tt-r-sm)!important;}
.button{transition:transform .1s ease,box-shadow .12s ease,background .12s ease!important;}
.button.is-primary{box-shadow:0 1px 2px rgba(25,105,179,.35)!important;}
.button.is-primary:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(25,105,179,.35)!important;}
.button:active{transform:translateY(0);}

/* ---------- Поля ввода ---------- */
.input,.textarea,.select select{
  border-radius:var(--tt-r-sm)!important;
  border-color:rgba(16,24,40,.14)!important;
  transition:border-color .12s ease,box-shadow .12s ease!important;
}
html.dark .input,html.dark .textarea,html.dark .select select{border-color:rgba(255,255,255,.12)!important;}
.input:focus,.textarea:focus,.select select:focus{box-shadow:var(--tt-ring)!important;border-color:var(--primary)!important;}

/* ---------- Переключатель видов (Список/Гант/Таблица/Канбан) ---------- */
.switch-view{
  background:rgba(16,24,40,.06)!important;
  border-radius:var(--tt-r-md)!important;
  padding:4px!important;
  box-shadow:none!important;
}
html.dark .switch-view{background:rgba(255,255,255,.07)!important;}
.switch-view a{border-radius:7px!important;font-weight:600;}
.switch-view a.is-active{box-shadow:var(--tt-shadow-sm)!important;}

/* ---------- Канбан ---------- */
.kanban .bucket{
  background:rgba(16,24,40,.045)!important;
  border-radius:var(--tt-r-lg)!important;
}
html.dark .kanban .bucket{background:rgba(255,255,255,.045)!important;}
.kanban .bucket .title{font-weight:650;}
.kanban .task{
  border-radius:var(--tt-r-md)!important;
  border:1px solid rgba(16,24,40,.08)!important;
  box-shadow:var(--tt-shadow-sm)!important;
  transition:transform .12s ease,box-shadow .12s ease!important;
}
.kanban .task:hover{transform:translateY(-2px);box-shadow:var(--tt-shadow-md)!important;}
html.dark .kanban .task{border-color:rgba(255,255,255,.08)!important;}

/* ---------- Списки задач ---------- */
.list-view .tasks .task{border-radius:var(--tt-r-sm);transition:background .1s ease;}
.list-view .tasks .task:hover{background:rgba(16,24,40,.035);}
html.dark .list-view .tasks .task:hover{background:rgba(255,255,255,.05);}

/* ---------- Комментарии ---------- */
.comments .media-content .box,.comments .comment .box{
  border-radius:var(--tt-r-md)!important;
  box-shadow:var(--tt-shadow-sm)!important;
  border:1px solid rgba(16,24,40,.06)!important;
}
html.dark .comments .media-content .box,html.dark .comments .comment .box{border-color:rgba(255,255,255,.06)!important;}

/* ---------- Скроллбары ---------- */
*{scrollbar-width:thin;scrollbar-color:rgba(120,130,145,.45) transparent;}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:rgba(120,130,145,.4);border-radius:99px;border:2px solid transparent;background-clip:content-box;}
*::-webkit-scrollbar-thumb:hover{background:rgba(120,130,145,.65);border:2px solid transparent;background-clip:content-box;}

/* ---------- Наши виджеты — под общий стиль ---------- */
#tt-subprojects .tt-sub-chip{border-radius:var(--tt-r-sm);box-shadow:none;}
#tt-subprojects .tt-sub-chip:hover{box-shadow:var(--tt-shadow-sm);}
#tt-gantt-nav button{border-radius:var(--tt-r-sm);}

/* ---------- Лента: убрать проект 88 из бокового списка (у неё своя кнопка «📣 Лента») ---------- */
.menu-container a[href="/projects/88"],.menu-container a[href^="/projects/88/"]{display:none!important;}
.menu-container li:has(> a[href="/projects/88"]),.menu-container li:has(> a[href^="/projects/88/"]){display:none!important;}

/* ---------- Упоминания пользователей (@) в ленте и задачах ---------- */
mention-user,.mention{color:var(--primary)!important;font-weight:600;background:color-mix(in srgb,var(--primary) 12%,transparent);border-radius:5px;padding:0 4px;text-decoration:none;}

/* ---------- Мелочи ---------- */
.loader-container.is-max-width-desktop{border-radius:var(--tt-r-lg);}
.dropdown-menu .dropdown-content{border-radius:var(--tt-r-md)!important;box-shadow:var(--tt-shadow-md)!important;border:1px solid rgba(16,24,40,.06);}
html.dark .dropdown-menu .dropdown-content{border-color:rgba(255,255,255,.07);}
.progress{border-radius:99px!important;}


/* === Хозяин задачи: один Ответственный выделен (мягкая модель «1 владелец + наблюдатели») === */
.task-view .assignees-list .assignee:first-child{ z-index:3; }
.task-view .assignees-list .assignee:first-child .user img,
.task-view .assignees-list .assignee:first-child img.avatar,
.task-view .assignees-list .assignee:first-child img{
  box-shadow:0 0 0 2px #1969B3 !important; border-radius:50% !important;
}
.task-view .assignees-list .assignee:first-child::before{
  content:"\1F451"; position:absolute; top:-10px; left:50%; transform:translateX(-50%);
  font-size:12px; line-height:1; z-index:4; pointer-events:none;
}
#tt-owner-nudge{
  font-size:12px; margin:6px 0 2px; padding:3px 9px; border-radius:6px;
  background:rgba(234,179,8,.15); color:#9a6b00; display:inline-block;
}
:root.dark #tt-owner-nudge{ color:#f0c674; }


/* === Наблюдатели задачи (Bitrix-стиль) === */
#tt-watchers-box{ margin:12px 0 4px; }
.tt-obs-label{ font-size:12px; color:#6b7280; margin-bottom:6px; }
.tt-obs-row{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.tt-obs{ position:relative; display:inline-flex; }
.tt-obs-ini{ display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:#e5e7eb; color:#374151; font-size:11px; font-weight:500; }
.tt-obs-ini.sm{ width:22px; height:22px; font-size:10px; margin-right:9px; }
.tt-obs-x{ position:absolute; top:-5px; right:-5px; width:16px; height:16px; border-radius:50%; background:#ef4444; color:#fff; font-size:12px; line-height:16px; text-align:center; cursor:pointer; display:none; }
.tt-obs:hover .tt-obs-x{ display:block; }
.tt-obs-add{ width:28px; height:28px; border-radius:50%; border:1px dashed #9ca3af; background:transparent; color:#6b7280; cursor:pointer; font-size:15px; line-height:1; padding:0; display:inline-flex; align-items:center; justify-content:center; }
.tt-obs-add:hover{ background:rgba(16,24,40,.05); color:#111827; }
.tt-obs-empty{ font-size:12px; color:#9ca3af; }
.tt-obs-dd{ margin-top:8px; border:0.5px solid #e5e7eb; border-radius:10px; background:#fff; max-height:220px; overflow:auto; box-shadow:0 6px 18px rgba(16,24,40,.10); width:max-content; min-width:180px; }
.tt-obs-opt{ display:flex; align-items:center; padding:7px 11px; font-size:13px; cursor:pointer; color:#111827; }
.tt-obs-opt:hover{ background:#f3f4f6; }
:root.dark .tt-obs-ini{ background:#374151; color:#e5e7eb; }
:root.dark .tt-obs-label,:root.dark .tt-obs-empty{ color:#9ca3af; }
:root.dark .tt-obs-add{ border-color:#4b5563; color:#9ca3af; }
:root.dark .tt-obs-add:hover{ background:rgba(255,255,255,.06); color:#f3f4f6; }
:root.dark .tt-obs-dd{ background:#1f2937; border-color:#374151; box-shadow:0 6px 18px rgba(0,0,0,.4); }
:root.dark .tt-obs-opt{ color:#e5e7eb; }
:root.dark .tt-obs-opt:hover{ background:#374151; }
