/* Палитра Leval: тёмно-синий, оранжевый и нейтральные поверхности; обе темы используют одни компоненты. */
:root { --primary:#1b2d5c; --accent:#f15a22; --bg:#f5f6fa; --panel:#fff; --text:#19243b; --muted:#6b7588; --border:#e4e7ef; --hover:#edf1f8; --shadow:0 8px 25px #12214408; color-scheme:light; }
:root[data-theme="dark"] { --primary:#a7bcf4; --accent:#ff895a; --bg:#101522; --panel:#192132; --text:#eef2fb; --muted:#a5b0c5; --border:#303c52; --hover:#26334d; --shadow:none; color-scheme:dark; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; font:14px/1.5 "Segoe UI",Arial,sans-serif; color:var(--text); background:var(--bg); }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.55; }
button:focus-visible,a:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
h1,h2,h3,p { margin:0; }
h1 { font-size:30px; line-height:1.25; letter-spacing:-.7px; }
h2 { font-size:21px; } h3 { font-size:15px; }
.muted,.help { color:var(--muted); }.help { font-size:12px; }
.eyebrow { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:1.7px; margin-bottom:12px; }
.brand { display:block; color:var(--primary); text-decoration:none; font-size:22px; letter-spacing:1.5px; font-weight:800; }
.brand span { color:var(--accent); margin-left:4px; font-weight:400; }
/* Главная страница входа: самостоятельная форма, без iframe и внешних скриптов. */
.login-screen { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.login-story { padding:64px 12%; color:#fff; background:#1b2d5c; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.login-story::after { content:""; position:absolute; width:420px; height:420px; border:1px solid #ffffff15; border-radius:50%; right:-220px; bottom:-160px; box-shadow:0 0 0 65px #ffffff04,0 0 0 130px #ffffff03; }
.login-story .brand { color:white; position:absolute; top:48px; }
.login-story h1 { font-size:64px; line-height:1.08; margin:8px 0 25px; letter-spacing:-2px; }
.login-story .eyebrow { color:#aebee1; }.login-story>p:not(.eyebrow) { color:#c4cee4; font-size:17px; }
.story-line { display:flex; align-items:center; gap:12px; margin-top:65px; color:#aebee1; font-size:12px; }
.story-line span { width:34px; height:3px; background:#f15a22; }
.login-panel { background:var(--panel); display:flex; align-items:center; justify-content:center; padding:35px; }
.login-form { width:100%; max-width:370px; }.login-form h2 { font-size:28px; margin-bottom:8px; }.login-form>.muted { margin-bottom:32px; }
.login-form .primary { width:100%; display:flex; justify-content:space-between; margin-top:20px; }.login-form>.help { margin-top:24px; text-align:center; }
/* Поля имеют явные подписи, видимый фокус и достаточную область нажатия. */
label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:600; margin:0 0 18px; }
input,textarea,select { width:100%; border:1px solid var(--border); border-radius:8px; padding:11px 12px; color:var(--text); background:var(--panel); outline:none; font-weight:400; }
input:focus,textarea:focus,select:focus { border-color:var(--accent); box-shadow:0 0 0 3px #f15a2214; }
textarea { min-height:105px; resize:vertical; }input:disabled,textarea:disabled,select:disabled { opacity:1; background:var(--bg); }
.primary,.secondary,.quiet { border-radius:8px; padding:10px 16px; border:1px solid transparent; font-weight:600; }
.primary { background:#1b2d5c; color:#fff; }.primary:hover { background:#2b4277; }
.secondary { border-color:var(--border); color:var(--text); background:var(--panel); }.secondary:hover,.quiet:hover { background:var(--hover); }
.quiet { color:var(--muted); background:transparent; text-align:left; font-size:12px; padding:6px 0; }
.text-button { background:none; border:0; color:var(--muted); font-size:11px; padding:5px; }
.error { color:#cf3d40; font-size:13px; margin:10px 0; min-height:1em; }
.notice { position:fixed; top:18px; left:50%; transform:translateX(-50%); max-width:90vw; padding:14px 22px; border:1px solid #db7676; border-radius:9px; background:var(--panel); z-index:20; box-shadow:var(--shadow); }
.loading { padding:60px; color:var(--muted); }
/* Постоянная навигация, статус сервисов и учётная запись. */
.workspace { min-height:100vh; display:grid; grid-template-columns:230px minmax(0,1fr); }
.sidebar { background:var(--panel); border-right:1px solid var(--border); padding:30px 22px; display:flex; flex-direction:column; }
.nav-label { margin:45px 0 12px; color:var(--muted); font-size:9px; letter-spacing:1.2px; font-weight:700; }
.nav-item { border:0; border-radius:7px; background:transparent; padding:12px 14px; margin:3px 0; text-align:left; color:var(--muted); font-weight:600; }
.nav-item.active { background:var(--hover); color:var(--primary); box-shadow:inset 3px 0 var(--accent); }
.sidebar-bottom { margin-top:auto; padding-top:70px; display:flex; flex-direction:column; gap:6px; }
.service-status { font-size:11px; color:var(--muted); }.account { border-top:1px solid var(--border); margin-top:15px; padding-top:20px; display:flex; gap:10px; align-items:center; }
.account strong { font-size:12px; }.account small { display:block; font-size:10px; color:var(--muted); }
.avatar { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--hover); color:var(--primary); flex-shrink:0; font-weight:700; }
main { min-width:0; }.topbar { min-height:72px; padding:20px 36px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; font-size:12px; color:var(--muted); }
.edition { font-size:9px; letter-spacing:2px; }.content { padding:36px; }.page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:30px; }
.page-heading .muted { margin-top:9px; max-width:540px; }.actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
/* Канбаны и карточки сохраняют читаемую структуру при длинных названиях. */
.board-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(265px,1fr)); gap:20px; }
.board-tile { display:block; min-height:220px; padding:25px; background:var(--panel); border:1px solid var(--border); border-radius:12px; text-align:left; color:var(--text); box-shadow:var(--shadow); }
.board-tile:hover { border-color:var(--accent); transform:translateY(-2px); }.board-tile h2 { margin:15px 0 8px; font-size:19px; overflow-wrap:anywhere; }.board-tile p { overflow-wrap:anywhere; }
.tile-icon { color:var(--accent); font-size:26px; }.tile-meta { border-top:1px solid var(--border); padding-top:15px; margin-top:20px; color:var(--muted); font-size:11px; }
.lanes { display:flex; align-items:flex-start; gap:18px; overflow-x:auto; padding-bottom:24px; }.lane { flex:0 0 285px; background:var(--hover); border-radius:10px; padding:12px; }
.lane-header { display:flex; gap:9px; align-items:center; padding:5px 3px 16px; }.lane-header h2 { font-size:13px; overflow-wrap:anywhere; }.lane-header .text-button { margin-left:auto; }
.count { color:var(--muted); font-size:11px; }.project-card { display:block; width:100%; background:var(--panel); color:var(--text); border:1px solid var(--border); border-radius:8px; text-align:left; padding:17px; margin-bottom:10px; box-shadow:var(--shadow); }
.project-card:hover { border-color:var(--accent); }.project-card h3 { margin:9px 0; overflow-wrap:anywhere; }.card-id { font-size:9px; letter-spacing:1px; color:var(--muted); }
.card-description { font-size:12px; color:var(--muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.card-owner { border-top:1px solid var(--border); padding-top:11px; margin-top:18px; color:var(--muted); font-size:11px; }.lane-empty { padding:22px 8px; text-align:center; font-size:12px; color:var(--muted); }
.empty { padding:45px; border:1px dashed var(--border); border-radius:12px; color:var(--muted); grid-column:1/-1; }
/* Пользователи и диалоги используют те же контрасты и размеры элементов. */
.users-table { border:1px solid var(--border); border-radius:12px; background:var(--panel); }.user-row { padding:20px; display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--border); }.user-row:last-child { border-bottom:0; }
.user-info { display:flex; flex-direction:column; flex:1; min-width:100px; overflow-wrap:anywhere; }.user-info span { font-size:12px; }.badge { padding:4px 9px; background:var(--hover); border-radius:5px; font-size:11px; }.status-active { font-size:12px; color:#298453; }
dialog { border:1px solid var(--border); border-radius:14px; padding:26px; width:520px; max-width:calc(100vw - 28px); max-height:90vh; background:var(--panel); color:var(--text); box-shadow:0 25px 90px #0004; }
dialog::backdrop { background:#101b3b80; }.dialog-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }.dialog-header h2 { font-size:21px; }.icon-button { border:0; background:none; color:var(--muted); font-size:27px; padding:0 6px; }
dialog footer { display:flex; justify-content:flex-end; gap:10px; border-top:1px solid var(--border); padding-top:20px; }.member-list { border-bottom:1px solid var(--border); margin-bottom:18px; padding-bottom:14px; font-size:13px; }.member-list p { margin:6px 0; }
/* Узкий экран сохраняет доступ ко всем действиям; колонки прокручиваются внутри канбана. */
@media(max-width:1000px) { .page-heading { align-items:flex-start; flex-direction:column; }.actions { justify-content:flex-start; }.content { padding:25px; } }
@media(max-width:700px) { .login-screen { grid-template-columns:1fr; }.login-story { display:none; }.login-panel { min-height:100vh; padding:28px; }.workspace { grid-template-columns:1fr; grid-template-rows:auto 1fr; }.sidebar { padding:15px 20px; border-right:0; border-bottom:1px solid var(--border); flex-direction:row; flex-wrap:wrap; gap:8px; align-items:center; }.sidebar .brand { font-size:18px; margin-right:auto; }.nav-label,.account,.sidebar-bottom .help,.service-status { display:none; }.sidebar-bottom { width:100%; margin:0; padding:0; flex-direction:row; gap:20px; }.nav-item { padding:7px 10px; }.topbar { min-height:48px; padding:12px 20px; }.edition { display:none; }.content { padding:22px 18px; }h1 { font-size:25px; }.board-grid { grid-template-columns:1fr; }.lane { flex-basis:270px; }.user-row { flex-wrap:wrap; gap:12px; }.user-info { flex-basis:calc(100% - 70px); }.user-row .secondary { margin-left:auto; }input,textarea,select { font-size:16px; } }
/* Карточки общих AI-подключений сохраняют читаемость на телефоне и в обеих темах. */
.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;margin:24px 0}
.ai-card,.ai-flow{border:1px solid var(--border);border-radius:16px;padding:24px;background:var(--panel)}
.ai-card h2,.ai-flow h2{margin-top:0}.ai-card .actions{flex-wrap:wrap;gap:8px}.ai-state{min-height:3em}
.ai-flow:empty{display:none}.device-code{display:block;font-size:26px;letter-spacing:3px;margin:20px 0}

/* Чат использует текстовые блоки и перенос длинных строк на мобильном экране. */
.chat-messages{display:flex;flex-direction:column;gap:14px;margin:20px 0;max-height:65vh;overflow:auto}
.chat-message{padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.chat-message.user{border-left:3px solid var(--accent)}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}
.chat-compose{display:grid;gap:12px;margin:20px 0}.chat-compose textarea{min-height:110px}.chat-compose button{justify-self:start}
.project-workspace>.actions{flex-wrap:wrap;margin-bottom:24px}.file-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
