/* Written for the LG Pro:Centric browser (AppleWebKit/537.1): no CSS variables, no object-fit, only prefixed transform/transition,
   old -webkit-box flexbox. Keep it that way; modern browsers still understand everything below. */
html, body { margin: 0; padding: 0; width: 100%; height: 100%; background: #000; overflow: hidden;
  font-family: "LG Smart UI", "Segoe UI", Roboto, Arial, sans-serif; color: #fff; }
#viewport { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; overflow: hidden;
  -webkit-transform-origin: 0 0; transform-origin: 0 0; background: #0b1220; }
#stage, #screen, #overlay { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; }
#screen { display: none; background: #0a0e16; background: -webkit-linear-gradient(top, #0f1522, #070a10); background: linear-gradient(to bottom, #0f1522, #070a10); z-index: 20; }
#overlay { display: none; background: rgba(5,10,20,0.94); z-index: 50; }

/* ---------- designed page elements ---------- */
.el { position: absolute; box-sizing: border-box; overflow: hidden; text-align: left; }
.el-text, .el-clock, .el-date, .el-weather, .el-welcome, .el-room, .el-guest, .el-ip { white-space: nowrap; text-overflow: ellipsis; line-height: 1.15; }
.el-text { white-space: normal; }
.el-image { background-size: cover; background-position: center; background-repeat: no-repeat; }
.el-btn { display: -webkit-box; display: flex; -webkit-box-align: center; -webkit-align-items: center; align-items: center;
  -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center; text-align: center; cursor: pointer;
  overflow: visible; }
.el-btn.lay-col { -webkit-box-orient: vertical; -webkit-flex-direction: column; flex-direction: column; }
.el-btn.lay-row { -webkit-box-orient: horizontal; -webkit-flex-direction: row; flex-direction: row; }
.el-btn .ic { display: block; background-repeat: no-repeat; background-position: center; background-size: contain; margin: 0 8px 8px 8px; }
.el-btn.lay-row .ic { margin: 0 12px 0 0; }
.el-btn .lbl { display: block; max-width: 96%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.el-btn { background: rgba(8,8,8,.62) !important; border: 1px solid rgba(229,183,76,.72) !important; border-radius: 22px !important; }
/* focus: the frame keeps its width (icon / label do not jump); render.js adds one solid ring + a soft fill in the focus colour */
.el-btn.focused, .el-btn:focus { background: rgba(62,46,18,.86) !important; border-color: #e2bf78 !important; }
.el-btn .lbl { letter-spacing: .5px; }
/* the stock gold line icons turn white on the gold focus fill (they would disappear in it) */
.el-btn.focused .ic-gold { -webkit-filter: brightness(0) invert(1); filter: brightness(0) invert(1); }
/* focus ring colour is set inline by render.js (no CSS variables on the TV) */
.focusable.focused { z-index: 10; } /* no scale / blur shadow / transition: the TV's browser paints in software and made the UI sluggish */

/* ---------- feature screens ---------- */
.hdr { position: absolute; left: 0; top: 0; width: 1280px; height: 84px; background: rgba(255,255,255,0.04); box-sizing: border-box; }
.hdr h1 { margin: 0; position: absolute; left: 56px; top: 20px; font-size: 34px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase; font-family: "Noto Serif", Georgia, "Times New Roman", serif; }
.hdr .hint { position: absolute; right: 56px; top: 32px; font-size: 20px; color: #9fb0c8; }
.body { position: absolute; left: 0; top: 84px; width: 1280px; height: 636px; }
.center-msg { position: absolute; left: 0; top: 280px; width: 1280px; text-align: center; font-size: 28px; color: #9fb0c8; }

.list { position: absolute; overflow: hidden; }
.row { box-sizing: border-box; height: 56px; line-height: 56px; padding: 0 20px; font-size: 24px; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; border-radius: 12px; margin: 4px 0; background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.07); }
.row.sel { border-color: transparent; }
.row .num { display: inline-block; width: 64px; color: #9fb0c8; }
.row.sel .num { color: #fff; }

.grid-card { position: absolute; box-sizing: border-box; border-radius: 14px; overflow: hidden; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); }
.grid-card .pic { width: 100%; background-size: cover; background-position: center; background-color: #1a2436; }
.grid-card .cap { padding: 8px 12px; font-size: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grid-card.sel { z-index: 5; }
.tabs { position: absolute; left: 56px; top: 8px; height: 52px; }
.tab { display: inline-block; height: 44px; line-height: 44px; padding: 0 22px; margin-right: 10px; border-radius: 22px;
  background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.10); box-sizing: border-box; height: 44px; line-height: 42px; font-size: 20px; color: #d6dbe6; }
.tab.sel { border-color: transparent; }

.card { position: absolute; box-sizing: border-box; padding: 28px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.09); border-radius: 18px; font-size: 24px; line-height: 1.4; overflow: hidden; }
.card h2 { margin: 0 0 12px 0; font-size: 32px; }
.muted { color: #9fb0c8; }
.big { font-size: 56px; font-weight: 700; }
.weather-card { background: rgba(8,8,8,.5); border: 1px solid rgba(229,183,76,.62); border-radius: 18px; text-align: center; padding: 16px !important; }
.weather-card .big { color: #ffd86b; font-size: 38px; line-height: 1.1; }
.weather-card .muted { font-size: 17px; line-height: 1.25; white-space: normal; word-wrap: break-word; }
.weather-current { background: rgba(8,8,8,.98); border-color: rgba(229,183,76,.62); }

/* live tv */
#tvvideo, #tvaudio { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; background: #000; object-fit: contain; }
.banner { z-index: 6; position: absolute; left: 32px; bottom: 30px; max-width: 620px; padding: 12px 20px; background: rgba(24,24,24,.94); border: 1px solid rgba(255,255,255,.5); border-radius: 8px; color: #fff; font-size: 24px; font-weight: 600; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 3px 14px rgba(0,0,0,.45); }
.chpanel { position: absolute; left: 0; right: auto; top: 0; width: 360px; height: 720px; background: rgba(8,11,18,0.97); padding: 24px 16px; box-sizing: border-box; }
.epg-mini { position: absolute; right: 34px; top: 300px; width: 300px; max-height: 92px; box-sizing: border-box; padding: 12px 14px; background: rgba(8,8,8,.82); border: 1px solid rgba(216,169,78,.8); border-radius: 16px; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.35; white-space: normal; overflow: hidden; text-overflow: ellipsis; z-index: 25; }
.epg-channel { color: #ffd86b; font-size: 20px; font-weight: 700; margin-bottom: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.epg-time { color: #ffd86b; font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.epg-program { color: #fff; font-size: 16px; font-weight: 500; }

#toast { position: absolute; left: 50%; top: 30px; -webkit-transform: translateX(-50%); transform: translateX(-50%); z-index: 99;
  padding: 14px 28px; border-radius: 10px; background: rgba(0,0,0,0.85); font-size: 24px; display: none; max-width: 900px; }

/* setup form */
.form { position: absolute; left: 340px; top: 130px; width: 600px; }
.form h2 { font-size: 34px; margin: 0 0 24px 0; }
.field { box-sizing: border-box; height: 64px; line-height: 64px; margin: 10px 0; padding: 0 22px; font-size: 26px; border-radius: 10px;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); }
.field .k { color: #b6c4da; display: inline-block; width: 200px; }

/* Arabic etc.: let the browser order mixed text correctly without mirroring the fixed layout */
.el, .row, .card, .cap, .lbl, .tab, .banner, .center-msg { unicode-bidi: plaintext; }

/* channel list logos */
.row .logo { display: inline-block; width: 44px; height: 30px; margin-right: 12px; vertical-align: middle; background-size: contain; background-repeat: no-repeat; background-position: center; }
/* IP channels are drawn by the TV's own tuner *behind* the page: make the page see-through while one is playing */
html.hcap-plane, html.hcap-plane body, html.hcap-plane #viewport, html.hcap-plane #screen { background: transparent !important; }
html.hcap-plane #stage { visibility: hidden; }
/* the TV draws video (tuner / media player / <video>) on a plane BEHIND the page: everything on top of it must be see-through */
html.hcap-plane #screen > div, html.hcap-plane #tvvideo { background: transparent !important; }

.page-background { display:block; }


/* VOD screen: hero strip (focused film) + one row of smaller posters */
.vod-hero { position: absolute; left: 56px; top: 70px; width: 1168px; height: 226px; border-radius: 16px; overflow: hidden; background: #111a2a; }
.vod-hero-img { position: absolute; right: 0; top: 0; width: 700px; height: 226px; background-size: cover; background-position: center; }
.vod-hero-fade { position: absolute; left: 0; top: 0; width: 1168px; height: 226px;
  background: -webkit-linear-gradient(left, #111a2a 38%, rgba(17,26,42,0.85) 55%, rgba(17,26,42,0) 100%);
  background: linear-gradient(to right, #111a2a 38%, rgba(17,26,42,0.85) 55%, rgba(17,26,42,0) 100%); }
.vod-hero-title { position: absolute; left: 28px; top: 22px; width: 560px; font-size: 38px; line-height: 46px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-family: "Noto Serif", Georgia, "Times New Roman", serif; }
.vod-hero-meta { position: absolute; left: 28px; top: 76px; font-size: 19px; color: #c8a56a; letter-spacing: 1px; text-transform: uppercase; }
.vod-hero-desc { position: absolute; left: 28px; top: 110px; width: 540px; height: 96px; font-size: 19px; line-height: 24px; color: #c9d3e2; overflow: hidden; }
/* VOD player controls */
.vod-osd { position: absolute; left: 0; bottom: 0; width: 1280px; height: 150px; box-sizing: border-box; padding: 0 56px; z-index: 6;
  background: -webkit-linear-gradient(bottom, rgba(0,0,0,0.9), rgba(0,0,0,0)); background: linear-gradient(to top, rgba(0,0,0,0.9), rgba(0,0,0,0)); }
.vod-osd-title { position: absolute; left: 56px; top: 30px; width: 900px; font-size: 28px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vod-osd-state { position: absolute; right: 56px; top: 30px; font-size: 26px; color: #c8a56a; }
.vod-osd-time { position: absolute; right: 56px; top: 108px; font-size: 20px; color: #c9d3e2; }
.vod-bar { position: absolute; left: 56px; top: 82px; width: 1168px; height: 8px; border-radius: 4px; background: rgba(255,255,255,0.18); overflow: hidden; }
.vod-bar-buf { position: absolute; left: 0; top: 0; height: 8px; width: 0; background: rgba(255,255,255,0.35); }
.vod-bar-pos { position: absolute; left: 0; top: 0; height: 8px; width: 0; background: #c8a56a; }
/* grid-card.sel fallback (the accent colour from core.js overrides it) */
.grid-card.sel { border: 3px solid #c8a56a; }
.grid-card.sel .cap { background: #c8a56a; color: #15110a; font-weight: 700; }

/* VOD v2: compact hero + 6 posters per row, two rows visible, further rows scroll up from below */
.vod-hero { height: 118px; }
.vod-hero-img { width: 520px; height: 118px; }
.vod-hero-fade { height: 118px; }
.vod-hero-title { top: 14px; font-size: 32px; line-height: 38px; width: 700px; }
.vod-hero-meta { top: 56px; font-size: 17px; }
.vod-hero-desc { top: 82px; width: 700px; height: 24px; font-size: 18px; line-height: 24px; white-space: nowrap; text-overflow: ellipsis; }
/* VOD v3 (Netflix-style rows) */
.vod-hero { top: 8px; height: 118px; }
.vod-row-title { position: absolute; left: 12px; height: 30px; line-height: 30px; font-size: 22px; color: #9fb0c8; letter-spacing: 1px; }
.vod-row-title.on { color: #fff; font-weight: 700; }
.vod-card .pic { position: relative; }
.vod-card-name { position: absolute; left: 10px; right: 10px; bottom: 12px; font-size: 18px; line-height: 22px; white-space: normal; }

/* cafe menu */
.cafe-cat { box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
.cafe-cat.on { color: #fff; font-weight: 700; background: rgba(255,255,255,0.08); }
.cafe-card .pic { position: relative; }
.cafe-card-title { position: absolute; left: 14px; right: 14px; top: 186px; font-size: 22px; line-height: 28px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cafe-card-price { position: absolute; left: 14px; right: 14px; top: 224px; font-size: 24px; font-weight: 700; color: #c8a56a; }
.cafe-noimg { position: absolute; left: 0; right: 0; top: 70px; text-align: center; font-size: 28px; color: #9fb0c8; }
.cafe-detail { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; background: #0b111c; z-index: 20; }
.cafe-detail-pic { position: absolute; left: 56px; top: 60px; width: 640px; height: 600px; border-radius: 18px; background-color: #1a2436; background-size: cover; background-position: center; overflow: hidden; }
.cafe-detail-box { position: absolute; left: 740px; top: 60px; width: 484px; height: 600px; }
.cafe-detail-cat { font-size: 20px; color: #c8a56a; letter-spacing: 1px; text-transform: uppercase; }
.cafe-detail-title { margin-top: 10px; font-size: 40px; line-height: 48px; font-family: "Noto Serif", Georgia, serif; }
.cafe-detail-price { margin-top: 18px; font-size: 44px; font-weight: 700; color: #c8a56a; }
.cafe-detail-desc { margin-top: 22px; font-size: 22px; line-height: 32px; color: #c9d3e2; max-height: 256px; overflow: hidden; }
.cafe-detail-hint { position: absolute; left: 0; bottom: 50px; font-size: 20px; color: #9fb0c8; }
.cafe-detail-back { position: absolute; left: 0; bottom: 0; font-size: 20px; color: #9fb0c8; }
/* hotel guide */
.guide-row { position: absolute; left: 0; width: 430px; height: 76px; box-sizing: border-box; border-radius: 12px; background: rgba(255,255,255,0.05); overflow: hidden; }
.guide-row.sel { background: rgba(200,165,106,0.9); color: #15110a; }
.guide-thumb { position: absolute; left: 8px; top: 8px; width: 96px; height: 60px; border-radius: 8px; background-color: #1a2436; background-size: cover; background-position: center; }
.guide-row-title { position: absolute; left: 118px; top: 10px; right: 12px; font-size: 22px; line-height: 28px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.guide-row-sub { position: absolute; left: 118px; top: 42px; right: 12px; font-size: 17px; color: #9fb0c8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.guide-row.sel .guide-row-title { font-weight: 700; }
.guide-row.sel .guide-row-sub { color: #3a2f1c; }
.guide-detail { position: absolute; left: 500px; top: 72px; width: 740px; height: 556px; border-radius: 16px; background: rgba(255,255,255,0.05); overflow: hidden; }
.guide-pic { position: absolute; left: 0; top: 0; width: 740px; height: 220px; background-size: cover; background-position: center; background-color: #1a2436; }
.guide-title { position: absolute; left: 28px; right: 28px; font-size: 34px; line-height: 42px; font-family: "Noto Serif", Georgia, serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.guide-hours { position: absolute; left: 28px; right: 28px; font-size: 20px; color: #c8a56a; }
.guide-text { position: absolute; left: 28px; right: 28px; font-size: 21px; line-height: 30px; color: #c9d3e2; overflow: hidden; white-space: pre-wrap; }

/* hotel guide, magazine style (Samsung) */
.gd-bg { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; background-color: #0b111c; background-size: cover; background-position: center; }
.gd-shade { position: absolute; left: 0; top: 0; width: 1280px; height: 720px;
  background: linear-gradient(to right, rgba(8,12,20,0.96) 0%, rgba(8,12,20,0.82) 40%, rgba(8,12,20,0.25) 75%, rgba(8,12,20,0.1) 100%),
              linear-gradient(to top, rgba(8,12,20,0.95) 0%, rgba(8,12,20,0) 45%); }
.gd-chips { position: absolute; left: 56px; top: 14px; white-space: nowrap; }
.gd-chip { display: inline-block; height: 38px; line-height: 38px; padding: 0 20px; margin-right: 10px; border-radius: 19px; font-size: 19px;
  color: #c9d3e2; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.14); }
.gd-chip.on { color: #15110a; background: #c8a56a; border-color: #c8a56a; font-weight: 700; }
.gd-cat { position: absolute; left: 56px; top: 80px; font-size: 18px; letter-spacing: 3px; text-transform: uppercase; color: #c8a56a; }
.gd-title { position: absolute; left: 56px; top: 108px; width: 700px; font-size: 54px; line-height: 64px; font-family: "Noto Serif", Georgia, serif;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 2px 12px rgba(0,0,0,0.6); }
.gd-hours { position: absolute; left: 56px; top: 186px; padding: 6px 16px; border-radius: 16px; font-size: 18px; color: #fff;
  background: rgba(200,165,106,0.25); border: 1px solid rgba(200,165,106,0.7); }
.gd-text { position: absolute; left: 56px; top: 236px; width: 600px; height: 160px; font-size: 21px; line-height: 32px; color: #dbe3ee; overflow: hidden; white-space: pre-wrap; }
.gd-strip { position: absolute; left: 56px; top: 420px; width: 1168px; height: 190px; overflow: hidden; }
.gd-card { position: absolute; top: 12px; width: 200px; height: 166px; border-radius: 14px; overflow: hidden; background: rgba(20,28,44,0.85); border: 2px solid rgba(255,255,255,0.12); box-sizing: border-box; }
.gd-card.sel { border: 3px solid #c8a56a; box-shadow: 0 6px 18px rgba(0,0,0,0.55); }
.gd-card-pic { width: 100%; height: 116px; background-color: #1a2436; background-size: cover; background-position: center; }
.gd-card-name { padding: 8px 12px; font-size: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #c9d3e2; }
.gd-card.sel .gd-card-name { color: #fff; font-weight: 700; }
.gd-count { position: absolute; right: 56px; top: 400px; font-size: 18px; color: #9fb0c8; }
