/* /tier-list-maker/ page styles. Built from /assets/polyatic.css tokens only (no new fonts or theme
   colours). Tier colours are the visitor's own content, set from the board's state by app.js. */
.nojs{margin:1.25rem 0 0;padding:0.875rem 1rem;border:1px solid var(--line);border-left:0.25rem solid var(--accent);border-radius:0.625rem;background:var(--surface);color:var(--ink);font-size:0.9375rem;line-height:1.6}
.tl-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tl-head .sub{margin-bottom:1rem}
@media(max-width:520px){.tl-head h1{font-size:1.625rem;margin-bottom:0.25rem}.tl-head .sub{font-size:0.9375rem;margin-bottom:0.75rem}}

/* layout: phone = input, board, side; desktop = input + side on the left, board on the right */
.tl-duo{display:grid;gap:1rem;align-items:start;grid-template-areas:"input" "board" "side"}
.tl-input{grid-area:input}.tl-boardcard{grid-area:board}.tl-side{grid-area:side}
@media(min-width:920px){.tl-duo{grid-template-columns:minmax(17rem,21rem) minmax(0,1fr);grid-template-areas:"input board" "side board";grid-template-rows:auto 1fr;gap:1.25rem 1.5rem}}
.tl-input,.tl-boardcard,.tl-side{min-width:0}
.tl-input,.tl-side{display:grid;gap:0.75rem;align-content:start}
@media(max-width:520px){.tl-input,.tl-boardcard,.tl-side{padding:0.875rem}}

.tl-input .field .head{margin-bottom:0.375rem}
.tl-input textarea{width:100%;min-height:4.75rem;height:4.75rem;resize:vertical;font-family:var(--sans);font-size:0.9375rem}
@media(min-width:920px){.tl-input textarea{height:9rem}}
.tl-count{font-family:var(--mono);font-size:0.75rem;color:var(--muted);white-space:nowrap}
.tl-addrow{display:flex;gap:0.5rem}
.tl-addrow .btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center}
.tl-filebtn{cursor:pointer}
#picfile:focus-visible+.tl-filebtn,.tl-filebtn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.tl-help{margin:0;font-size:0.8125rem;line-height:1.5;color:var(--muted)}
.tl-help:empty{display:none}
.tl-help code{font-family:var(--mono);font-size:0.75rem}

.tl-notice{margin:0 0 1rem;padding:0.75rem 0.875rem;border:1px solid var(--line-2);border-left:0.25rem solid var(--accent);border-radius:0.5rem;background:var(--accent-soft);font-size:0.875rem;line-height:1.5;color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}
.tl-notice[hidden]{display:none}
.tl-notice .chip{padding:0.375rem 0.6875rem;font-size:0.8125rem}
.tl-notice.is-bad{border-left-color:var(--bad);background:var(--surface-2)}

/* the board */
.tl-boardcard{display:grid;gap:0.625rem;align-content:start}
.tl-titlef{display:flex;align-items:center;gap:0.625rem}
.tl-titlef input{flex:1;min-width:0}
.tl-board{--t:calc(var(--tile,80) * 1px);display:grid;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:0.5rem;overflow:hidden}
@media(max-width:520px){.tl-board,.tl-tray{--t:calc(var(--tile,80) * 0.75px)}}
.tl-tier{display:grid;grid-template-columns:minmax(3.5rem,calc(var(--t) * 1.1)) minmax(0,1fr) 2.25rem;background:var(--surface-2);min-height:var(--t)}
.tl-label{display:flex;align-items:center;justify-content:center;padding:0.25rem;font-weight:700;font-size:1.25rem;line-height:1.15;text-align:center;overflow-wrap:anywhere;cursor:pointer;user-select:none;-webkit-user-select:none}
.tl-label.is-long{font-size:0.875rem}
.tl-zone{display:flex;flex-wrap:wrap;align-content:flex-start;min-height:var(--t);min-width:0;cursor:default}
.tl-edit{border:0;border-left:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:1.125rem;letter-spacing:.05em;cursor:pointer}
.tl-edit:hover{color:var(--ink)}
.tl-tier.is-over,.tl-tray.is-over{background:var(--accent-soft)}
.tl-board.is-target .tl-tier{cursor:pointer}
.tl-board.is-target .tl-zone{box-shadow:inset 0 0 0 1px var(--line-2)}
.tl-tier.is-editing{box-shadow:inset 0 0 0 2px var(--accent)}

.tl-item{position:relative;flex:none;width:var(--t);height:var(--t);margin:0;padding:0.25rem;border:1px solid var(--line-2);border-radius:0.25rem;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;line-height:1.15;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;cursor:grab;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.tl-text{display:block;max-height:100%;overflow:hidden;overflow-wrap:anywhere;font-size:calc(var(--t) * 0.2)}
.tl-item.is-m .tl-text{font-size:calc(var(--t) * 0.15)}
.tl-item.is-l .tl-text{font-size:calc(var(--t) * 0.12)}
.tl-pic{padding:0}
.tl-img{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat}
.tl-item[aria-pressed="true"]{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}
.tl-item.is-dragging{opacity:.3}
.tl-ghost{position:fixed;left:0;top:0;z-index:50;pointer-events:none;margin:0;box-shadow:var(--shadow);transform-origin:center;opacity:.95;cursor:grabbing}
.tl-marker{flex:none;width:3px;height:var(--t);background:var(--accent);border-radius:2px;margin:0 -1.5px}
body.tl-dragging{cursor:grabbing;user-select:none;-webkit-user-select:none}

.tl-addtier{justify-self:start}
.tl-trayhead{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-top:0.25rem}
.tl-trayhead h2{margin:0}
.tl-tray{--t:calc(var(--tile,80) * 1px);min-height:calc(var(--t) + 2px);border:1px dashed var(--line-2);border-radius:0.5rem;background:var(--surface-2);padding:1px}
.tl-tray:empty::after{content:"Added items wait here.";margin:auto;padding:0.75rem;color:var(--muted);font-size:0.875rem}

/* tier editor */
.tl-tieredit{display:grid;gap:0.5rem;padding:0.75rem;border:1px solid var(--line-2);border-radius:0.5rem;background:var(--surface)}
.tl-tieredit[hidden]{display:none}
.tl-terow{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}
.tl-terow input[type=text]{flex:1;min-width:8rem}
.tl-swk{margin:0.25rem 0 0}
.tl-swatches{display:flex;flex-wrap:wrap;gap:0.375rem}
.tl-swatch{width:2.25rem;height:2.25rem;border:1px solid var(--line-2);border-radius:0.375rem;cursor:pointer;padding:0}
.tl-swatch[aria-pressed="true"]{outline:3px solid var(--ink);outline-offset:1px}
.tl-custom{display:flex;align-items:center;gap:0.5rem}
.tl-custom input{width:3rem;height:2rem;border:1px solid var(--line-2);border-radius:0.375rem;background:var(--surface);padding:0.125rem}
.tl-tebtns .btn{margin-left:auto;min-height:2.25rem;padding:0.375rem 1rem}
.tl-tebtns .chip{padding:0.4375rem 0.625rem;font-size:0.8125rem}

/* selection bar: stays at the bottom of the screen while the board is in view */
.tl-selbar{position:sticky;bottom:0.5rem;z-index:5;display:grid;gap:0.5rem;padding:0.625rem 0.75rem;border:1px solid var(--line-2);border-radius:0.625rem;background:var(--surface);box-shadow:var(--shadow)}
.tl-selbar[hidden]{display:none}
.tl-selname{margin:0;display:flex;gap:0.5rem;align-items:baseline;min-width:0}
.tl-selname b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tl-selbtns{display:flex;flex-wrap:wrap;align-items:center;gap:0.375rem}
.tl-movek{font-size:0.8125rem;color:var(--muted)}
.tl-selmove{display:flex;flex-wrap:wrap;gap:0.25rem}
.tl-selbtns .chip{padding:0.375rem 0.625rem;font-size:0.8125rem;min-width:2.25rem}
.tl-crop{display:flex;gap:0.75rem;align-items:center}
.tl-crop[hidden]{display:none}
.tl-crop canvas{flex:none;width:10rem;height:6rem;border-radius:0.375rem;background:var(--surface-2);touch-action:none;cursor:ew-resize}
.tl-cropctl{display:grid;gap:0.375rem;flex:1;min-width:0}
.tl-cropctl input{width:100%;accent-color:var(--accent)}
.tl-cropctl .chip{justify-self:start;padding:0.3125rem 0.625rem;font-size:0.8125rem}

/* side panel */
.tl-side .field>.k{display:block;margin-bottom:0.375rem}
.tl-modes{margin-bottom:0}
.tl-row{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center}
.tl-row .btn{flex:1 1 auto}
.tl-row input[type=text]{flex:1 1 12rem;min-width:0;font-family:var(--mono);font-size:0.75rem}
.tl-side .tl-help{margin-top:0.375rem}

@media (prefers-reduced-motion:reduce){.tl-ghost{transition:none}}
.tl-page .k{font-family:var(--mono);font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
