/* The admin page (/admin): tables of books and clients, counters of stages, notes. Builds on studio.css. */
.admin-page{background:var(--paper)}
.admin-top{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:16px 28px;border-bottom:1px solid var(--line);background:var(--surface-tint)}
.admin-top .brand{font-size:var(--fs-4)}
.admin-tabs{display:flex;gap:6px}.admin-tabs a{padding:7px 14px;border-radius:var(--r-round);text-decoration:none;font-weight:600;font-size:var(--fs-3)}.admin-tabs a[aria-current="true"]{background:var(--ink);color:var(--on-accent)}
.admin-me{margin-left:auto;font-size:var(--fs-2);color:var(--muted);display:flex;gap:12px;align-items:center}
.admin-main{max-width:1240px;margin:0 auto;padding:24px 28px 60px}
.admin-main h1{font-family:var(--serif);font-weight:400;font-size:var(--fs-7);margin:6px 0 18px}.admin-main h2{font-size:var(--fs-4);margin:28px 0 8px}.admin-main h3{font-size:var(--fs-3);margin:0}
.admin-error{padding:10px 14px;border-radius:var(--radius);background:var(--danger-soft);border:1px solid var(--danger-line)}
.admin-quiet{color:var(--muted);font-size:var(--fs-2)}
.admin-counters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.admin-counter{display:flex;flex-direction:column;align-items:flex-start;min-width:118px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;line-height:1.25}
.admin-counter strong{font-size:var(--fs-5)}.admin-counter span{font-size:var(--fs-1);color:var(--muted)}
.admin-counter[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.admin-counter.attention strong{color:var(--warning)}
.admin-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}
.admin-search input{min-width:280px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:var(--r-round);background:var(--accent-soft);font-size:var(--fs-2)}.admin-chip button{font-size:var(--fs-3);padding:0 6px}
.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-table{width:100%;border-collapse:collapse;font-size:var(--fs-3)}
.admin-table th{text-align:left;font-size:var(--fs-1);font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table tr:last-child td{border-bottom:0}
.admin-row{cursor:pointer}.admin-row:hover,.admin-row:focus-visible{background:var(--surface-sunken)}
.admin-stage{display:inline-block;padding:2px 9px;border-radius:var(--r-round);font-size:var(--fs-1);background:var(--bg);white-space:nowrap}
.stage-ai{background:var(--info-soft)}.stage-layout{background:var(--info-soft)}.stage-approved{background:var(--accent-soft)}.stage-print_request{background:var(--highlight)}.stage-print_files{background:var(--success-soft)}.stage-archived,.stage-legacy{background:var(--bg);color:var(--muted)}
.admin-flag{display:block;font-size:var(--fs-1);color:var(--warning)}
.admin-role{margin-left:8px;padding:1px 8px;border-radius:var(--r-round);font-size:var(--fs-1);background:var(--ink);color:var(--on-accent)}
#books-more,#clients-more{margin-top:14px}
.admin-list{padding-left:18px}
.admin-form{display:grid;gap:10px;max-width:560px;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-form label{display:grid;gap:4px;font-size:var(--fs-2)}.admin-form input,.admin-form select,.admin-form textarea{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}
.admin-form button{justify-self:start}
.admin-book-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted)}
.admin-attention{padding-left:18px;color:var(--warning)}
.admin-notes{list-style:none;padding:0;display:grid;gap:10px;max-width:760px}
.admin-notes li{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-notes p{margin:6px 0 0;white-space:pre-wrap}
.admin-note-head{display:flex;gap:12px;align-items:center;font-size:var(--fs-2)}.admin-note-head .button-text{margin-left:auto}
/* Phones: each row becomes a card with labelled cells. */
@media (max-width:760px){
 .admin-top{padding:12px 16px;gap:12px}.admin-me{margin-left:0;width:100%}
 .admin-main{padding:16px 16px 48px}.admin-main h1{font-size:var(--fs-6)}
 .admin-search input{min-width:0;width:100%}.admin-search{flex:1 1 100%}
 .admin-counter{min-width:calc(50% - 4px)}
 .admin-table-wrap{border:0;background:none;overflow:visible}
 .admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}
 .admin-table tr{margin-bottom:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:6px 0}
 .admin-table td{border:0;padding:4px 12px}.admin-table td[data-label]:not([data-label=""])::before{content:attr(data-label);display:block;font-size:var(--fs-1);color:var(--muted)}
}
.admin-main .button-row{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 10px}
.stage-frames{background:var(--accent-soft)}.stage-printing{background:var(--info-soft)}.stage-shipped{background:var(--warning-soft)}.stage-delivered{background:var(--success-soft)}
.admin-print{margin-top:26px;padding-top:6px;border-top:1px solid var(--line)}
/* «Фото в рамках» (BK-382): a card per request for a composition. */
.admin-wall-orders{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.admin-wall-order{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}
.admin-wall-frames{margin:6px 0;padding-left:18px}
.admin-wall-files{display:grid;gap:6px;justify-items:start;margin:8px 0;padding:10px 12px;border-radius:var(--r-2);background:var(--surface-sunken)}
.request-new{background:var(--highlight)}.request-accepted,.request-printing{background:var(--info-soft)}.request-shipped,.request-ready{background:var(--warning-soft)}.request-delivered{background:var(--success-soft)}.request-cancelled{background:var(--bg);color:var(--muted)}
/* The client (BK-88): the status steps, the CRM card in groups, the side with books, notes and changes. */
.admin-block{display:block}
.admin-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 4px;padding:0;font-size:var(--fs-1)}
.admin-steps li{padding:6px 10px;border-radius:var(--r-round);background:var(--surface);border:1px solid var(--line);color:var(--muted)}
.admin-steps li[aria-current="step"]{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}
.admin-steps li.is-silent{border-color:var(--warning);color:var(--warning);font-weight:600}
.admin-client-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
.admin-card-form{max-width:none}
.admin-card-group{border:0;margin:0 0 6px;padding:0}.admin-card-group legend{font-size:var(--fs-1);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.admin-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.admin-card-grid .field{display:grid;gap:4px;font-size:var(--fs-2)}
.admin-card-grid input,.admin-card-grid select,.admin-card-grid textarea{width:100%;box-sizing:border-box;min-height:40px}
.admin-tags{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px}.admin-tags legend{font-weight:600;margin-bottom:6px}
.admin-check{display:flex!important;gap:8px;align-items:center}
.admin-client-side h2{margin-top:0}
@media(max-width:900px){.admin-client-grid{grid-template-columns:1fr}.admin-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.admin-card-grid{grid-template-columns:1fr}}
.admin-tags>div{display:flex;flex-wrap:wrap;gap:8px 18px}
.admin-consents h3{font-size:var(--fs-2);margin:0 0 4px}.admin-consents p{margin:0 0 4px}
/* «Сегодня» and «Задания ИИ» (BK-88). */
.admin-today-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
.admin-today-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:12px}
.admin-queue{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.admin-queue-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-queue-item>div{min-width:0;display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}
.admin-queue-kind{display:block;width:100%;font-size:var(--fs-1);color:var(--warning)}
.admin-job-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}
.admin-job-card{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.admin-job-card.is-bad{border-color:var(--warning)}
.admin-job-state{font-size:var(--fs-1);font-weight:600}
.admin-job-card.is-bad .admin-job-state,.admin-flag-cell{color:var(--warning)}
@media(max-width:900px){.admin-today-grid{grid-template-columns:1fr}}
.admin-counter.jobs-attention strong,.admin-counter.today-waiting strong{color:var(--warning)}
.admin-tabs{flex-wrap:wrap;min-width:0;max-width:100%}
/* The last AI failure of the book, with its step and the words of the error (21.10) */
.admin-ai-failure{margin-top:18px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--danger);border-radius:var(--r-2);background:var(--danger-soft)}
.admin-ai-failure .ai-failure-detail{margin:4px 0 0;font-size:var(--fs-1);overflow-wrap:anywhere}
.admin-help{margin:16px 0}.admin-help h3{margin:0 0 8px}.admin-help-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.admin-help-list>li{border:1px solid var(--line-soft);border-radius:var(--r-2);padding:10px 14px}.admin-help-message{white-space:pre-wrap}.admin-help-journal{margin:6px 0;padding-left:18px}.admin-help-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin-help-note{flex:1;min-width:200px}
.admin-typo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:16px 0}
