/* Auto Farm: its own screen (tab 'farm') and the mini player under the menu (web/auto-farm.js).
   Same pieces as the raids: pf-panel, the client's ribbon between the stone flags, the blue and gold
   flag for "Ao vivo", ba-outcome to confirm, and only the colours of docs/DESIGN.md. */
.fm-screen .fm-body{display:flex;flex-direction:column;gap:6px;padding:6px}
.fm-head{display:flex;align-items:center;gap:8px;min-width:0}
.fm-head .fm-ribbon{flex:1;min-width:0;margin:0}
.fm-head-state{min-width:120px;text-align:right;color:#c0c0c0}
.fm-back{flex:0 0 auto}
.fm-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:6px;align-items:start}
.fm-main,.fm-side{display:flex;flex-direction:column;gap:6px;min-width:0}
.fm-side .pf-panel,.fm-main .pf-panel{margin:0}
.fm-panel-body{padding:6px}
.fm-pad{padding:0 6px 6px}
.fm-sub{display:flex;align-items:center;gap:5px;margin:10px 0 4px;color:#e4ca78;font-size:11px}
.fm-sub small{margin-left:auto;color:#a9a9a9}

/* Viewer: the battle being shown, its bar and the queue of maps. */
.fm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:30px;padding:3px 4px;background:#2f2f2f;border:1px solid #111;box-shadow:inset 1px 1px #5e5e5e}
.fm-bar-name{display:flex;align-items:center;gap:6px;min-width:0;margin-right:auto}
.fm-bar-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}
.fm-speed{display:flex;gap:2px}
.fm-speed button,.fm-bar>button{min-height:24px;padding:2px 8px}
.re-flag.fm-live{position:static;flex:0 0 auto;min-width:76px;height:22px;padding:0 9px 0 12px;background-size:auto 22px;font-size:10px}
.fm-board-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:200px;overflow:hidden;background:#1c1c1c;border:1px solid #111;box-shadow:inset 1px 1px #000,1px 1px #6a6a6a}
.fm-board-wrap canvas{display:block;width:100%;height:auto;max-height:62dvh;object-fit:contain;image-rendering:pixelated}
.fm-hud{position:absolute;left:6px;top:6px;max-width:calc(100% - 12px);padding:2px 6px;font-size:11px;color:#e4ca78;background:#1c1c1c;border:1px solid #111;box-shadow:1px 1px #6a6a6a;pointer-events:none}
.fm-hud:empty{display:none}
.fm-banner{position:absolute;left:50%;top:16%;padding:6px 18px;opacity:0;pointer-events:none;transform:translateX(-50%);font:bold 16px/18px 'Tibia Pixel',Verdana,sans-serif;color:#f4d35e;text-shadow:2px 0 #000,-2px 0 #000,0 2px #000,0 -2px #000;background:#1c1c1c;border:1px solid #111;box-shadow:1px 1px #6a6a6a}
.fm-banner.is-loss{color:#ff8b7e}
.fm-banner.show{animation:fm-banner 2.2s ease-out}
@keyframes fm-banner{0%{opacity:0;transform:translate(-50%,-8px)}15%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}
.fm-outcome .ba-outcome-window{width:min(340px,100%)}
.fm-outcome .pf-note{margin:0 6px 6px;text-align:center}
.fm-queue{display:flex;gap:2px;margin:0;padding:0;list-style:none}
.fm-queue li{display:flex;flex:1;align-items:center;gap:5px;min-width:0;min-height:24px;padding:2px 6px;color:#a9a9a9;background:#2f2f2f;border:1px solid #111;box-shadow:inset 1px 1px #5e5e5e}
.fm-queue li b{color:#c0c0c0}
.fm-queue li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-queue li small{margin-left:auto;color:#e8c547}
.fm-queue li.is-shown{color:#fff}
.fm-queue li.is-next{color:#fff;border-color:#c5b47c;box-shadow:inset 0 0 0 1px #c5b47c}

/* Configuration */
.fm-map{display:flex;align-items:center;gap:8px;padding:6px;background:#262626;border:1px solid #111;box-shadow:inset 1px 1px #000,1px 1px #6a6a6a}
.fm-map>span:last-child{display:grid;gap:2px;min-width:0}
.fm-map strong{color:#fff}
.fm-team{display:flex;gap:2px}
.fm-team .tiny{width:32px;height:32px}
.fm-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px}
.fm-form label{display:grid;gap:3px;min-width:0;color:#c0c0c0}
.fm-form input,.fm-form select{width:100%}
.fm-form input[type=checkbox]{flex:0 0 auto;width:22px;min-width:22px}
.fm-checks label{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.fm-checks input[type=number]{width:72px;flex:0 0 auto}
.fm-goal{display:flex;align-items:center;gap:4px;margin-top:4px;padding:4px 6px;background:#262626;border:1px solid #111}
.fm-goal>span{display:grid;flex:1;min-width:0;color:#c0c0c0}
.fm-goal small{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-goal button{display:flex;align-items:center;gap:4px}
.fm-goal .tiny{width:22px;height:22px}
.fm-start{display:grid;gap:2px;width:100%;min-height:46px;margin-top:6px;font-size:14px}
.fm-start small{font-size:10px;opacity:.85}
#farm-message{margin:4px 0 0;color:#e4ca78}
#farm-message:empty{display:none}

/* Session */
.fm-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.fm-tile{display:grid;gap:1px;padding:4px 5px;background:#262626;border:1px solid #111;box-shadow:inset 1px 1px #000,1px 1px #6a6a6a}
.fm-tile small{display:flex;align-items:center;gap:3px;color:#a9a9a9}
.fm-tile strong{color:#e8c547;font-size:13px}
.fm-tile strong i{font-style:normal;font-size:11px;color:#a9a9a9}
.fm-tile em{font-style:normal;color:#5fc85f}
.fm-progress{height:8px;margin-top:5px;background:#1c1c1c;border:1px solid #111;box-shadow:1px 1px #6a6a6a}
.fm-progress i{display:block;height:100%;background:#5fc85f}
.fm-status{margin:6px 0 2px;padding-left:8px;border-left:2px solid #6a6a6a;color:#c0c0c0}
.fm-status.is-on{border-color:#5fc85f;color:#fff}
.fm-status.is-wait{border-color:#e4ca78;color:#e4ca78}
.fm-status.is-off{border-color:#e8756c}
.fm-actions{display:flex;justify-content:flex-end;gap:4px;margin-top:4px}
.fm-ico{width:16px;height:16px;vertical-align:middle;image-rendering:pixelated}
.fm-ico-s{width:12px;height:12px;vertical-align:middle;image-rendering:pixelated}

/* Supplies */
.fm-supply{display:grid;grid-template-columns:22px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:3px 4px;background:#1c1c1c;border-bottom:1px solid #2b2b2b}
.fm-supply>img,.fm-supply>.ti{grid-row:1/3;width:20px;height:20px}
.fm-supply>span{display:grid;color:#fff;overflow:hidden}
.fm-supply>span small{color:#a9a9a9}
.fm-supply>b{color:#e8c547;text-align:right}
.fm-supply>small{grid-column:3;text-align:right;color:#a9a9a9;font-size:10px}
.fm-link{min-height:22px;margin-top:5px;padding:2px 8px}

/* Battles of the run, newest first: pick one to watch. */
.fm-list{display:grid;gap:1px;max-height:46dvh;overflow:auto;padding:4px}
.fm-row{display:grid;grid-template-columns:30px 14px minmax(0,1fr) auto;grid-template-areas:'n r map loot' 'n r used used';align-items:center;column-gap:5px;row-gap:1px;min-height:0;padding:2px 5px;text-align:left;white-space:normal}
.fm-row .fm-n{grid-area:n;color:#c0c0c0}
.fm-row>.ti{grid-area:r}
.fm-row-map{grid-area:map;display:grid;min-width:0;color:#fff}
.fm-row-map,.fm-row-map small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-row.is-loss .fm-row-map small{color:#ff8b7e}
.fm-loot{grid-area:loot;display:flex;align-items:center;gap:4px;color:#e8c547}
.fm-loot .tiny{width:24px;height:24px}
.fm-loot>span{display:inline-flex;align-items:center;gap:2px}
.fm-used-list{grid-area:used;display:flex;flex-wrap:wrap;gap:3px}
.fm-used{display:inline-flex;align-items:center;gap:2px;padding:0 3px;font-size:10px;color:#c0c0c0;background:#262626;border:1px solid #111}
.fm-used.is-out{color:#e8756c}
.fm-row.is-selected{color:#fff;border-color:#c5b47c;box-shadow:inset 0 0 0 1px #c5b47c}
.fm-tag{grid-area:loot;justify-self:end;align-self:start;margin-top:-2px;font-style:normal;font-size:9px;color:#5fc85f}
.fm-drops{display:flex;flex-wrap:wrap;gap:3px}
.fm-drops>span{position:relative;display:inline-flex;padding:1px;background:#262626;border:1px solid #111}
.fm-drops .tiny{width:28px;height:28px}
.fm-drops i{position:absolute;right:1px;top:-2px;font-style:normal;color:#f4d35e}

/* Mini player: the live battle on the left, the run on the right. */
#farm-mini{margin:0 0 6px}
.fm-mini{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px;border:1px solid #111;box-shadow:1px 1px #6a6a6a,inset 1px 1px #6a6a6a;background:#3d3d3d url('/assets/ui/classic/panel-texture.png')}
.fm-mini-thumb{position:relative;display:block;width:176px;height:124px;min-height:0;padding:0;border:1px solid #111;box-shadow:inset 1px 1px #000,1px 1px #6a6a6a;background:#1c1c1c}
.fm-mini-thumb canvas{display:block;width:100%;height:100%}
.fm-mini-thumb .re-flag.fm-live{position:absolute;left:auto;right:-1px;top:-1px;min-width:62px;height:18px;background-size:auto 18px;font-size:9px}
.fm-mini-info{display:grid;gap:2px;min-width:0}
.fm-mini-info strong{display:flex;align-items:center;gap:4px;color:#fff}
.fm-mini-info small{color:#e4ca78}
.fm-mini-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c0c0c0}
.fm-mini-chips{display:flex;flex-wrap:wrap;gap:3px}
.fm-mini-chips i{display:inline-flex;align-items:center;gap:2px;padding:0 3px;font-style:normal;color:#e8c547;background:#262626;border:1px solid #111}
.fm-mini-actions{display:flex;flex-direction:column;gap:4px}
.fm-mini-actions button{min-width:76px}

@media(prefers-reduced-motion:reduce){.fm-banner.show{animation:none;opacity:1}}
@media(max-width:860px){
 .fm-grid{grid-template-columns:minmax(0,1fr)}
 .fm-board-wrap canvas{max-height:48dvh}
 .fm-list{max-height:none}
}
@media(max-width:520px){
 .fm-head{flex-wrap:wrap}
 .fm-head .fm-ribbon{order:3;flex-basis:100%}
 .fm-head-state{min-width:0;margin-left:auto}
 .fm-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fm-form{grid-template-columns:minmax(0,1fr)}
 .fm-queue{flex-wrap:wrap}
 .fm-queue li{flex-basis:100%}
 .fm-mini{grid-template-columns:120px minmax(0,1fr);grid-template-rows:auto auto;gap:6px}
 .fm-mini-thumb{width:120px;height:86px}
 .fm-mini-actions{grid-column:1/-1;flex-direction:row;justify-content:flex-end}
 .fm-mini-chips{display:none}
}
