/* Member-only styles (login, draft board, logged-in extras on the tracker).
   Loaded on top of style.css and never on the public page for visitors
   who aren't logged in. */

.home-link { color: inherit; text-decoration: none; }

.btn-primary, .btn-small {
    font: inherit;
    font-weight: 600;
    border: 1px solid var(--line-strong);
    background: var(--green);
    color: var(--paper);
    cursor: pointer;
    border-radius: var(--r-sm);
}
.btn-primary { padding: 0.6rem 1rem; font-size: 1rem; }
.btn-small { padding: 0.25rem 0.7rem; font-size: 0.8rem; }
.btn-primary:disabled { opacity: 0.6; cursor: wait; }
.btn-ghost {
    font: inherit;
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--line-strong);
    background: var(--card);
    color: var(--ink);
    cursor: pointer;
    border-radius: var(--r-sm);
}
.btn-ghost:hover { background: var(--hover); }
.btn-ghost.done { border-color: var(--line); color: var(--green); cursor: default; background: var(--green-soft); }

/* ---------- login ---------- */

.auth-panel { max-width: 26rem; margin: 1.5rem auto; }
.auth-tabs { margin-bottom: 1rem; }
.auth-form { display: grid; gap: 0.8rem; }
.auth-form label {
    display: grid;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}
.auth-form input {
    font: inherit;
    font-size: 1rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--line-strong);
    background: var(--card);
    color: var(--ink);
    border-radius: var(--r-sm);
}
.auth-form input:focus { outline: 2px solid var(--green); outline-offset: 1px; }

.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* member bar styles live in style.css (shown to all visitors) */
.card-board-btn { margin-top: 0.5rem; }

/* "+" on the finder tiles */
.player-tile { position: relative; }
.tile-board-btn {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--card);
    color: var(--ink);
    font: 700 1rem/1 "DM Mono", ui-monospace, monospace;
    cursor: pointer;
}
.tile-board-btn:hover { border-color: var(--line-strong); background: var(--green-dark); color: var(--on-accent); }
.tile-board-btn.done { border-color: var(--green); background: var(--green); color: var(--on-accent); }
.tile-board-btn.done:hover { border-color: var(--red); background: var(--red); color: var(--on-accent); }
.tile-board-btn:disabled { opacity: 0.6; }

/* ---------- draft board ---------- */

.member-links { margin: 0.45rem 0 0; font-size: 0.85rem; }
.board-main { max-width: 72rem; }
.count { color: var(--muted); font-weight: 400; }
.board-head-actions { display: flex; align-items: center; gap: 0.7rem; }
.b-toast {
    position: fixed;
    left: 50%;
    bottom: 1.2rem;
    transform: translate(-50%, 1rem);
    background: var(--green);
    color: var(--paper);
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.8rem;
    padding: 0.55rem 0.9rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s, transform 0.2s;
    z-index: 50;
}
.b-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* one platform chosen in settings: the lone tab is a label, not a toggle */
.platform-tabs.single-platform button { cursor: default; }
.save-state { font-family: "DM Mono", ui-monospace, monospace; font-size: 0.72rem; color: var(--muted); }

.board-options { justify-content: space-between; }
.toggle { font-size: 0.85rem; display: inline-flex; gap: 0.35rem; align-items: center; cursor: pointer; }
.quick-add { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.quick-add select {
    font: inherit;
    font-size: 0.8rem;
    padding: 0.2rem 0.3rem;
    border: 1px solid var(--line);
    background: var(--card);
    color: var(--ink);
    border-radius: var(--r-sm);
}

.board-list { list-style: none; margin: 0.6rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.board-empty { color: var(--muted); padding: 1rem 0; }

.b-row {
    display: grid;
    grid-template-columns: auto auto 3.2rem 1fr auto auto auto;
    gap: 0.8rem;
    align-items: start;
    background: var(--card);
    border: 1px solid var(--line);
    padding: 0.7rem 0.8rem;
    border-radius: var(--r);
}
.b-row:hover { border-color: var(--faint); }
.b-ghost { opacity: 0.35; background: var(--hover); }
.b-chosen { border-color: var(--line-strong); box-shadow: 0 4px 14px rgba(18, 33, 26, 0.15); }

.b-handle {
    cursor: grab;
    user-select: none;
    touch-action: none;
    color: var(--muted);
    font-size: 1.3rem;
    line-height: 1;
    padding: 0.35rem 0.1rem;
    align-self: center;
}
.b-handle:active { cursor: grabbing; }

.b-rank { display: grid; justify-items: center; gap: 0.15rem; min-width: 3.2rem; }
.b-rank-num {
    font-family: "Outfit", system-ui, sans-serif;
    font-size: 1.35rem;
    line-height: 1.2;
    color: var(--ink);
}
.b-rank-pos, .b-rank-overall {
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.62rem;
    color: var(--muted);
    white-space: nowrap;
}
.b-rank-pos { color: var(--green); font-weight: 600; }

.b-row img {
    width: 3.2rem;
    height: 3.2rem;
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--paper);
}

.b-main { min-width: 0; }
.b-name { display: flex; flex-wrap: wrap; gap: 0.2rem 0.6rem; align-items: baseline; }
.b-name a {
    font-family: "Outfit", system-ui, sans-serif;
    font-size: 1.15rem;
    letter-spacing: -0.005em;
    color: var(--ink);
    text-decoration: none;
}
.b-name a:hover { color: var(--green); text-decoration: underline; }
.b-meta { font-family: "DM Mono", ui-monospace, monospace; font-size: 0.74rem; color: var(--muted); }

.b-elig-head {
    margin-top: 0.4rem;
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
}
.b-elig { display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; margin-top: 0.15rem; }
.b-plat { display: inline-flex; gap: 0.2rem; align-items: center; }
.b-plat-name {
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.66rem;
    color: var(--muted);
    margin-right: 0.1rem;
}
.b-plat.on .b-plat-name { color: var(--ink); font-weight: 600; }
.b-elig .pill {
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.64rem;
    padding: 0.08rem 0.35rem;
    border-radius: 999px;
    border: 1px solid transparent;
}
.pill.dflt { background: var(--chip); color: var(--muted); border-color: var(--line); }

.b-hit { display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem; align-items: flex-end; margin-top: 0.55rem; }
.b-splits { border-collapse: collapse; font-family: "DM Mono", ui-monospace, monospace; font-size: 0.74rem; font-variant-numeric: tabular-nums; }
.b-splits th, .b-splits td { padding: 0.12rem 0.45rem; text-align: right; }
.b-splits thead th { font-size: 0.6rem; color: var(--muted); font-weight: 400; letter-spacing: 0.05em; border-bottom: 1px solid var(--line); }
.b-splits tbody th { text-align: left; font-weight: 600; font-size: 0.66rem; color: var(--muted); white-space: nowrap; padding-left: 0; }
.b-splits td.muted { color: var(--muted); text-align: left; }
.b-lineup { display: grid; justify-items: start; }
.b-lineup .card-stat-val, .b-lineup .card-stat-label { display: block; }
.b-pstats { display: grid; gap: 0.35rem; }
.b-pline { display: flex; flex-wrap: wrap; gap: 0.15rem 0.7rem; font-family: "DM Mono", ui-monospace, monospace; font-size: 0.72rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.b-pline b { color: var(--ink, inherit); font-weight: 600; }

/* On the board the season stats stretch across the row's full width as big
   tiles, with the lineup slot / IP per appearance at the right. */
.board-list .b-hit { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.6rem 1.4rem; align-items: center; margin-top: 0; }
/* Row 1: handle, rank, photo, name + eligibility, jump to, price, remove.
   Row 2: the stats, from under the photo to the right edge. */
.b-row > .b-handle { grid-column: 1; grid-row: 1 / span 2; }
.b-row > .b-rank { grid-column: 2; grid-row: 1; }
.b-row > img { grid-column: 3; grid-row: 1; }
.b-row > .b-main { grid-column: 4; grid-row: 1; }
.b-row > .b-jump { grid-column: 5; grid-row: 1; }
.b-row > .b-price { grid-column: 6; grid-row: 1; }
.b-row > .b-remove { grid-column: 7; grid-row: 1; }
.b-row > .b-hit { grid-column: 3 / -1; grid-row: 2; }
/* One line, never wrapping: every tile gets an equal share of the width and
   the numbers size themselves to it (cqi = 1% of the tile row's width). */
.b-tiles { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0.3rem; container-type: inline-size; }
.b-tile { display: grid; justify-items: center; }
.b-tile b { font-family: "DM Mono", ui-monospace, monospace; font-size: clamp(0.75rem, 3.6cqi, 1.8rem); font-weight: 600; line-height: 1.15; white-space: nowrap; color: var(--ink); font-variant-numeric: tabular-nums; }
.b-tile span { font-size: 0.62rem; white-space: nowrap; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.board-list .b-lineup .card-stat-val { font-size: 2rem; line-height: 1.1; }
.board-list .b-lineup .card-stat-label { font-size: 0.7rem; }

.b-jump { display: grid; justify-items: end; gap: 0.15rem; cursor: text; align-self: center; }
.b-jump input {
    width: 3.6rem;
    border: 1px solid var(--line);
    background: var(--paper);
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    padding: 0.3rem 0.35rem;
    text-align: center;
    -moz-appearance: textfield;
    border-radius: var(--r-sm);
}
.b-jump input::-webkit-outer-spin-button, .b-jump input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.b-jump input:focus { outline: none; border-color: var(--line-strong); background: var(--card); }

/* Player profile modal: the pool page (embed mode) in an iframe */
.b-profile {
    width: min(64rem, calc(100vw - 2rem));
    height: min(52rem, calc(100vh - 2rem));
    max-width: none;
    max-height: none;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    color: var(--ink);
    overflow: hidden;
}
.b-profile[open] { display: flex; flex-direction: column; }
.b-profile::backdrop { background: rgba(0, 0, 0, 0.5); }
.b-profile-head { display: flex; align-items: center; gap: 0.9rem; padding: 0.55rem 0.6rem 0.55rem 1rem; border-bottom: 1px solid var(--line); background: var(--card); }
.b-profile-title { font: 600 1.05rem "Outfit", system-ui, sans-serif; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b-profile-full { font-size: 0.8rem; color: var(--green); white-space: nowrap; }
.b-profile-close { border: none; background: none; color: var(--muted); font-size: 1.5rem; line-height: 1; cursor: pointer; min-width: 2.2rem; min-height: 2.2rem; }
.b-profile-close:hover { color: var(--ink); }
.b-profile-frame { flex: 1; width: 100%; border: 0; background: var(--paper); }
body.b-modal-open { overflow: hidden; }
@media (max-width: 700px) {
    .b-profile { width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; border: 0; }
}

/* Flagged to nominate: the whole block highlighted */
.b-nom {
    font: 600 0.68rem "DM Mono", ui-monospace, monospace;
    color: var(--muted);
    background: none;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 0.12rem 0.5rem;
    cursor: pointer;
    white-space: nowrap;
    align-self: center;
}
.b-nom:hover { border-color: var(--amber-line); color: var(--amber-ink); }
.b-nom[aria-pressed="true"] { background: var(--amber); border-color: var(--amber); color: var(--on-accent); }
.b-row.nominate { background: var(--amber-soft); border-color: var(--amber-line); box-shadow: inset 4px 0 0 var(--amber); }
.b-row.nominate:hover { border-color: var(--amber); }

/* Your $ (typed, saved with the board) over the site's player value */
.b-price { display: grid; justify-items: end; gap: 0.15rem; cursor: text; align-self: center; }
.b-price input {
    width: 3.6rem;
    border: 1px solid var(--line);
    background: var(--paper);
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    padding: 0.3rem 0.35rem;
    text-align: center;
    -moz-appearance: textfield;
    border-radius: var(--r-sm);
}
.b-price input::-webkit-outer-spin-button, .b-price input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.b-price input:focus { outline: none; border-color: var(--line-strong); background: var(--card); }
.b-price input::placeholder { color: var(--muted); font-weight: 400; }
.b-price-site .b-yr { margin-right: 0.4em; }
.b-price-site .b-amt { text-align: right; font-variant-numeric: tabular-nums; }
.b-price-site { display: grid; grid-template-columns: auto auto auto; justify-content: end; justify-self: end; font-family: "DM Mono", ui-monospace, monospace; font-size: 0.66rem; line-height: 1.35; color: var(--green); font-weight: 600; white-space: nowrap; }

.b-remove {
    border: none;
    background: none;
    color: var(--muted);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.2rem 0.3rem;
}
.b-remove:hover { color: var(--red); }
/* a position he was taken off (still on the board under his others) */
.b-elig .pill.off { opacity: 0.45; text-decoration: line-through; }

/* "Remove him from OF too?" */
.b-ask {
    max-width: min(26rem, calc(100vw - 2rem));
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--card, var(--bg));
    color: var(--ink);
    padding: 1.1rem 1.2rem;
}
.b-ask::backdrop { background: rgba(0, 0, 0, 0.45); }
.b-ask-q { margin: 0 0 0.35rem; font-weight: 700; font-size: 1.05rem; }
.b-ask-note { margin: 0 0 1rem; color: var(--muted); font-size: 0.92rem; }
.b-ask-btns { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* compact rows: name + eligibility + jump-to only */
.board-list.compact .b-hit, .board-list.compact .b-elig-head { display: none; }
.board-list.compact .b-row { padding: 0.4rem 0.7rem; align-items: center; }
.board-list.compact .b-row img { width: 2.2rem; height: 2.2rem; }
.board-list.compact .b-elig { margin-top: 0.1rem; }
.board-list.compact .b-row > .b-handle { grid-row: 1; }

@media (max-width: 700px) {
    .b-row {
        grid-template-columns: auto auto minmax(0, 1fr) auto auto;
        grid-template-areas:
            "handle rank main main remove"
            "handle rank jump price remove"
            "stats stats stats stats stats";
        gap: 0.4rem 0.6rem;
    }
    .b-row img { display: none; }
    .b-row > .b-handle { grid-area: handle; }
    .b-tile b { font-size: clamp(0.75rem, 3.4cqi, 1.8rem); }
    .b-row > .b-rank { grid-area: rank; }
    .b-row > .b-main { grid-area: main; }
    .b-row > .b-jump { grid-area: jump; justify-items: start; align-self: start; }
    .b-row > .b-price { grid-area: price; align-self: start; }
    .b-jump .card-stat-label, .b-price .card-stat-label { white-space: nowrap; }
    .b-row > .b-remove { grid-area: remove; }
    .b-row > .b-hit { grid-area: stats; }
    .board-list.compact .b-row { grid-template-areas: "handle rank main main remove" "handle rank jump price remove"; }
    .board-list.compact .b-row > .b-handle { grid-area: handle; }
    .b-rank { min-width: 0; width: 2.4rem; }
    .b-rank-num { font-size: 1.15rem; }
    .b-hit { gap: 0.5rem; }
    .b-splits { font-size: 0.7rem; }
    .b-splits th, .b-splits td { padding: 0.1rem 0.25rem; }
    .board-list .b-hit { grid-template-columns: minmax(0, 1fr); }
    .board-list .b-lineup .card-stat-val { font-size: 1.5rem; }
    .b-splits th:last-child, .b-splits td:last-child:not([colspan]) { display: none; }
}

.auth-alt { margin: -0.2rem 0 0; font-size: 0.85rem; text-align: center; }

/* ---------- admin ---------- */

.admin-main { max-width: 64rem; }
.admin-stats { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-bottom: 1rem; }
.admin-stat {
    flex: 1 1 9rem;
    border: 1px solid var(--line);
    background: var(--card);
    padding: 0.7rem 0.9rem;
    border-radius: var(--r);
}
.admin-stat .card-stat-val { font-size: 1.5rem; text-align: left; }
.admin-stat .card-stat-label { text-align: left; }

.admin-tools { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; justify-content: space-between; margin-bottom: 0.6rem; }
.admin-tools input[type=search] {
    font: inherit;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--line-strong);
    background: var(--card);
    min-width: 16rem;
    border-radius: var(--r-sm);
}

.user-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.user-table th {
    text-align: left;
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.user-table td { padding: 0.55rem 0.6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.user-table tr:hover td { background: var(--tint); }
.user-table .u-email { font-weight: 600; word-break: break-all; }
.user-table .u-tag {
    display: inline-block;
    margin-left: 0.35rem;
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.6rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--green);
    border: 1px solid var(--green-line);
    vertical-align: middle;
}
.user-table .u-date { font-family: "DM Mono", ui-monospace, monospace; font-size: 0.78rem; white-space: nowrap; }
.user-table .u-sub { display: block; color: var(--muted); font-size: 0.68rem; }
.user-table .u-num { font-family: "DM Mono", ui-monospace, monospace; text-align: right; }
.user-table .u-actions { white-space: nowrap; text-align: right; }
.user-table .u-actions button + button { margin-left: 0.35rem; }

.btn-danger {
    font: inherit;
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.72rem;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--red);
    background: var(--card);
    color: var(--red);
    cursor: pointer;
    border-radius: var(--r-sm);
}
.btn-danger:hover { background: var(--red-soft); }
.btn-danger.confirm { background: var(--red); color: var(--on-accent); }
.btn-danger:disabled, .btn-ghost:disabled { opacity: 0.5; cursor: default; }

.reset-box {
    margin-top: 0.5rem;
    padding: 0.55rem 0.7rem;
    background: var(--paper);
    border: 1px dashed var(--line);
    font-size: 0.78rem;
    text-align: left;
    white-space: normal;
}
.reset-box input {
    width: 100%;
    margin: 0.35rem 0;
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border: 1px solid var(--line);
    background: var(--card);
    border-radius: var(--r-sm);
}

@media (max-width: 700px) {
    .user-table thead { display: none; }
    .user-table tr { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--line); padding: 0.5rem 0; }
    .user-table td { border: none; padding: 0.15rem 0.2rem; }
    .user-table .u-email-cell { grid-column: 1 / -1; }
    .user-table .u-actions { grid-column: 1 / -1; text-align: left; }
    .user-table .u-num::before { content: "Board: "; color: var(--muted); font-size: 0.7rem; }
    .admin-tools input[type=search] { min-width: 0; width: 100%; }
}

/* ---------- ESPN league / waiver-wire filter (league.js) ---------- */

.league-box {
    border: 1px dashed var(--line);
    background: var(--tint);
    padding: 0.6rem 0.8rem;
    margin: 0 0 0.9rem;
    display: grid;
    gap: 0.35rem;
}
.league-head { display: flex; align-items: center; gap: 0.5rem; }
.league-desc { margin: 0; font-size: 0.88rem; color: var(--muted); }
.league-label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--green); }
.league-beta {
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.6rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--amber-soft);
    color: var(--amber);
    border: 1px solid var(--amber-line);
}
.league-row { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.league-row input[type=url] {
    flex: 1 1 18rem;
    font: inherit;
    font-size: 0.9rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--line-strong);
    background: var(--card);
    min-width: 0;
    border-radius: var(--r-sm);
}
.league-row.loaded { justify-content: space-between; }
.league-toggle { display: inline-flex; gap: 0.45rem; align-items: center; font-size: 0.95rem; cursor: pointer; }
.league-toggle input { width: 1.05rem; height: 1.05rem; accent-color: var(--green); }
.league-links { font-size: 0.8rem; }
.league-status { font-family: "DM Mono", ui-monospace, monospace; font-size: 0.7rem; color: var(--muted); }
.league-status.err { color: var(--red); }

.league-owner {
    display: inline-block;
    margin-top: 0.4rem;
    font-family: "DM Mono", ui-monospace, monospace;
    font-size: 0.72rem;
    padding: 0.15rem 0.5rem;
    border: 1px solid;
    border-radius: var(--r);
}
.league-owner.free { color: var(--green); background: var(--green-soft); border-color: var(--green-line); }
.league-owner.taken { color: var(--muted); background: var(--chip); border-color: var(--line); }

/* ---------- settings ---------- */

.settings-main { max-width: 52rem; }
.settings-note { margin: 0 0 0.8rem; font-size: 0.9rem; color: var(--muted); }
.settings-grid { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.settings-grid .pos-filter { flex: 1 1 20rem; }
.settings-grid .settings-wide { flex-basis: 100%; }
#position-checks { grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); }
.settings-checks { display: grid; gap: 0.3rem; }
.settings-checks label { display: flex; align-items: center; gap: 0.45rem; font-size: 0.92rem; cursor: pointer; }
.settings-checks input { width: 1rem; height: 1rem; accent-color: var(--green); }
.settings-links { display: flex; gap: 0.8rem; font-size: 0.8rem; margin-top: 0.5rem; }
.settings-links button { font: inherit; background: none; border: none; padding: 0; color: var(--green); text-decoration: underline; cursor: pointer; }
.settings-actions { display: flex; align-items: center; gap: 0.9rem; margin-top: 0.4rem; }
.settings-err { color: var(--red); font-size: 0.85rem; }

/* ---------- phones: draft board + settings ---------- */
@media (max-width: 700px) {
    #pos-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; max-width: 100%; }
    #pos-tabs::-webkit-scrollbar { display: none; }
    #pos-tabs button { flex: none; }
    .board-options { align-items: flex-start; }
    .quick-add { flex-wrap: wrap; }
    .b-pline { font-size: 0.68rem; gap: 0.1rem 0.5rem; }
    .b-jump input, .b-price input { width: 4rem; min-height: 2.1rem; }
    .b-remove { min-width: 2.2rem; min-height: 2.2rem; }
    .settings-checks label { min-height: 2.2rem; }
    #position-checks { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- suggestions ---------- */
.sug-form { display: grid; gap: 0.7rem; }
.sug-kinds { display: flex; gap: 1.2rem; }
.sug-kinds label { display: inline-flex; gap: 0.4rem; align-items: center; font-weight: 600; cursor: pointer; }
.sug-field { display: grid; gap: 0.3rem; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.sug-field input, .sug-field textarea { font: inherit; font-size: 1rem; text-transform: none; letter-spacing: normal; color: var(--ink); padding: 0.5rem 0.6rem; border: 1px solid var(--line-strong); background: var(--card); border-radius: var(--r-sm); }
.sug-field textarea { resize: vertical; min-height: 7rem; }
.sug-opt { text-transform: none; font-weight: 400; letter-spacing: normal; }
.sug-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sug-count { font-size: 0.8rem; color: var(--muted); }
.sug-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.sug-item { border: 1px solid var(--line); background: var(--card); padding: 0.6rem 0.8rem; border-radius: var(--r); }
.sug-item.st-done { opacity: 0.75; }
.sug-item.st-declined { opacity: 0.6; }
.sug-head { display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; }
.sug-title { font-weight: 700; flex: 1; min-width: 10rem; }
.sug-kind, .sug-status { font-family: "DM Mono", ui-monospace, monospace; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.1rem 0.4rem; border: 1px solid var(--line); border-radius: var(--r); }
.sug-kind.k-bug { color: var(--red); border-color: var(--red-line); background: var(--red-soft); }
.sug-kind.k-idea { color: var(--green); border-color: var(--green-line); background: var(--green-soft); }
.st-planned .sug-status { background: var(--amber-soft); border-color: var(--amber-line); color: var(--amber); }
.st-done .sug-status { background: var(--green-soft); border-color: var(--green-line); color: var(--green); }
.sug-body { margin: 0.4rem 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.sug-meta { margin: 0; font-size: 0.75rem; color: var(--muted); font-family: "DM Mono", ui-monospace, monospace; }
.sug-note { margin: 0.4rem 0 0; padding: 0.4rem 0.6rem; background: var(--tint); border-left: 3px solid var(--amber); font-size: 0.9rem; }
.sug-small { font-size: 0.72rem; padding: 0.25rem 0.5rem; margin-top: 0.4rem; }
.sug-admin { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; align-items: center; }
.sug-admin select, .sug-admin input { font: inherit; font-size: 0.85rem; padding: 0.3rem 0.4rem; border: 1px solid var(--line); background: var(--card); border-radius: var(--r-sm); }
.sug-admin input { flex: 1; min-width: 12rem; }
