/* Личный кабинет клиента: те же токены, что у сайта (style.css) */
.cab{max-width:960px;margin-inline:auto;padding:clamp(32px,5vw,72px) var(--gutter) clamp(64px,9vw,120px);display:grid;gap:20px}
.cab h1{font-size:clamp(32px,4.4vw,56px);line-height:1.02;letter-spacing:-.04em;font-weight:700;margin:0}
.cab-status{margin:0;min-height:1.4em;color:var(--muted);font-size:14px}
.cab-status.error{color:var(--danger)}
.cab-card{display:grid;gap:16px;padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--card)}
.cab-login{max-width:520px}
.cab-lead{margin:0;color:var(--muted);line-height:1.5}
.cab-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.cab-bar .button{width:auto;padding:10px 16px}
.cab-panel{display:grid;gap:14px}
.cab-panel[hidden]{display:none}
.cab-empty{margin:0;padding:24px;border:1px dashed var(--line);border-radius:var(--r-lg);color:var(--muted)}
.cab-empty a,.cab-files a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.cab-order{display:grid;gap:10px;padding:clamp(18px,2.6vw,26px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.cab-order.done{opacity:.86}
.cab-order-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cab-order-head strong{font-family:var(--font-mono);font-size:15px}
.cab-date{color:var(--muted);font-size:13px}
.cab-badge{margin-left:auto;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--on-accent)}
.cab-badge.s-done,.cab-badge.s-cancelled{background:transparent;border:1px solid var(--line);color:var(--muted)}
.cab-title{margin:0;font-size:18px;font-weight:600}
.cab-params{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.cab-facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;font-size:14px}
.cab-facts dt{color:var(--muted)}
.cab-facts dd{margin:0}
.cab-sub{margin:0;font-size:13px;font-weight:600;color:var(--muted)}
.cab-files{margin:0;padding-left:18px;font-size:14px;line-height:1.6}
.cab-msgs{display:grid;gap:6px}
.cab-msg{margin:0;padding:8px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--ink) 6%,transparent);font-size:14px;line-height:1.45;white-space:pre-wrap}
.cab-msg-form{display:grid;gap:8px}
.cab-msg-form textarea{min-height:64px;resize:vertical}
.cab-order>.button,.cab-msg-form .button,#cab-profile>.button{width:auto;justify-self:start}
#cab-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
#cab-fields .cab-group{grid-column:1/-1;margin:10px 0 0;font-size:16px;letter-spacing:-.01em}
#cab-fields .lead-field[hidden]{display:none}
/* «Кто заказывает» — как переключатель «Я знаю, что нужно / Подберите за меня» на главной (calc.css .ipm-modes) */
.cab-modes-title{margin:0 0 8px;font:600 12px/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}
.cab-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;border-radius:var(--r-lg);background:var(--field);border:2px solid var(--accent)}
.cab-modes button{display:grid;gap:4px;align-content:center;min-height:68px;padding:12px 18px;border-radius:var(--r-md);text-align:left;color:var(--ink);background:var(--card);border:1px solid var(--line);cursor:pointer;transition:background .3s var(--ease),color .3s,border-color .3s,transform .3s var(--ease)}
.cab-modes button b{font-size:17px;font-weight:700;line-height:1.2}
.cab-modes button small{font-size:13px;line-height:1.3;color:var(--muted)}
.cab-modes button:hover{border-color:var(--accent-text);transform:translateY(-1px)}
.cab-modes button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.cab-modes button[aria-pressed=true] small{color:var(--on-accent);opacity:.8}
.cab .calc-tabs{margin:0}
@media (max-width:640px){#cab-fields{grid-template-columns:1fr}.cab-badge{margin-left:0}.cab-modes{grid-template-columns:1fr}}
