/* Loading / error / empty / auth states in the existing visual language (tokens from styles.css).
   Sizes follow Astra's UI-STATES.md (2026-10-07); no new palette. */
.state-box{max-width:560px;margin:64px auto;padding:0 24px}
.state-box h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.04em;line-height:1.1;margin:12px 0 14px}
.state-box>p.muted{margin-bottom:24px}
.state-box>.notice{margin:0 0 24px}
.state-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:24px}
.btn,.btn.small,.attach,.text-link.small{min-height:44px}
.text-link.small{display:inline-flex;align-items:center;border-bottom:0;text-decoration:underline;text-underline-offset:3px}
.loading-line{height:10px;border-radius:6px;background:linear-gradient(90deg,var(--line),var(--cyan-light),var(--line));background-size:200% 100%;animation:live-shimmer 1.6s linear infinite;margin:14px 0;max-width:420px}
html[data-motion="paused"] .loading-line{animation:none}
@keyframes live-shimmer{to{background-position:-200% 0}}
.notice.error{border-color:var(--red);background:#fbeeee}
.field-error,.form-error{color:var(--red);font-size:14px;margin:6px 0 0}
.field-error:empty,.form-error:empty{display:none}
.form-error{margin:12px 0}
.field input[aria-invalid="true"]{border-color:var(--red)}
.auth-form{display:grid;gap:16px;margin-top:24px}
.auth-form .field{margin:0}
.disabled-reason{color:var(--muted);font-size:13px;margin:8px 0 0}
#main:focus{outline:none}
[tabindex="-1"]:focus{outline:none}

/* AIT247 header: phone = row 1 wordmark + sign-in + motion, row 2 the three links (Мои проекты never hidden) */
.ait-header .header-tools{display:flex;align-items:center;gap:18px;font-size:14px}
.ait-header .header-tools a{text-decoration:none}
.ait-header nav a[aria-current="page"]{color:var(--cyan)}
@media(max-width:720px){
  .ait-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"logo tools" "nav nav";height:auto!important;padding:14px 20px 12px!important;row-gap:10px}
  .ait-header .wordmark{grid-area:logo}
  .ait-header .header-tools{grid-area:tools;gap:14px;font-size:13px}
  .ait-header nav{grid-area:nav;margin-left:0!important;flex-wrap:wrap;gap:6px 16px!important;font-size:13px!important}
  .ait-header nav a{min-height:36px;display:inline-flex;align-items:center}
  .page>.state-box{padding:0;margin:32px auto}
  .state-actions>.btn{width:100%;white-space:normal;text-align:center}
}
@media(min-width:721px) and (max-width:800px){.page{padding-left:24px;padding-right:24px}}

/* Projects: one calm column, real titles, ID secondary */
.projects-box{max-width:880px}
.projects-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px}
.projects-head h1{margin:0}
.project-guest{margin-top:20px}
.project-list{display:grid;gap:14px;margin:26px 0 0;padding:0;list-style:none}
.project-card{display:grid;gap:6px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:inherit;text-decoration:none}
.project-card:hover,.project-card:focus-visible{border-color:var(--cyan)}
.project-title{font-size:18px;overflow-wrap:anywhere}
.project-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--muted)}
.pause-mark{color:#715016;font-weight:650}
.project-id-line{font:12px var(--mono);color:var(--muted)}

/* Files: one row per file inside the composer / brief materials */
.file-list-box:empty{display:none}
.file-rows{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.file-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.file-row .file-icon{font-size:16px;padding:4px 9px}
.file-main{flex:1 1 200px;min-width:0;display:grid;gap:2px}
.file-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.file-state{font-size:13px;color:var(--ink)}
.file-note{font-size:12px;color:var(--muted)}
.file-mark{font-weight:700}
.file-row.is-error{border-color:#debdb5;background:#fff8f6}
.file-row.is-error .file-state{color:#913a2a}
.file-row.state-uploading .file-mark{color:var(--cyan)}
.file-action{flex:none;margin-left:auto}
.file-summary{margin:12px 0}
.composer .file-rows{margin-top:14px}
.unread-note{margin:18px 0}
@media(max-width:400px){.file-action{margin-left:0;flex-basis:100%}}

/* Execution: confirmed facts only */
.fact-list{list-style:none;padding:20px 22px;margin:22px 0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:10px;font-size:14px}

/* Manager decision: vertical radios with wrapping labels, nothing preselected */
.decision-set{border:0;padding:0;margin:24px 0 0;display:grid;gap:8px}
.decision-set legend{font-size:13px;font-weight:650;margin-bottom:8px;padding:0}
.decision-option{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.decision-option input{width:18px;height:18px;flex:none;margin:2px 0 0;accent-color:var(--cyan)}
.decision-option b{display:block;font-size:14px;line-height:1.35}
.decision-hint{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.decision-option:has(input:checked){border-color:var(--cyan);background:#eef7f9}
.decision-option.is-disabled{cursor:not-allowed;background:#f6f8f9}
.decision-option.is-disabled b{color:var(--muted)}
.manager-empty h2{font-size:26px}

/* Projects: Active / Archive tabs (analogy: header nav links, aria-current in cyan) and archive rows */
.project-tabs{display:flex;gap:22px;margin:22px 0 0;border-bottom:1px solid var(--line)}
.project-tabs a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--muted);text-decoration:none;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.project-tabs a[aria-current="page"]{color:var(--cyan);font-weight:650;border-bottom-color:var(--cyan)}
.tab-count{font:12px var(--mono);border:1px solid var(--line);border-radius:20px;padding:1px 8px}
..projects-box>.notice{margin-top:20px}
.archive-lead{margin:20px 0 0}
.archive-empty{margin:40px 0}
.archive-empty h2{font-size:26px;margin:0 0 10px}
.archive-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.archive-item .project-card{flex:1 1 320px;min-width:0}
.archive-item .btn{flex:none}
.archive-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.archive-action{margin-top:34px;padding-top:18px;border-top:1px solid var(--line)}
.archive-action p{margin:4px 0 0}

/* Material questions: block between materials and the brief form (analogy: existing field / notice styles) */
.questions{margin:26px 0;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.questions h2{font-size:22px;margin:0 0 6px}
.question-form{display:grid;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.question-form:first-of-type{border-top:0;padding-top:0}
.question-form textarea{width:100%;min-height:96px}
.question-form .form-error{margin:0}
.question-form .btn{justify-self:start}
.q-status{font-size:13px;color:var(--ink)}
.q-status.open{color:#715016;font-weight:650}
@media(max-width:720px){.question-form .btn,.archive-item .btn{width:100%}.questions{padding:18px 16px}}

/* Podcast player: native controls only */
.article audio{width:100%;margin:8px 0 18px}
