/* Bismillah - static/ui/tools/prep.css — interview-preparation tools
   (question_journal, interview_ace, outfit_helper; tools_prep.py).
   Builds on kit.css (.xt-*) and expertini-ui.css tokens (--x-*).
   Prefixes: .xp- shared · .qj- journal · .ace- board · .of- outfit. */

/* ── shared ── */
.xp-small{font-size:12.5px;line-height:1.5;margin:0}
.xp-card{background:#fff;border:1px solid var(--x-border);border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04);min-width:0}
.xp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.xp-bar__q{flex:1 1 240px;background:#fff}
.xp-select{height:44px;padding:0 34px 0 12px;border-radius:12px;border:1px solid var(--x-border);background:#fff;font:500 13.5px var(--x-f-body);color:var(--x-text-2);cursor:pointer;max-width:100%}
.xp-select:focus{outline:0;border-color:var(--x-primary);box-shadow:var(--x-ring)}
.xp-label{display:block;font-size:12.5px;font-weight:500;color:var(--x-subtext);margin-bottom:6px}
.xp-narrow{max-width:260px}
.xp-fs{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:12px}
.xp-fs+.xp-fs{padding-top:14px;border-top:1px solid var(--x-border)}
.xp-fs legend{padding:0;margin:0 0 10px;font:600 11.5px var(--x-f-body);letter-spacing:.07em;text-transform:uppercase;color:var(--x-subtext)}
.xp-acts{justify-content:flex-end!important;margin-top:4px}
.xp-acts .x-btn{min-width:0!important}
.xp-loading{display:flex;flex-direction:column;gap:12px}
.xp-loading .xt-skel{padding:18px;background:#fff;border:1px solid var(--x-border);border-radius:16px}
.xp-tip p{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--x-text-3)}
.xp-tip a{color:var(--x-primary)!important;font-weight:600}
.xp-tip .xt-h .x-ico{color:#d97706}

[data-of] .xt-ai__h,[data-ace] .xt-ai__h{flex-wrap:wrap;row-gap:2px}
[data-qj]>.x-ad,[data-ace]>.x-ad,[data-of]>.x-ad{margin-top:26px}

/* empty state */
.xp-empty{padding:34px 24px 28px;text-align:center;border:1.5px dashed #dbe3ee;border-radius:18px;background:rgba(255,255,255,.7)}
.xp-empty .x-itile{margin:0 auto 12px;width:48px;height:48px;border-radius:14px}
.xp-empty h2{margin:0 0 6px;font:600 18px/1.3 var(--x-f-disp)!important;color:var(--x-text)!important}
.xp-empty>p{margin:0 auto 18px;max-width:520px;font-size:13.5px;line-height:1.6;color:var(--x-text-3)}
.xp-steps{counter-reset:xp;list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;text-align:left}
.xp-steps li{counter-increment:xp;position:relative;padding:14px 14px 14px 46px;background:#fff;border:1px solid var(--x-border);border-radius:14px;font-size:12.5px;line-height:1.5;color:var(--x-subtext)}
.xp-steps li::before{content:counter(xp);position:absolute;left:14px;top:14px;width:22px;height:22px;border-radius:50%;background:rgba(37,99,235,.1);color:var(--x-primary);font:700 12px/22px var(--x-f-body);text-align:center}
.xp-steps b{display:block;margin-bottom:2px;font-size:13.5px;font-weight:600;color:var(--x-text)}

/* calendar date tile */
.xp-cal{flex:none;width:54px;padding:7px 0 6px;border-radius:12px;text-align:center;background:linear-gradient(160deg,rgba(37,99,235,.1),rgba(6,182,212,.1));border:1px solid rgba(37,99,235,.15)}
.xp-cal b{display:block;font:700 20px/1.1 var(--x-f-disp);color:var(--x-secondary)}
.xp-cal span{display:block;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--x-subtext)}
.xp-cal--none{background:#f8fafc;border-color:var(--x-border);padding:12px 2px}
.xp-cal--none span{font-size:10px;text-transform:none;letter-spacing:0}

/* 1–5 dots + rating picker */
.xp-dots{display:inline-flex;gap:3px;align-items:center}
.xp-dots i{width:7px;height:7px;border-radius:50%;background:#e2e8f0}
.xp-dots i.is-on{background:linear-gradient(135deg,#f59e0b,#ef4444)}
.xp-rate{display:flex;gap:6px}
.xp-rate label{flex:1;min-width:0;cursor:pointer;text-align:center}
.xp-rate input{position:absolute;opacity:0;width:1px;height:1px}
.xp-rate span{display:flex;align-items:center;justify-content:center;height:40px;border-radius:11px;border:1px solid var(--x-border);background:#fff;font:600 14px var(--x-f-body);color:var(--x-text-3);transition:.15s}
.xp-rate small{display:block;margin-top:4px;font-size:10.5px;color:var(--x-subtext);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xp-rate label:hover span{border-color:var(--x-primary)}
.xp-rate input:checked+span{background:var(--x-grad);border-color:transparent;color:#fff;box-shadow:0 4px 10px rgba(37,99,235,.25)}
.xp-rate input:focus-visible+span{box-shadow:var(--x-ring)}

/* checkbox list (outfit checklist, AI task picker) */
.xp-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
.xp-checks label{display:flex;align-items:flex-start;gap:9px;padding:6px 2px;font-size:13px;line-height:1.4;color:var(--x-text-2);cursor:pointer}
.xp-checks input{flex:none;width:17px;height:17px;margin:1px 0 0;accent-color:var(--x-primary)}
.xp-checks input:checked+span{color:var(--x-subtext);text-decoration:line-through;text-decoration-color:rgba(100,116,139,.5)}
.xp-checks--one{grid-template-columns:1fr}
.xp-checks--plain input:checked+span{text-decoration:none;color:var(--x-text-2)}
/* expertini-ui.css resets li list-style (:where(.x-ui) li) — bring bullets back where text is a list */
.xt-guide ul>li,.xt-ai .xt-prose ul>li{list-style:disc}
.ace-qs>li{list-style:decimal}
.xp-check{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.45;color:var(--x-text-2);cursor:pointer}
.xp-check input{flex:none;width:17px;height:17px;margin:1px 0 0;accent-color:var(--x-primary)}
.xp-check small{color:var(--x-subtext)}
.xp-check[hidden]{display:none!important}

/* ── question journal ── */
.qj-group{overflow:hidden}
.qj-group__h{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:linear-gradient(180deg,#fbfcfe,#fff);border-bottom:1px solid var(--x-border)}
.qj-group__main{flex:1;min-width:0}
.qj-group__t{margin:2px 0 3px;font:600 15px/1.35 var(--x-f-disp)!important;color:var(--x-text)!important;overflow-wrap:anywhere}
.qj-group__chips{margin-top:8px}
.qj-group__acts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.qj-group__acts .x-btn .x-ico,.xp-btnrow .x-btn .x-ico{width:14px;height:14px;margin-right:5px}
.qj-qs{list-style:none;margin:0;padding:0}
.qj-q{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-top:1px solid #f1f5f9}
.qj-q:first-child{border-top:0}
.qj-q__main{flex:1;min-width:0}
.qj-q__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.qj-q__t{margin:0 0 4px;font:600 14px/1.45 var(--x-f-disp);color:var(--x-text);overflow-wrap:anywhere}
.qj-q__a{margin:0;font-size:13px;line-height:1.6;color:var(--x-text-3);white-space:pre-line;overflow-wrap:anywhere}
.qj-q__n{margin:6px 0 0;padding-left:10px;border-left:2px solid #e2e8f0;font-size:12.5px;line-height:1.5;color:var(--x-subtext);overflow-wrap:anywhere}
.qj-qs--flat .qj-q .xt-item__m{margin-bottom:6px}
.qj-dbf__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
.qj-dbf__s h4{margin-top:4px!important}
.qj-dbf__s .x-btn{margin-top:2px}
.qj-email{margin:6px 0 14px;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--x-border)}
.qj-email__h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.qj-email__h h4{margin:0;font:600 14.5px/1.35 var(--x-f-disp)!important;color:var(--x-text)!important}
.qj-email__b{margin:0;white-space:pre-line;font-size:13.5px;line-height:1.65;color:var(--x-text-2)}
#qj-dbf .xt-ai{margin-top:10px;text-align:left}

/* ── interview ace board ── */
.ace-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.ace-tab{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:170px;max-width:240px;padding:10px 14px;border-radius:14px;border:1px solid var(--x-border);
  background:#fff;cursor:pointer;text-align:left;font-family:var(--x-f-body);transition:.15s}
.ace-tab:hover{border-color:rgba(37,99,235,.4)}
.ace-tab.is-on{border-color:var(--x-primary);box-shadow:var(--x-ring);background:linear-gradient(160deg,rgba(37,99,235,.05),#fff)}
.ace-tab b{display:block;max-width:100%;font:600 13.5px/1.3 var(--x-f-disp);color:var(--x-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ace-tab span{font-size:12px;color:var(--x-subtext);white-space:nowrap}
.ace-tab span.is-soon{color:#b45309;font-weight:600}
.ace-tab span.is-past{color:var(--x-subtext)}
.ace-tab--add{justify-content:center;align-items:center;flex-direction:row;gap:6px;min-width:150px;border-style:dashed;color:var(--x-primary);font-weight:600;font-size:13px}
.ace-tab--add .x-ico{width:15px;height:15px}
.ace-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ace-head__main{flex:1;min-width:220px}
.ace-head__t{margin:0 0 4px;font:600 19px/1.3 var(--x-f-disp)!important;color:var(--x-text)!important;overflow-wrap:anywhere}
.ace-count{flex:none;text-align:center;padding:10px 14px;border-radius:14px;background:#fff;border:1px solid var(--x-border);min-width:96px}
.ace-count b{display:block;font:700 26px/1 var(--x-f-disp);color:var(--x-text)}
.ace-count span{font-size:11.5px;color:var(--x-subtext)}
.ace-count.is-soon b{color:#b45309}
.ace-prog{margin-top:12px;max-width:520px}
.xp-btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ace-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ace-add .x-fld{flex:1 1 260px;background:#fff}
.ace-board{grid-auto-columns:minmax(230px,1fr)}
.ace-board .xt-col{min-height:200px}
.ace-col__sub{margin:-8px 4px 10px;font-size:11.5px;color:var(--x-subtext)}
.ace-col__empty{margin:0;padding:18px 8px;text-align:center;font-size:12px;color:#94a3b8;border:1.5px dashed #e2e8f0;border-radius:12px}
.ace-card{position:relative;border-left:3px solid #cbd5e1}
.ace-card--high{border-left-color:#ef4444}
.ace-card--medium{border-left-color:#f59e0b}
.ace-card--low{border-left-color:#10b981}
.ace-card .xt-card__acts{align-items:center}
.ace-card .xt-icbtn{width:28px;height:28px;border-radius:7px}
.ace-card .xt-icbtn .x-ico{width:14px;height:14px}
.ace-card__pri{margin-right:auto;font-size:11px;font-weight:600;letter-spacing:.02em}
.ace-card--high .ace-card__pri{color:#dc2626}.ace-card--medium .ace-card__pri{color:#b45309}.ace-card--low .ace-card__pri{color:#047857}
.ace-col--ready .xt-card h4{color:var(--x-subtext)!important}
.ace-qs{margin:0;padding-left:20px}
.ace-qs li{margin:0 0 8px;font-size:13.5px;line-height:1.55;color:var(--x-text-2)}
.ace-qs li .xt-link{margin-left:6px;font-size:12px}
.ace-ai-tasks{max-height:340px;overflow-y:auto;padding:4px 2px}
.ace-ai-tasks .xp-checks label{align-items:center}
.ace-ai-tasks small{margin-left:auto;padding-left:8px;font-size:11px;color:var(--x-subtext);white-space:nowrap}

/* ── outfit helper ── */
.of-seg{display:flex;width:100%}
.of-seg button{flex:1}
.of-guide{margin-top:16px}
[data-of-guide] h3{margin:0 0 14px;font:600 15px/1.35 var(--x-f-disp)!important;color:var(--x-text)!important}
[data-of-guide] .xp-label{margin:0 0 8px;font-weight:600;color:var(--x-text-3)}
.of-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.of-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.of-list li{position:relative;padding:9px 12px 9px 34px;border-radius:11px;font-size:13px;line-height:1.5;color:var(--x-text-2)}
.of-list li::before{position:absolute;left:12px;top:9px;font-weight:700}
.of-list--do li{background:#f0fdf4;border:1px solid #dcfce7}
.of-list--do li::before{content:'\2713';color:#16a34a}
.of-list--dont li{background:#fef2f2;border:1px solid #fee2e2}
.of-list--dont li::before{content:'\2715';color:#dc2626}
.of-list h4{margin:0}
.of-src{margin:10px 0 0;font-size:11.5px;color:var(--x-subtext)}
.of-ai-out{margin-top:16px}
.of-ai-grid{display:flex;flex-direction:column;gap:2px}
.of-ai-grid h4{margin-top:6px!important}
.of-plan{display:flex;gap:14px;padding:16px 18px;align-items:flex-start}
.of-plan__main{flex:1;min-width:0}
.of-plan__t{margin:0 0 3px;font:600 15px/1.35 var(--x-f-disp)!important;color:var(--x-text)!important;overflow-wrap:anywhere}
.of-plan__outfit{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--x-text-3);white-space:pre-line;overflow-wrap:anywhere}
.of-plan__prog{display:flex;align-items:center;gap:10px;margin:12px 0 8px;font-size:12px;color:var(--x-subtext)}
.of-plan__prog .xt-bar{flex:1;max-width:260px}
.of-plan.is-done{opacity:.8}
.of-plan.is-done .xp-cal{filter:grayscale(1)}
.of-plan .xt-item__acts{flex-direction:column}

@media (max-width:1100px){.qj-dbf__grid{grid-template-columns:1fr}}
@media (max-width:720px){
  .xp-steps{grid-template-columns:1fr}
  .xp-bar .xt-seg{width:100%}
  .xp-bar .xt-seg button{flex:1}
  .xp-bar .xp-select{flex:1 1 140px}
  .qj-group__h{flex-wrap:wrap;padding:14px}
  .qj-group__main{flex-basis:calc(100% - 70px)}
  .qj-group__acts{width:100%;justify-content:flex-start}
  .qj-q{position:relative;padding:12px 14px}
  .qj-q .xt-item__acts{position:absolute;top:9px;right:12px;gap:4px}
  .qj-q .xt-icbtn{width:28px;height:28px}
  .qj-q__top{padding-right:96px;min-height:28px}
  .xp-rate small{display:none}
  .xp-checks{grid-template-columns:1fr}
  .of-cols{grid-template-columns:1fr}
  .of-plan{flex-wrap:wrap;padding:14px}
  .of-plan .xt-item__acts{flex-direction:row;width:100%;justify-content:flex-end}
  .ace-head{gap:12px}
  .ace-count{display:flex;align-items:baseline;gap:6px;padding:6px 12px;min-width:0;border-radius:99px}
  .ace-count b{font-size:17px}
  .xp-btnrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .xp-btnrow .x-btn{justify-content:center;padding-left:8px;padding-right:8px}
  .xp-btnrow .xt-ai-btn{grid-column:1/-1}
  .ace-add .xp-select{flex:1 1 120px;min-width:0}
  .ace-add .x-fld{flex-basis:100%}
  .ace-head__t{font-size:17px!important}
  .xp-acts{flex-direction:column-reverse;align-items:stretch!important}
  .xp-acts .x-btn{width:100%;justify-content:center}
}
@media print{.xp-bar,.qj-group__acts,.xt-item__acts{display:none!important}}
