/* Avtodev — личный кабинет. Те же токены, что на лендинге. */
:root {
  --ink: #0F1B2D;
  --primary: #1F4FD1;
  --primary-hover: #163A9E;
  --primary-soft: #EAF0FD;
  --accent: #F2A53A;
  --accent-on-light: #E0902B;
  --success: #1E7A4E;
  --success-soft: #E7F4EC;
  --danger: #B42318;
  --danger-soft: #FDECEA;
  --info: #1F4FD1;
  --ground: #F4F6F9;
  --line: #E3E7EE;
  --line-strong: #C9D1DD;
  --text-2: #3D4757;
  --text-3: #4A5568;
  --font-display: "Manrope", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --radius-btn: 8px;
  --radius-card: 12px;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-body); font-size: 16px; line-height: 1.55; color: var(--ink); background: var(--ground); -webkit-font-smoothing: antialiased; }
a { color: var(--primary); }
a:hover { color: var(--primary-hover); }
h1, h2, h3 { font-family: var(--font-display); margin: 0; letter-spacing: -0.02em; }
h1 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; line-height: 1.15; }
h2 { font-size: 20px; font-weight: 700; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; border-radius: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.container { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.page { padding: 40px 0 72px; display: flex; flex-direction: column; gap: 24px; }
.page-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.muted { color: var(--text-3); }
.small { font-size: 14px; }
.mono { font-family: var(--font-mono); }

/* Шапка */
.topbar { background: #fff; border-bottom: 1px solid var(--line); }
.topbar-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; }
.logo { font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.03em; color: var(--ink); text-decoration: none; }
.logo:hover { color: var(--ink); }
.logo-dev { color: var(--primary); }
.logo-cursor { color: var(--accent-on-light); }
.topnav { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.topnav a { color: var(--ink); text-decoration: none; font-weight: 500; font-size: 15px; }
.topnav a[aria-current="page"] { color: var(--primary); }
.user { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--text-3); }

/* Кнопки */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--radius-btn); border: 1px solid transparent; font: 600 15px/1.2 var(--font-body); text-decoration: none; cursor: pointer; white-space: nowrap; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-hover); color: #fff; }
.btn-outline { background: #fff; color: var(--ink); border-color: var(--line-strong); }
.btn-outline:hover { border-color: var(--ink); color: var(--ink); }
.btn-success { background: var(--success); color: #fff; }
.btn-success:hover { background: #17633f; color: #fff; }
.btn-link { background: none; border: 0; padding: 0; min-height: 0; color: var(--text-3); font-weight: 500; font-size: 14px; }
.btn-link:hover { color: var(--ink); }
.btn-lg { min-height: 52px; padding: 0 26px; font-size: 17px; }
.btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Карточки и сообщения */
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 28px; }
.flash { padding: 14px 18px; border-radius: var(--radius-btn); background: var(--success-soft); color: #14532d; border: 1px solid #b7dfc6; }
.errors { padding: 14px 18px; border-radius: var(--radius-btn); background: var(--danger-soft); color: var(--danger); border: 1px solid #f5c2bd; }
.errors ul { margin: 6px 0 0; padding-left: 20px; }

/* Формы */
.field { display: flex; flex-direction: column; gap: 8px; }
.label { font-weight: 600; font-size: 15px; }
.hint { font-size: 14px; color: var(--text-3); }
.input, .select, .textarea { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-btn); background: #fff; font: 400 16px/1.5 var(--font-body); color: var(--ink); }
.textarea { min-height: 180px; resize: vertical; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.field-error { font-size: 14px; color: var(--danger); }
.is-invalid { border-color: var(--danger) !important; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--text-2); }
.check input { width: 18px; height: 18px; margin-top: 2px; flex: none; }

/* Мастер заказа */
.wizard { display: flex; flex-direction: column; gap: 20px; }
.step { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.step-head { display: flex; gap: 14px; align-items: baseline; }
.step-num { font-family: var(--font-mono); font-size: 14px; color: var(--primary); }
.step-opt { font-weight: 400; font-size: 14px; color: var(--text-3); font-family: var(--font-body); letter-spacing: 0; }
.choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.choice { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 16px 48px; border: 1px solid var(--line-strong); border-radius: var(--radius-btn); cursor: pointer; background: #fff; }
.choice input { position: absolute; left: 18px; top: 19px; width: 18px; height: 18px; margin: 0; accent-color: var(--primary); }
.choice-title { font-weight: 600; }
.choice-desc { font-size: 14px; color: var(--text-3); }
.choice:has(input:checked) { border: 2px solid var(--primary); background: var(--primary-soft); padding: 15px 17px 15px 47px; }
.choice:has(input:checked) input { left: 17px; top: 18px; }
.choice.is-disabled { cursor: not-allowed; background: var(--ground); color: var(--text-3); }
.soon { position: absolute; right: 12px; top: 12px; font-size: 12px; font-weight: 600; color: var(--text-3); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 2px 8px; }

.drop { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 18px; border: 1px dashed var(--line-strong); border-radius: var(--radius-btn); background: var(--ground); cursor: pointer; }
.drop:hover { border-color: var(--primary); }
.drop input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.drop-icon { width: 40px; height: 40px; border-radius: 8px; background: #fff; border: 1px solid var(--line); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.drop-icon svg { width: 20px; height: 20px; fill: none; stroke: var(--primary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.drop-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.drop-name { font-weight: 600; overflow-wrap: anywhere; }
.drop.has-file { border-style: solid; border-color: var(--primary); background: var(--primary-soft); }
.uploads { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }

.submit-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }

/* Статусы */
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.badge::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: currentColor; }
.badge--neutral { background: var(--ground); color: var(--text-2); border: 1px solid var(--line); }
.badge--info { background: var(--primary-soft); color: var(--primary); }
.badge--success { background: var(--success-soft); color: var(--success); }
.badge--danger { background: var(--danger-soft); color: var(--danger); }
.badge--muted { background: var(--ground); color: var(--text-3); }
.badge--info::before { animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .badge--info::before { animation: none; } }

/* Список заказов */
.table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); }
.orders { width: 100%; min-width: 720px; border-collapse: collapse; }
.orders th { text-align: left; font-size: 13px; font-weight: 600; color: var(--text-3); padding: 14px 20px; background: #FAFBFC; border-bottom: 1px solid var(--line); }
.orders td { padding: 16px 20px; border-top: 1px solid var(--line); vertical-align: middle; }
.orders tr:first-child td { border-top: 0; }
.orders .num a { font-family: var(--font-mono); font-weight: 500; text-decoration: none; }
.orders .status-msg { display: block; margin-top: 4px; font-size: 13px; color: var(--text-3); }
.orders .actions { text-align: right; }

.empty { text-align: center; padding: 64px 24px; display: flex; flex-direction: column; align-items: center; gap: 16px; }

/* Карточка заказа */
.details { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin: 0; }
.details dt { font-size: 13px; color: var(--text-3); margin-bottom: 4px; }
.details dd { margin: 0; font-weight: 600; }
.prompt { white-space: pre-wrap; background: var(--ground); border-radius: var(--radius-btn); padding: 16px 18px; color: var(--text-2); }
.files { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.timeline li { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; }
.timeline time { font-family: var(--font-mono); font-size: 13px; color: var(--text-3); min-width: 130px; }
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }

/* Вход и регистрация */
.auth { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px 16px; }
.auth-box { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: 24px; }
.auth-box .card { display: flex; flex-direction: column; gap: 18px; }
.auth-foot { text-align: center; font-size: 15px; color: var(--text-3); }

/* Пагинация Laravel (pagination::simple-default) */
.pagination { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: 12px; }
.pagination li > a, .pagination li > span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: var(--radius-btn); background: #fff; text-decoration: none; color: var(--ink); font-weight: 600; }
.pagination li.disabled > span { color: var(--text-3); background: var(--ground); }
