/* Inventory adjustments: the list, the sheet of every product, one adjustment. Uses the product screens' toolbar and
   chips (products.css). */

/* ---------- The sheet ---------- */
.ia-reason { margin-bottom: 1rem; }
.ia-reason-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0 .5rem; }
.ia-count { display: inline-block; min-width: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: rgba(var(--cp-text-rgb), .08); font-size: .75rem; font-weight: 700; }
.btn-primary .ia-count { background: rgba(255, 255, 255, .25); }

.ia-list { display: flex; flex-direction: column; gap: .4rem; }
.ia-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px 136px 118px 36px;
    align-items: center;
    gap: .9rem;
    padding: .45rem .9rem;
    border-left: 3px solid transparent;
}
.ia-row.with-cost { grid-template-columns: minmax(0, 1fr) 88px 136px 118px 96px 36px; }
.ia-row.entered { border-left-color: var(--cp-primary); background: color-mix(in srgb, var(--cp-primary-50) 55%, var(--cp-surface)); }
.ia-row.invalid { border-left-color: var(--cp-danger); }
.ia-row-head {
    padding-top: 0;
    padding-bottom: 0;
    border-left-color: transparent;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--cp-muted);
}
.ia-row-main { display: flex; flex-direction: column; min-width: 0; gap: .1rem; }
.ia-row-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ia-row-sub { display: flex; flex-wrap: wrap; gap: .1rem .7rem; font-size: .78rem; color: var(--cp-muted); min-width: 0; }
.ia-row-barcode { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: nowrap; }
.ia-row-cat { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ia-row-stock { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.ia-row-stock-num { font-weight: 700; font-size: 1rem; }
.ia-row-stock-num.zero { color: var(--cp-danger); }
.ia-row-label { font-size: .72rem; color: var(--cp-muted); }
.ia-row-input .form-control { text-align: center; font-weight: 600; }
.ia-row-result { display: flex; align-items: baseline; gap: .45rem; white-space: nowrap; }
.ia-row-new { font-weight: 700; }
.ia-row-value { text-align: right; color: var(--cp-muted); font-size: .88rem; white-space: nowrap; }
.ia-row-clear { display: flex; justify-content: flex-end; }
.ia-row-clear .btn-icon { width: 30px; height: 30px; }
.ia-row-problem { grid-column: 1 / -1; margin-top: -.2rem; font-size: .8rem; font-weight: 600; color: var(--cp-danger); }

.ia-diff { display: inline-block; padding: .05rem .45rem; border-radius: 999px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.ia-diff.up { background: var(--cp-success-50); color: var(--cp-success-text); }
.ia-diff.down { background: var(--cp-danger-50); color: var(--cp-danger-text); }

@media (max-width: 767.98px) {
    .ia-row, .ia-row.with-cost {
        grid-template-columns: minmax(0, 1fr) auto 30px;
        grid-template-areas: "main main clear" "stock input input" "result result result";
        row-gap: .35rem;
        column-gap: .6rem;
        padding: .55rem .75rem;
    }
    .ia-row-head { display: none; }
    .ia-row-main { grid-area: main; }
    .ia-row-stock { grid-area: stock; flex-direction: row; align-items: baseline; gap: .3rem; }
    .ia-row-input { grid-area: input; }
    .ia-row-input .form-control { width: 150px; margin-left: auto; }
    .ia-row-result { grid-area: result; justify-content: flex-end; }
    .ia-row-result:empty { display: none; }
    .ia-row-value { display: none; }
    .ia-row-clear { grid-area: clear; }
}

/* ---------- Review, moved stock, one adjustment ---------- */
.ia-review { display: flex; flex-direction: column; border: 1px solid var(--cp-border); border-radius: 12px; overflow: hidden; }
.ia-review-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 80px;
    align-items: center;
    gap: .75rem;
    padding: .5rem .85rem;
    border-bottom: 1px solid var(--cp-divider);
}
.ia-review-row:last-child { border-bottom: 0; }
.ia-review .ia-review-row:has(> :nth-child(4)) { grid-template-columns: minmax(0, 1fr) 150px 80px 96px; }
.ia-review-head { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--cp-muted); background: var(--cp-surface-2); }
.ia-review-name { min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.ia-review-stock { white-space: nowrap; }
.ia-review-stock i { font-size: .7rem; color: var(--cp-muted); margin: 0 .2rem; }
.ia-review-value { text-align: right; color: var(--cp-muted); white-space: nowrap; }
.ia-review-total { display: flex; justify-content: flex-end; align-items: center; gap: .6rem; margin-top: .65rem; font-weight: 600; }

@media (max-width: 575.98px) {
    .ia-review-row, .ia-review .ia-review-row:has(> :nth-child(4)) { grid-template-columns: minmax(0, 1fr) auto; row-gap: .2rem; }
    .ia-review-row > :nth-child(n+3) { justify-self: end; }
    .ia-review-head { display: none; }
}

/* The stock moved after it was counted: a choice per product */
.ia-moved-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 100px 56px 70px 250px;
    align-items: center;
    gap: .6rem;
    padding: .5rem .85rem;
    border-bottom: 1px solid var(--cp-divider);
}
.ia-moved-row:last-child { border-bottom: 0; }
.ia-moved-label { display: none; }
.ia-moved-num { white-space: nowrap; }
.ia-moved-choices { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; }
.ia-choice {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: .3rem .4rem;
    border: 1px solid var(--cp-border);
    border-radius: 10px;
    background: var(--cp-surface);
    color: inherit;
    line-height: 1.2;
}
.ia-choice:hover:not(:disabled) { border-color: var(--cp-primary); }
.ia-choice.active { border-color: var(--cp-primary); background: var(--cp-primary-50); box-shadow: inset 0 0 0 1px var(--cp-primary); }
.ia-choice:disabled { opacity: .5; cursor: not-allowed; }
.ia-choice-label { font-size: .7rem; font-weight: 600; color: var(--cp-muted); text-transform: uppercase; letter-spacing: .03em; }
.ia-choice-diff { font-size: .75rem; color: var(--cp-muted); }

@media (max-width: 575.98px) {
    .ia-moved-row { grid-template-columns: repeat(3, auto) 1fr; row-gap: .3rem; }
    .ia-moved-row .ia-review-name { grid-column: 1 / -1; }
    .ia-moved-choices { grid-column: 1 / -1; }
    .ia-moved-label { display: inline; color: var(--cp-muted); font-size: .75rem; }
    .ia-moved-row.ia-review-head { display: none; }
}

.ia-detail { max-width: 960px; }

/* ---------- The list ---------- */
.ia-history { display: flex; flex-direction: column; gap: .45rem; }
.ia-hrow {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto 16px;
    align-items: center;
    gap: .85rem;
    padding: .6rem .9rem;
    color: inherit;
    text-decoration: none;
}
a.ia-hrow:hover { border-color: var(--cp-border-strong); box-shadow: var(--cp-shadow); color: inherit; }
a.ia-hrow:hover .ia-hrow-notes { color: var(--cp-primary-text); }
.ia-hrow-icon { width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--cp-primary-50); color: var(--cp-primary); font-size: 1.1rem; }
.ia-hrow-main { display: flex; flex-direction: column; min-width: 0; gap: .1rem; }
.ia-hrow-notes { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ia-hrow-sub { font-size: .78rem; color: var(--cp-muted); }
.ia-hrow-date { font-size: .85rem; color: var(--cp-muted); white-space: nowrap; }
@media (max-width: 575.98px) {
    .ia-hrow { grid-template-columns: 36px minmax(0, 1fr) 14px; grid-template-areas: "icon main chev" "icon date chev"; row-gap: .1rem; }
    .ia-hrow-icon { grid-area: icon; width: 36px; height: 36px; }
    .ia-hrow-main { grid-area: main; }
    .ia-hrow-date { grid-area: date; font-size: .78rem; }
    .ia-hrow > i { grid-area: chev; }
}

/* =====================================================================================================
   Inventory counts: the list (shares .ia-history), a new count, the counting screen, the camera.
   ===================================================================================================== */

.ic-back { display: inline-flex; align-items: center; gap: .35rem; margin-bottom: .75rem; font-size: .88rem; color: var(--cp-muted); text-decoration: none; }
.ic-back:hover { color: var(--cp-primary); }
.ic-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ia-hrow-icon.ic-kind-units { background: var(--cp-primary-50); color: var(--cp-primary-text); }
.ia-hrow-icon.ic-kind-items { background: var(--cp-success-50); color: var(--cp-success-text); }

/* ---------- A new count ---------- */
.ic-new { max-width: 760px; }
.ic-step { padding: 1rem 1.1rem; margin-bottom: .9rem; }
.ic-step-title { display: flex; align-items: center; gap: .55rem; font-size: 1rem; font-weight: 700; margin-bottom: .8rem; }
.ic-step-num { width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--cp-primary-fill); color: #fff; font-size: .8rem; }
.ic-section-title { font-size: .85rem; font-weight: 600; color: var(--cp-muted); margin-bottom: .45rem; display: flex; gap: .4rem; align-items: center; }
.ic-kinds { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .6rem; }
.ic-kind, .ic-scope {
    display: flex; align-items: center; gap: .75rem; width: 100%; text-align: left;
    padding: .8rem .9rem; border: 1px solid var(--cp-border); border-radius: 12px; background: var(--cp-surface); color: inherit;
}
.ic-kind:hover:not(:disabled), .ic-scope:hover:not(:disabled) { border-color: var(--cp-primary); }
.ic-kind.active, .ic-scope.active { border-color: var(--cp-primary); background: var(--cp-primary-50); box-shadow: inset 0 0 0 1px var(--cp-primary); }
.ic-kind-icon { flex: none; width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--cp-primary-50); color: var(--cp-primary); font-size: 1.3rem; }
.ic-kind.active .ic-kind-icon { background: var(--cp-primary-fill); color: #fff; }
.ic-kind-text { display: flex; flex-direction: column; min-width: 0; }
.ic-kind-name { font-weight: 700; }
.ic-kind-sub { font-size: .8rem; color: var(--cp-muted); }
.ic-scopes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .5rem; }
.ic-scope { justify-content: space-between; }
.ic-scope-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-scope-count { font-size: .8rem; color: var(--cp-muted); white-space: nowrap; }
.ic-subs-label { margin: .85rem 0 .4rem; font-size: .82rem; font-weight: 600; color: var(--cp-muted); }
.ic-start-summary { display: flex; align-items: center; gap: .5rem; margin: .8rem 0; padding: .55rem .75rem; border-radius: 10px; background: var(--cp-surface-2); font-size: .9rem; }
.ic-recent { padding: .8rem 1rem; margin-bottom: .9rem; border-left: 3px solid var(--cp-primary); }
.ic-recent-row { display: flex; align-items: center; gap: .6rem; padding: .45rem .2rem; color: inherit; text-decoration: none; border-top: 1px solid var(--cp-divider); }
.ic-recent-row:first-of-type { border-top: 0; }
.ic-recent-row:hover { color: var(--cp-primary); }
.ic-recent-name { flex: 1; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-recent-when { font-size: .8rem; color: var(--cp-muted); white-space: nowrap; }

/* ---------- Counting ---------- */
.ic-page { max-width: 980px; }
.ic-save-chip { display: inline-flex; align-items: center; font-size: .85rem; }
.ic-save-chip:disabled { opacity: 1; }
.ic-save-chip.state-saved i { color: var(--cp-success); }
.ic-save-chip.state-pending i, .ic-save-chip.state-saving i { color: var(--cp-primary); }
.ic-save-chip.state-saving i { animation: ic-spin 1s linear infinite; }
.ic-save-chip.state-waiting i, .ic-save-chip.state-failed i { color: var(--cp-warning); }
@keyframes ic-spin { to { transform: rotate(360deg); } }

.ic-summary { display: flex; align-items: center; gap: 1.1rem; padding: 1rem 1.1rem; margin-bottom: .8rem; }
.ic-big { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; min-width: 96px; }
.ic-big-num { font-size: 2.3rem; font-weight: 800; letter-spacing: -.02em; }
.ic-big-of { font-size: 1rem; font-weight: 600; color: var(--cp-muted); margin-top: .15rem; }
.ic-big-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--cp-muted); margin-top: .35rem; }
.ic-summary-main { flex: 1; min-width: 0; }
.ic-progress { height: 10px; border-radius: 999px; background: var(--cp-fill); margin-bottom: .6rem; }
.ic-progress .progress-bar { background: var(--cp-success); border-radius: 999px; transition: width .3s ease; }
.ic-stats { display: flex; flex-wrap: wrap; gap: .4rem; }
.ic-stat { display: inline-flex; align-items: baseline; gap: .3rem; padding: .25rem .6rem; border: 1px solid var(--cp-border); border-radius: 999px; background: var(--cp-surface); color: inherit; font-size: .85rem; }
.ic-stat.plain { border-color: transparent; color: var(--cp-muted); padding-left: .2rem; }
.ic-stat.warn strong { color: var(--cp-warning-text); }
.ic-stat.extra strong { color: var(--cp-violet-text); }
.ic-meta { margin-top: .45rem; font-size: .78rem; color: var(--cp-muted); }

.ic-scan { padding: .9rem 1rem; margin-bottom: .8rem; display: flex; flex-direction: column; gap: .6rem; }
.ic-camera-btn { display: flex; align-items: center; justify-content: center; gap: .55rem; padding: .8rem 1rem; font-size: 1.05rem; font-weight: 700; border-radius: 12px; }
.ic-camera-btn i { font-size: 1.35rem; }
.ic-scan-form { display: flex; gap: .45rem; }
.ic-scan-form .form-control { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ic-results { display: flex; flex-direction: column; gap: .35rem; }
.ic-result { display: flex; align-items: center; gap: .6rem; padding: .45rem .65rem; border-radius: 10px; background: var(--cp-surface-2); font-size: .88rem; }
.ic-result i { font-size: 1.05rem; }
.ic-result-text { flex: 1; min-width: 0; }
.ic-result-title { font-weight: 700; }
.ic-result-detail { color: var(--cp-muted); font-size: .8rem; overflow-wrap: anywhere; }
.ic-result.found { background: var(--cp-success-50); } .ic-result.found i { color: var(--cp-success); }
.ic-result.again { background: var(--cp-primary-50); } .ic-result.again i { color: var(--cp-primary); }
.ic-result.extra { background: var(--cp-violet-50); } .ic-result.extra i { color: var(--cp-violet-text); }
.ic-result.info { background: var(--cp-warning-50); } .ic-result.info i { color: var(--cp-warning); }
.ic-result.undone { opacity: .55; }
.ic-result.undone .ic-result-title { text-decoration: line-through; }

.ic-tabs { display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: none; margin-bottom: .6rem; border-bottom: 1px solid var(--cp-border); }
.ic-tabs::-webkit-scrollbar { display: none; }
.ic-tab { flex: none; display: inline-flex; align-items: center; gap: .35rem; padding: .55rem .8rem; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--cp-muted); font-weight: 600; font-size: .9rem; }
.ic-tab:hover { color: var(--cp-text); }
.ic-tab.active { color: var(--cp-primary); border-bottom-color: var(--cp-primary); }
.ic-tab-count { display: inline-block; min-width: 1.5rem; padding: 0 .4rem; border-radius: 999px; background: rgba(var(--cp-text-rgb), .07); font-size: .75rem; text-align: center; }
.ic-tab.active .ic-tab-count { background: var(--cp-primary-50); }
.ic-search { margin-bottom: .7rem; }
.ic-empty { padding: 1.4rem 1rem; text-align: center; color: var(--cp-muted); background: var(--cp-surface); border: 1px dashed var(--cp-border-strong); border-radius: 12px; }

.ic-list { display: flex; flex-direction: column; gap: .6rem; }
.ic-list.card-surface { gap: 0; }
.ic-group { padding: .35rem 0; }
.ic-group-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .35rem .9rem .45rem; border-bottom: 1px solid var(--cp-divider); }
.ic-group-name { font-weight: 700; }
.ic-group-count { font-size: .78rem; font-weight: 700; color: var(--cp-muted); background: rgba(var(--cp-text-rgb), .06); border-radius: 999px; padding: 0 .5rem; }
.ic-unit { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "code action" "meta action"; column-gap: .75rem; row-gap: .1rem; align-items: center; padding: .5rem .9rem; border-bottom: 1px solid var(--cp-divider); transition: background .4s; }
.ic-unit:last-child { border-bottom: 0; }
.ic-unit-code { grid-area: code; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95rem; overflow-wrap: anywhere; }
.ic-code-head { color: var(--cp-muted); }
.ic-code-tail { font-weight: 700; }
.ic-unit-meta { grid-area: meta; display: flex; flex-wrap: wrap; gap: .15rem .6rem; align-items: center; font-size: .76rem; color: var(--cp-muted); }
.ic-unit-action { grid-area: action; }
.ic-unit.flash, .ic-item.flash { background: var(--cp-warning-50); }
.ic-tag { display: inline-block; padding: 0 .45rem; border-radius: 999px; font-size: .72rem; font-weight: 700; }
.ic-tag.layaway { background: var(--cp-orange-50); color: var(--cp-orange-text); }
.ic-tag.added { background: var(--cp-primary-50); color: var(--cp-primary-text); }
.ic-tag.sold { background: var(--cp-danger-50); color: var(--cp-danger-text); }

.ic-item { display: grid; grid-template-columns: minmax(0, 1fr) 70px 164px 110px; align-items: center; gap: .75rem; padding: .55rem .9rem; border-bottom: 1px solid var(--cp-divider); transition: background .4s; }
.ic-item:last-child { border-bottom: 0; }
.ic-item.counted { background: color-mix(in srgb, var(--cp-success-50) 45%, var(--cp-surface)); }
.ic-item.counted.flash { background: var(--cp-warning-50); }
.ic-item-main { min-width: 0; }
.ic-item-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-item-sub { display: flex; flex-wrap: wrap; gap: .1rem .6rem; font-size: .78rem; color: var(--cp-muted); }
.ic-item-expected { display: flex; flex-direction: column; align-items: flex-end; font-weight: 700; line-height: 1.15; }
.ic-item-label { font-size: .7rem; font-weight: 500; color: var(--cp-muted); }
.ic-item-count { display: flex; align-items: center; gap: .3rem; }
.ic-step-btn { width: 38px; height: 38px; padding: 0; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; }
.ic-count-input { text-align: center; font-weight: 700; padding-left: .3rem; padding-right: .3rem; }
.ic-item-diff { text-align: right; }
.ic-diff { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.ic-diff.none { background: rgba(var(--cp-text-rgb), .06); color: var(--cp-muted); }
.ic-diff.ok { background: var(--cp-success-50); color: var(--cp-success-text); }
.ic-diff.short { background: var(--cp-danger-50); color: var(--cp-danger-text); }
.ic-diff.over { background: var(--cp-primary-50); color: var(--cp-primary-text); }
@media (max-width: 767.98px) {
    .ic-item { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "main main" "count diff"; row-gap: .4rem; }
    .ic-item-main { grid-area: main; }
    .ic-item-expected { display: none; }
    .ic-item-count { grid-area: count; }
    .ic-item-diff { grid-area: diff; }
    .ic-count-input { width: 70px; }
}

.ic-extra { display: flex; align-items: center; gap: .7rem; padding: .55rem .9rem; border-bottom: 1px solid var(--cp-divider); }
.ic-extra:last-child { border-bottom: 0; }
.ic-extra-icon { color: var(--cp-violet-text); font-size: 1.1rem; }
.ic-extra-main { flex: 1; min-width: 0; }
.ic-extra-code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 700; overflow-wrap: anywhere; }
.ic-extra-sub { display: flex; flex-wrap: wrap; gap: .1rem .6rem; font-size: .78rem; color: var(--cp-muted); }

.ic-finish { margin: 1.2rem 0 1.5rem; text-align: center; }
.ic-finish .btn { min-width: 240px; }
.ic-finish .form-text { max-width: 560px; margin: .5rem auto 0; }
.ic-finish-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: .8rem; }
.ic-finish-stat { display: flex; flex-direction: column; align-items: center; padding: .6rem .4rem; border-radius: 12px; background: var(--cp-surface-2); text-align: center; }
.ic-finish-stat strong { font-size: 1.6rem; line-height: 1.1; }
.ic-finish-stat span { font-size: .78rem; color: var(--cp-muted); }
.ic-finish-stat.ok strong { color: var(--cp-success-text); }
.ic-finish-stat.warn strong { color: var(--cp-warning-text); }
.ic-finish-stat.extra strong { color: var(--cp-violet-text); }
.ic-finish-list { max-height: 240px; overflow-y: auto; border: 1px solid var(--cp-border); border-radius: 10px; margin-bottom: .7rem; }
.ic-finish-row { display: flex; justify-content: space-between; gap: .6rem; padding: .4rem .7rem; border-bottom: 1px solid var(--cp-divider); font-size: .85rem; }
.ic-finish-row:last-child { border-bottom: 0; }
.ic-finish-save { margin-bottom: .35rem; }

@media (max-width: 575.98px) {
    .ic-summary { gap: .8rem; padding: .85rem; }
    .ic-big { min-width: 76px; }
    .ic-big-num { font-size: 1.9rem; }
}

/* ---------- The camera ---------- */
.bc-overlay { position: fixed; inset: 0; z-index: 1085; background: #000; color: #fff; display: flex; flex-direction: column; overscroll-behavior: contain; }
.bc-stage { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.bc-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; }
.bc-window {
    position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%);
    width: min(88vw, 560px); height: min(30vh, 220px); border-radius: 18px;
    box-shadow: 0 0 0 200vmax rgba(0, 0, 0, .38); border: 2px solid rgba(255, 255, 255, .85); pointer-events: none;
}
.bc-laser { position: absolute; left: 6%; right: 6%; top: 50%; height: 2px; background: var(--cp-danger); box-shadow: 0 0 10px var(--cp-danger); animation: bc-sweep 2.2s ease-in-out infinite; }
@keyframes bc-sweep { 0%, 100% { transform: translateY(-70px); } 50% { transform: translateY(70px); } }
@media (prefers-reduced-motion: reduce) { .bc-laser { animation: none; } }
.bc-hint { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); width: max-content; max-width: 90vw; padding: .35rem .75rem; border-radius: 999px; background: rgba(0, 0, 0, .55); font-size: .82rem; text-align: center; }
.bc-message { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: 1.5rem; text-align: center; }
.bc-message i { font-size: 2.2rem; opacity: .8; }
.bc-top { position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: .5rem; padding: calc(env(safe-area-inset-top, 0px) + .6rem) .75rem .9rem; background: linear-gradient(rgba(0, 0, 0, .65), rgba(0, 0, 0, 0)); }
.bc-icon { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1.15rem; display: inline-flex; align-items: center; justify-content: center; }
.bc-icon.on { background: var(--cp-warning); color: #111; }
.bc-title { flex: 1; min-width: 0; }
.bc-title-main { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-title-sub { font-size: .78rem; opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-sheet { flex: none; max-height: 46vh; overflow-y: auto; background: var(--cp-surface); color: var(--cp-text); border-radius: 18px 18px 0 0; margin-top: -18px; position: relative; padding: .85rem 1rem calc(env(safe-area-inset-bottom, 0px) + .85rem); }
.bc-count { margin-bottom: .6rem; }
.bc-count-num { font-size: .95rem; margin-bottom: .35rem; }
.bc-count-num strong { font-size: 1.35rem; }
.bc-progress { height: 8px; border-radius: 999px; background: var(--cp-fill); }
.bc-progress .progress-bar { background: var(--cp-success); border-radius: 999px; transition: width .3s ease; }
.bc-count-extra { margin-top: .35rem; font-size: .8rem; color: var(--cp-violet-text); font-weight: 600; }
.bc-item { display: flex; align-items: center; gap: .5rem; padding: .55rem .7rem; margin-bottom: .55rem; border-radius: 12px; background: var(--cp-success-50); }
.bc-item-main { flex: 1; min-width: 0; }
.bc-item-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-item-sub { font-size: .82rem; color: var(--cp-muted); }
.bc-step { flex: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--cp-border); background: var(--cp-surface); font-size: 1.1rem; }
.bc-step:disabled { opacity: .45; }
.bc-results { display: flex; flex-direction: column; gap: .35rem; }
.bc-empty { font-size: .85rem; color: var(--cp-muted); }
.bc-result { display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem; border-radius: 12px; background: var(--cp-surface-2); animation: bc-in .18s ease-out; }
.bc-result:first-child { font-size: 1.02rem; }
.bc-result i { font-size: 1.25rem; }
.bc-result-text { flex: 1; min-width: 0; }
.bc-result-title { font-weight: 700; }
.bc-result-detail { font-size: .8rem; color: var(--cp-muted); overflow-wrap: anywhere; }
.bc-result.found { background: var(--cp-success-50); } .bc-result.found i { color: var(--cp-success); }
.bc-result.again { background: var(--cp-primary-50); } .bc-result.again i { color: var(--cp-primary); }
.bc-result.extra { background: var(--cp-violet-50); } .bc-result.extra i { color: var(--cp-violet-text); }
.bc-result.info { background: var(--cp-warning-50); } .bc-result.info i { color: var(--cp-warning); }
.bc-result.undone { opacity: .5; }
.bc-result.undone .bc-result-title { text-decoration: line-through; }
.bc-undo { flex: none; border: 0; background: none; color: var(--cp-primary); font-weight: 700; padding: .35rem .5rem; }
.bc-undo:disabled { color: var(--cp-muted); }
@keyframes bc-in { from { transform: translateY(6px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (min-width: 992px) {
    .bc-overlay { flex-direction: row; }
    .bc-sheet { width: 380px; max-height: none; border-radius: 0; margin-top: 0; }
}
.ic-more { display: flex; justify-content: center; gap: .5rem; margin-top: .6rem; }
.ic-more .btn { font-size: .88rem; text-decoration: none; }
@media (max-width: 575.98px) {
    .ic-summary { flex-wrap: wrap; row-gap: .5rem; }
    .ic-big { flex-direction: row; align-items: baseline; gap: .4rem; width: 100%; }
    .ic-big-label { margin-top: 0; }
    .ic-summary-main { width: 100%; flex-basis: 100%; }
}
