/* ============================= GLOBAL SHELL ============================= */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;padding-bottom:106px;font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;color:#1A1D23}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none}
a{color:inherit;text-decoration:none}
input,select,textarea{font:inherit}

.hub-nav{position:sticky;top:0;z-index:200;display:flex;align-items:center;
  justify-content:space-between;gap:18px;padding:13px 26px;background:#12141a;
  color:#fff;flex-wrap:wrap}
.hub-brand{font-weight:800;font-size:16px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.hub-brand span{color:#ff6c3b}
.hub-tabs{display:flex;gap:6px;flex-wrap:wrap}
.hub-tab{padding:9px 16px;border-radius:999px;font-weight:700;font-size:13.5px;
  color:#b7bdc9;background:transparent;border:1px solid transparent;transition:.15s;
  display:flex;align-items:center}
.hub-tab:hover{color:#fff;border-color:#333844}
.hub-tab.active{background:#fff;color:#12141a}
.hub-tab .dot{display:none;width:7px;height:7px;border-radius:50%;background:#ff6c3b;margin-left:7px}
.hub-tab.is-playing .dot{display:inline-block}

.view{display:none}
.view.active{display:block}

/* =============================== CALENDAR =============================== */
.view-calendar{
  --bg:#F6F7F9; --panel:#FFFFFF; --ink:#1A1D23; --grey:#707885; --line:#E4E7EC;
  --brand:#4B5BD7; --brand-l:#EEF0FD;
  --c1:#4B5BD7; --c2:#12A594; --c3:#E0733D; --c4:#C2418E; --c5:#8B5CF6;
  --r:10px; --rl:16px;
  --sans:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}
.cal-shell{font:15px/1.6 var(--sans);color:var(--ink);background:var(--bg);
     display:grid;grid-template-columns:266px 1fr;min-height:78vh}

/* sidebar */
.view-calendar .side{background:var(--panel);border-right:1px solid var(--line);padding:24px 20px;
      display:flex;flex-direction:column;gap:22px}
.view-calendar .brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;letter-spacing:-.02em}
.view-calendar .brand i{width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;font-style:normal}
.newbtn{background:var(--brand);color:#fff;padding:12px;border-radius:var(--r);
  font-weight:700;font-size:14.5px;width:100%}
.newbtn:hover{background:#3E4CBC}
.mini{border:1px solid var(--line);border-radius:var(--rl);padding:14px}
.mini-h{display:flex;align-items:center;justify-content:between;gap:8px;margin-bottom:10px}
.mini-h b{flex:1;font-size:13.5px}
.mini-h button{width:24px;height:24px;border-radius:6px;color:var(--grey)}
.mini-h button:hover{background:var(--bg)}
.mini table{width:100%;border-collapse:collapse}
.mini th{font-size:10.5px;color:var(--grey);font-weight:700;padding:4px 0}
.mini td{text-align:center;padding:2px 0}
.mini td span{display:inline-flex;width:25px;height:25px;align-items:center;justify-content:center;
  border-radius:50%;font-size:12px;cursor:pointer}
.mini td span:hover{background:var(--bg)}
.mini td span.mut{color:#C2C7D0}
.mini td span.today{background:var(--brand);color:#fff;font-weight:700}
.mini td span.sel{box-shadow:inset 0 0 0 2px var(--brand);font-weight:700}
.legend h4{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--grey);margin-bottom:10px}
.legend li{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13.5px;cursor:pointer}
.legend i{width:11px;height:11px;border-radius:4px;flex:0 0 11px}
.legend li.off{opacity:.38}

/* main */
.view-calendar main{display:flex;flex-direction:column;min-width:0}
.view-calendar .top{display:flex;align-items:center;gap:14px;padding:18px 26px;background:var(--panel);
     border-bottom:1px solid var(--line);flex-wrap:wrap}
.view-calendar .top h1{font-size:21px;font-weight:800;letter-spacing:-.02em;min-width:190px}
.view-calendar .nav{display:flex;gap:5px}
.view-calendar .nav button{width:34px;height:34px;border-radius:var(--r);border:1px solid var(--line);color:var(--grey)}
.view-calendar .nav button:hover{background:var(--bg);color:var(--ink)}
.today-btn{padding:8px 15px;border:1px solid var(--line);border-radius:var(--r);font-weight:600;font-size:13.5px}
.today-btn:hover{background:var(--bg)}
.view-calendar .search{margin-left:auto;position:relative}
.view-calendar .search input{padding:9px 13px;border:1px solid var(--line);border-radius:var(--r);
  width:210px;background:var(--bg)}
.view-calendar .search input:focus{outline:0;border-color:var(--brand);background:#fff}

/* grid */
.cal{flex:1;padding:20px 26px 30px;min-width:0}
.dows{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}
.dows div{font-size:11.5px;font-weight:700;color:var(--grey);text-transform:uppercase;
  letter-spacing:.07em;padding-left:4px}
.grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(112px,1fr);gap:8px}
.cell{background:var(--panel);border:1px solid var(--line);border-radius:var(--rl);
  padding:9px;display:flex;flex-direction:column;gap:5px;min-width:0;cursor:pointer;transition:.14s}
.cell:hover{border-color:var(--brand);box-shadow:0 5px 16px rgba(0,0,0,.07)}
.cell.mut{background:#FBFBFC}
.cell.mut .dnum{color:#C2C7D0}
.dnum{font-size:13px;font-weight:700;width:25px;height:25px;display:flex;
  align-items:center;justify-content:center;border-radius:50%;flex:0 0 auto}
.cell.today .dnum{background:var(--brand);color:#fff}
.ev{font-size:11.5px;font-weight:600;padding:3px 7px;border-radius:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid}
.more{font-size:11px;color:var(--grey);font-weight:600;padding-left:4px}

/* detail panel */
.view-calendar .panel{position:fixed;inset:0 0 0 auto;width:min(390px,92vw);background:var(--panel, #fff);
  border-left:1px solid var(--line,#E4E7EC);box-shadow:-10px 0 40px rgba(0,0,0,.12);
  transform:translateX(100%);transition:transform .26s;z-index:60;
  display:flex;flex-direction:column;font:15px/1.6 var(--sans)}
.view-calendar .panel.open{transform:none}
.ph{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line,#E4E7EC)}
.ph h2{font-size:17px;flex:1}
.ph button{width:30px;height:30px;border-radius:8px;color:var(--grey,#707885);font-size:17px}
.ph button:hover{background:var(--bg,#F6F7F9)}
.pb{padding:20px 22px;overflow-y:auto;flex:1;display:grid;gap:12px;align-content:start}
.pev{border:1px solid var(--line,#E4E7EC);border-radius:var(--r,10px);padding:13px 15px;border-left:4px solid}
.pev b{display:block;font-size:14.5px}
.pev span{font-size:12.5px;color:var(--grey,#707885)}
.empty{color:var(--grey,#707885);font-size:14px;text-align:center;padding:34px 0}
.pf{padding:16px 22px;border-top:1px solid var(--line,#E4E7EC)}
.pf button{width:100%;background:var(--brand,#4B5BD7);color:#fff;padding:11px;border-radius:var(--r,10px);font-weight:700}

/* modal (calendar's add-event modal, scoped so it can't collide with other tabs' own .modal styling) */
.view-calendar .mask{position:fixed;inset:0;background:rgba(16,20,28,.45);opacity:0;visibility:hidden;
  transition:.2s;z-index:170}
.view-calendar .mask.open{opacity:1;visibility:visible}
.view-calendar .modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%);width:min(430px,92vw);
  background:var(--panel,#fff);border-radius:var(--rl,16px);z-index:180;padding:24px;
  opacity:0;visibility:hidden;transition:.2s;font:15px/1.6 var(--sans)}
.view-calendar .modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.view-calendar .modal h2{font-size:18px;margin-bottom:16px}
.f{display:grid;gap:12px}
.f label{display:block;font-size:12.5px;font-weight:700;color:var(--grey,#707885);margin-bottom:5px}
.f input,.f select{width:100%;padding:11px;border:1px solid var(--line,#E4E7EC);
  border-radius:var(--r,10px);background:var(--bg,#F6F7F9)}
.f input:focus,.f select:focus{outline:0;border-color:var(--brand,#4B5BD7);background:#fff}
.f .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.f .bad input{border-color:#D14343}
.swatches{display:flex;gap:8px}
.sw{width:30px;height:30px;border-radius:9px;cursor:pointer;border:3px solid transparent}
.sw.on{border-color:var(--ink,#1A1D23)}
.macts{display:flex;gap:10px;margin-top:6px}
.macts button{flex:1;padding:11px;border-radius:var(--r,10px);font-weight:700}
.cancel{border:1px solid var(--line,#E4E7EC)}
.cancel:hover{background:var(--bg,#F6F7F9)}
.save{background:var(--brand,#4B5BD7);color:#fff}
.save:hover{background:#3E4CBC}

.burger{display:none}
@media(max-width:940px){
  .cal-shell{grid-template-columns:1fr}
  .view-calendar .side{position:fixed;inset:60px auto 0 0;width:262px;transform:translateX(-100%);
    transition:transform .26s;z-index:150;height:calc(100vh - 60px)}
  .view-calendar .side.open{transform:none}
  .burger{display:block;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--r)}
  .view-calendar .search{width:100%;margin:0}
  .view-calendar .search input{width:100%}
  .grid{grid-auto-rows:minmax(84px,1fr);gap:5px}
  .ev{font-size:10.5px}
}
@media(max-width:560px){
  .view-calendar .top h1{font-size:18px;min-width:0}
  .grid{gap:3px}
  .cell{padding:5px;border-radius:9px}
  .dnum{width:21px;height:21px;font-size:11.5px}
  .ev{padding:2px 4px}
}

/* ================================ WEATHER ================================ */
.view-weather{min-height:78vh;padding:20px;
  font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#333;
  background:linear-gradient(135deg,#667eea,#764ba2)}
.wx-container{max-width:760px;margin:auto}
.view-weather header{text-align:center;color:#fff;margin:16px 0 25px}
.view-weather h1{font-size:34px;margin:0 0 7px;text-shadow:0 2px 4px #0003}
.view-weather header p{margin:0;opacity:.9}
.selector,.card,.day{background:#fffffff2;border-radius:16px;box-shadow:0 8px 32px #0002}
.selector{padding:20px;margin-bottom:18px}
.fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.field{display:grid;gap:5px;font-size:11px;font-weight:800;letter-spacing:.06em;color:#5e5b7b}
.field select{min-width:0;padding:12px;border:1px solid #d7d5e8;border-radius:8px;background:#fff;color:#333;font:14px inherit}
.field select:disabled{opacity:.6}
.actions{display:flex;gap:10px;margin-top:16px}
.actions button{border:0;border-radius:8px;padding:12px 18px;background:#667eea;color:#fff;font-weight:800;cursor:pointer}
.actions button:hover{background:#536bd4}
.actions .location{background:#eee;color:#4d4a65}
.note{font-size:12px;color:#706d88;margin:13px 0 0}
.loading,.error{text-align:center;color:#fff;padding:28px;font-weight:700}
.error{background:#b73f56;border-radius:12px}
.card{padding:28px;text-align:center}
.place{font-size:28px;font-weight:800}
.date{font-size:12px;color:#888;margin:7px}
.temp{font-size:62px;font-weight:800;line-height:1.1}
.icon{font-size:52px}
.desc{font-size:18px;color:#666;margin:8px}
.details{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid #ddd;margin-top:20px;padding-top:19px}
.details small{display:block;color:#888;font-size:10px;letter-spacing:.06em}
.details b{font-size:15px}
.forecast-title{color:#fff;margin:25px 0 10px;font-size:18px}
.forecast{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.day{padding:13px 6px;text-align:center;font-size:13px}
.day .weather{font-size:29px;margin:7px}
.low{color:#888;margin-left:4px}
@media(max-width:600px){
  .view-weather .fields{grid-template-columns:1fr}
  .view-weather .details{grid-template-columns:1fr 1fr}
  .view-weather .forecast{grid-template-columns:repeat(3,1fr)}
  .wx-container{max-width:500px}
}
@media(prefers-color-scheme:dark){
  .view-weather{background:linear-gradient(135deg,#1a1a2e,#16213e)}
  .selector,.card,.day{background:#25253aeF;color:#eee}
  .field,.desc,.date,.details small,.low,.note{color:#b9b9c9}
  .field select{background:#34344c;color:#eee;border-color:#55556c}
  .details{border-color:#555}
  .actions .location{background:#3f3f59;color:#fff}
}

/* ================================= RADIO ================================= */
.view-radio{
  --ink:#091222;--deep:#101e38;--paper:#f6f3ed;--white:#fffdfa;--line:#d9d8d2;
  --blue:#3c78ff;--orange:#ff6c3b;--muted:#687284;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;
  color:var(--ink);font-family:Arial,sans-serif;background:var(--paper);min-height:78vh
}
.view-radio .shell{width:min(1180px,calc(100% - 44px));margin:auto}
.view-radio .topbar{height:76px;display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 44px));margin:auto}
.view-radio .brand{font-weight:850;font-size:20px;letter-spacing:-.04em}
.view-radio .brand span{color:var(--orange);font-size:22px;margin-right:6px}
.live-status{font:700 10px var(--mono);letter-spacing:.12em;color:var(--muted)}
.live-status i{display:inline-block;width:7px;height:7px;background:var(--orange);border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px #ff6c3b24}
.live-status b{font-weight:600;color:#46526b;margin-left:13px}
.hero{min-height:450px;display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}
.eyebrow{font:700 10px var(--mono);letter-spacing:.13em;color:var(--blue);margin:0 0 16px}
.hero h1,.finder h2{font:800 clamp(44px,6vw,76px)/.96 Georgia,serif;letter-spacing:-.065em;margin:0}
.hero h1 em{color:var(--blue);font-weight:600;font-style:italic}
.lead{max-width:585px;font-size:18px;line-height:1.7;color:var(--muted);margin:26px 0}
.hero-note{font-size:12px;font-weight:700;color:#3d4960}
.world-card{height:285px;background:var(--deep);border-radius:24px;position:relative;overflow:hidden;box-shadow:15px 15px 0 #b9cdfd;display:flex;align-content:space-around;justify-content:space-around;flex-wrap:wrap;padding:35px;color:#d8e3fb;font:700 10px var(--mono);letter-spacing:.08em}
.world-card:before{content:"";position:absolute;width:340px;height:340px;border:1px solid #759be1;border-radius:50%;left:50%;top:52%;transform:translate(-50%,-50%)}
.world-card span{position:relative;z-index:1;background:#101e38;padding:3px}
.world-card b{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);font:800 27px Georgia;color:#fff}
.world-card i{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 7px #ff6c3b28}
.world-card i:nth-of-type(1){top:39%;left:25%}
.world-card i:nth-of-type(2){top:30%;right:19%;background:#6ad7ff}
.world-card i:nth-of-type(3){bottom:22%;right:33%;background:#c8ee66}
.finder{background:var(--white);border-block:1px solid var(--line);padding:74px 0 90px}
.finder-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}
.finder h2{font-size:clamp(35px,4vw,56px)}
.finder-heading>p{max-width:340px;color:var(--muted);font-size:12px;line-height:1.6}
.controls{display:grid;grid-template-columns:.85fr 1.15fr;gap:15px;margin:36px 0 17px}
.controls label{display:flex;flex-direction:column;gap:8px;font:700 10px var(--mono);letter-spacing:.08em}
.controls select,.controls input{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:15px 16px;color:var(--ink);font:500 14px Arial,sans-serif;outline-color:var(--blue)}
.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:28px}
.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;color:#495469;font-size:12px;font-weight:700;cursor:pointer}
.filter.active{background:var(--ink);border-color:var(--ink);color:#fff}
.filter:hover{border-color:var(--blue)}
#results-count{margin-left:auto;font:600 10px var(--mono);color:var(--muted)}
.message{padding:24px;border:1px dashed #c8c7c1;text-align:center;color:var(--muted);font-size:13px}
.station-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.station{display:grid;grid-template-columns:47px 1fr auto;gap:13px;align-items:center;border:1px solid var(--line);padding:14px;border-radius:12px;background:#fff;min-width:0}
.station.playing{border-color:var(--blue);box-shadow:0 0 0 2px #3c78ff17}
.station-icon{height:47px;width:47px;border-radius:10px;background:linear-gradient(145deg,#dbe6ff,#fae0d6);display:grid;place-items:center;overflow:hidden;color:var(--blue);font-size:19px;font-weight:bold}
.station-icon img{width:100%;height:100%;object-fit:cover}
.station-info{min-width:0}
.station-info strong,.station-info span{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.station-info strong{font-size:14px}
.station-info span{font-size:11px;color:var(--muted);margin-top:4px}
.station button{height:34px;width:34px;border:0;border-radius:50%;background:var(--ink);color:#fff;cursor:pointer;font-size:13px}
.station button:hover{background:var(--blue)}
.load-more{display:block;margin:26px auto 0;border:1px solid var(--ink);padding:12px 18px;background:#fff;font-weight:800;border-radius:5px;cursor:pointer}
.load-more:hover{background:var(--ink);color:#fff}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:75px 0}
.how div{border-top:2px solid var(--ink);padding-top:17px}
.how strong{font:700 11px var(--mono);color:var(--orange)}
.how h3{margin:19px 0 8px;font:700 23px Georgia}
.how p{color:var(--muted);font-size:13px;line-height:1.7}
.view-radio footer{padding:26px min(1180px,calc(100% - 44px));text-align:center;color:var(--muted);font-size:12px}

/* persistent player -- global, lives outside .view so it survives tab switches */
.player{position:fixed;z-index:250;bottom:0;left:0;right:0;min-height:92px;background:#081222;color:#fff;
  padding:12px max(22px,calc((100% - 1180px)/2));display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto;
  align-items:center;gap:14px;border-top:1px solid #2c3d5d}
.player-art{height:54px;width:54px;border-radius:10px;background:linear-gradient(145deg,#ff6c3b,#3c78ff);display:grid;place-items:center;font-size:25px}
.now-playing{min-width:0}
.now-playing small,.now-playing strong,.now-playing span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-playing small{font:700 9px ui-monospace,SFMono-Regular,Consolas,monospace;color:#92abd5;letter-spacing:.1em}
.now-playing strong{font-size:14px;margin:4px 0}
.now-playing span{font-size:11px;color:#b8c6de}
.player-controls{display:flex;align-items:center;gap:4px}
.player-controls button{border:0;background:none;color:#d3e2fb;cursor:pointer;width:34px;height:34px;font-size:26px}
.player-controls .play-button{background:#fff;color:#091222;border-radius:50%;font-size:14px}
.volume{display:flex;align-items:center;gap:8px}
.volume input{accent-color:#ff6c3b;width:105px}

@media(max-width:720px){
  .view-radio .topbar{height:62px}
  .live-status{display:none}
  .hero{grid-template-columns:1fr;gap:32px;padding:55px 0 65px}
  .world-card{height:190px;max-width:390px}
  .controls,.station-list{grid-template-columns:1fr}
  .finder-heading{display:block}
  .finder-heading>p{margin-top:15px}
  .how{grid-template-columns:1fr;gap:25px;padding:55px 0}
  .player{grid-template-columns:auto 1fr auto;gap:10px}
  .volume{display:none}
  .player-art{width:46px;height:46px}
  .player-controls button:not(.play-button){display:none}
  .now-playing{max-width:calc(100vw - 155px)}
  #results-count{width:100%;margin-left:0}
  .view-radio .shell{width:calc(100% - 28px)}
}

/* ================================= I-WATCH ================================= */
.view-iwatch{
  --iw-bg-1:#0b1410; --iw-bg-2:#0f1f18; --iw-panel:#132a20; --iw-panel-2:#0d2018;
  --iw-glass:rgba(255,255,255,0.04); --iw-glass-brd:rgba(255,255,255,0.08);
  --iw-accent:#3b82f6; --iw-accent-2:#2563eb; --iw-text:#eef3ef; --iw-text-dim:#9fb3a8;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:
    radial-gradient(1200px 600px at 20% -10%, #17301f 0%, transparent 60%),
    radial-gradient(1000px 500px at 100% 0%, #12261c 0%, transparent 55%),
    linear-gradient(180deg,var(--iw-bg-1),var(--iw-bg-2));
  color:var(--iw-text);
  min-height:78vh;
}
.view-iwatch .wrap{max-width:1100px;margin:0 auto;padding:28px 20px 60px;}
.view-iwatch .app-title{
  display:flex;align-items:center;gap:10px;
  font-size:15px;font-weight:700;letter-spacing:.4px;
  color:var(--iw-text-dim);
  background:var(--iw-glass);
  border:1px solid var(--iw-glass-brd);
  padding:10px 16px;border-radius:12px;
  width:fit-content;margin-bottom:22px;
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.view-iwatch .app-title .emoji{font-size:18px;}
.view-iwatch .app-title b{color:var(--iw-text);}

.view-iwatch .btn{
  border:none;cursor:pointer;
  border-radius:12px;
  padding:13px 18px;
  font-size:14px;font-weight:600;
  display:flex;align-items:center;gap:6px;
  transition:transform .1s ease, filter .15s ease;
  white-space:nowrap;
}
.view-iwatch .btn:active{transform:scale(0.97);}
.view-iwatch .btn-primary{background:linear-gradient(180deg,var(--iw-accent),var(--iw-accent-2));color:#fff;}
.view-iwatch .btn-primary:hover{filter:brightness(1.08);}

.view-iwatch .status-msg{
  font-size:13px;color:var(--iw-text-dim);text-align:center;padding:30px 10px;
}

.view-iwatch .media-card{
  position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
  border:1px solid var(--iw-glass-brd);
  border-radius:22px;
  padding:22px;
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
}
.view-iwatch .media-card h3{margin:0 0 4px;font-size:15px;display:flex;align-items:center;gap:8px;}
.view-iwatch .widget-subtext{font-size:11.5px;color:var(--iw-text-dim);margin:0 0 16px;}

.view-iwatch .youtube-searchbar-wrap{position:relative;margin-bottom:14px;}
.view-iwatch .youtube-toolbar{display:flex;gap:10px;flex-wrap:wrap;}
.view-iwatch #youtube-search-input{
  flex:2;min-width:200px;
  background:var(--iw-panel-2);
  border:1px solid var(--iw-glass-brd);
  color:var(--iw-text);
  padding:13px 16px;
  border-radius:12px;
  font-size:14.5px;
  outline:none;
  transition:border-color .15s ease;
}
.view-iwatch #youtube-search-input::placeholder{color:var(--iw-text-dim);}
.view-iwatch #youtube-search-input:focus{border-color:var(--iw-accent);}

.view-iwatch .youtube-search-button, .view-iwatch .youtube-api-key-button{
  border:none;cursor:pointer;border-radius:12px;padding:13px 18px;font-size:14px;font-weight:600;
  display:flex;align-items:center;gap:6px;white-space:nowrap;
  transition:transform .1s ease, filter .15s ease;
}
.view-iwatch .youtube-search-button{background:linear-gradient(180deg,var(--iw-accent),var(--iw-accent-2));color:#fff;}
.view-iwatch .youtube-search-button:hover{filter:brightness(1.08);}
.view-iwatch .youtube-api-key-button{background:var(--iw-glass);border:1px solid var(--iw-glass-brd);color:var(--iw-text);}
.view-iwatch .youtube-api-key-button:hover{filter:brightness(1.15);}
.view-iwatch .youtube-search-button:active, .view-iwatch .youtube-api-key-button:active{transform:scale(0.97);}

.view-iwatch .youtube-search-results{
  list-style:none;margin:0;padding:0;
  position:absolute;left:0;right:0;top:calc(100% + 6px);
  background:var(--iw-panel);border:1px solid var(--iw-glass-brd);border-radius:12px;
  max-height:320px;overflow-y:auto;
  box-shadow:0 20px 40px rgba(0,0,0,0.45);
  z-index:25;display:none;
  scrollbar-width:thin;scrollbar-color:rgba(59,130,246,0.5) transparent;
}
.view-iwatch .youtube-search-results.open{display:block;}
.view-iwatch .youtube-search-results li{
  display:flex;gap:10px;align-items:center;padding:9px 10px;cursor:pointer;
  border-bottom:1px solid var(--iw-glass-brd);
}
.view-iwatch .youtube-search-results li:last-child{border-bottom:none;}
.view-iwatch .youtube-search-results li:hover{background:var(--iw-glass);}
.view-iwatch .youtube-search-results li img{width:56px;height:36px;object-fit:cover;border-radius:6px;flex-shrink:0;background:#132a20;}
.view-iwatch .youtube-search-results li.yt-channel-suggest img{width:36px;height:36px;border-radius:50%;}
.view-iwatch .youtube-search-results li .yt-res-text{flex:1;min-width:0;}
.view-iwatch .youtube-search-results li .yt-res-title{font-size:12.5px;color:var(--iw-text);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.view-iwatch .youtube-search-results li .yt-res-channel{font-size:11px;color:var(--iw-text-dim);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-iwatch .youtube-search-results li .yt-res-empty, .view-iwatch .youtube-search-results li.yt-res-note{
  padding:14px;font-size:12.5px;color:var(--iw-text-dim);text-align:center;cursor:default;
}
.view-iwatch .yt-type-badge{font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--iw-accent);
  background:rgba(59,130,246,0.14);padding:2px 6px;border-radius:6px;flex-shrink:0;}

.view-iwatch .youtube-api-key-panel{
  background:var(--iw-panel-2);border:1px solid var(--iw-glass-brd);border-radius:14px;
  padding:16px;margin-bottom:14px;
}
.view-iwatch .youtube-api-key-panel label{display:block;font-size:12px;color:var(--iw-text-dim);margin-bottom:8px;}
.view-iwatch .youtube-api-key-panel input{
  width:100%;padding:11px 13px;border-radius:10px;
  border:1px solid var(--iw-glass-brd);background:var(--iw-panel);color:var(--iw-text);
  font-size:13.5px;margin-bottom:10px;outline:none;
}
.view-iwatch .youtube-api-key-panel input:focus{border-color:var(--iw-accent);}
.view-iwatch .youtube-api-hint{font-size:11px;color:var(--iw-text-dim);line-height:1.5;margin:10px 0 0;}
.view-iwatch #youtube-api-key-status{font-size:12px;margin:8px 0 0;min-height:14px;}
.view-iwatch #youtube-api-key-status.ok{color:#6be08a;}
.view-iwatch #youtube-api-key-status.err{color:#ff8080;}

.view-iwatch .youtube-results{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:12px;margin-bottom:16px;
}
.view-iwatch .youtube-results:empty{display:none;}
.view-iwatch .youtube-results .yt-card{
  background:var(--iw-glass);border:1px solid var(--iw-glass-brd);border-radius:10px;
  overflow:hidden;cursor:pointer;transition:transform .15s ease, border-color .15s ease;
}
.view-iwatch .youtube-results .yt-card:hover{transform:translateY(-3px);border-color:var(--iw-accent);}
.view-iwatch .youtube-results .yt-thumb{position:relative;width:100%;aspect-ratio:16/9;background:#132a20;overflow:hidden;}
.view-iwatch .youtube-results .yt-card-current{border-color:var(--iw-accent);box-shadow:0 0 0 1px var(--iw-accent);}
.view-iwatch .youtube-results .yt-now-badge{
  position:absolute;left:6px;bottom:6px;
  background:rgba(37,99,235,0.92);color:#fff;
  font-size:9.5px;font-weight:700;letter-spacing:.3px;
  padding:3px 7px;border-radius:6px;
}
.view-iwatch .youtube-results .yt-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.view-iwatch .youtube-results .yt-meta{padding:8px 9px 10px;}
.view-iwatch .youtube-results .yt-title{font-size:12.5px;font-weight:600;color:var(--iw-text);line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.view-iwatch .youtube-results .yt-channel{font-size:11px;color:var(--iw-text-dim);margin-top:3px;}

.view-iwatch .youtube-screen{
  background:#04070a;border-radius:14px;aspect-ratio:16/9;
  width:100%;max-width:min(100%, max(240px, calc((100vh - 220px) * 16 / 9)));margin:0 auto;
  overflow:hidden;position:relative;
  box-shadow:inset 0 0 40px rgba(0,0,0,0.8), 0 20px 50px rgba(0,0,0,0.4);
  border:1px solid rgba(255,255,255,0.06);
}
.view-iwatch .youtube-screen iframe{width:100%;height:100%;border:0;display:block;position:relative;z-index:1;}
.view-iwatch #youtube-player-holder{position:absolute;inset:0;}
.view-iwatch #youtube-player-holder iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.view-iwatch .youtube-screen .radio-status{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  margin:0;padding:16px;text-align:center;font-size:12.5px;color:#5c6f66;
  background:radial-gradient(circle at 50% 40%, rgba(59,130,246,0.08), transparent 60%), #04070a;
  pointer-events:none;
}
.view-iwatch .youtube-screen.has-video .radio-status{display:none;}

.view-iwatch .yt-player-nav{
  position:absolute;top:0;bottom:0;left:0;right:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 10px;pointer-events:none;
}
.view-iwatch .yt-nav-btn{
  pointer-events:auto;
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:rgba(4,7,10,0.55);border:1px solid rgba(255,255,255,0.18);color:#eef3ef;
  font-size:22px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s,opacity .15s;
}
.view-iwatch .yt-nav-btn:hover:not(:disabled){background:var(--iw-accent);border-color:var(--iw-accent);}
.view-iwatch .yt-nav-btn:disabled{opacity:0.25;cursor:default;}

.view-iwatch .yt-flyout{
  position:absolute;left:0;right:0;top:calc(100% + 6px);
  background:var(--iw-panel);border:1px solid var(--iw-glass-brd);border-radius:14px;
  box-shadow:0 30px 70px rgba(0,0,0,0.6);
  z-index:30;overflow:hidden;
}
.view-iwatch .yt-flyout[hidden]{display:none;}
.view-iwatch .yt-flyout.collapsed .yt-flyout-body,
.view-iwatch .yt-flyout.collapsed .yt-flyout-footer{display:none;}
.view-iwatch .yt-flyout-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--iw-glass-brd);}
.view-iwatch .yt-flyout.collapsed .yt-flyout-header{border-bottom:none;}
.view-iwatch .yt-flyout-header img{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#132a20;}
.view-iwatch .yt-flyout-titles{flex:1;min-width:0;}
.view-iwatch .yt-flyout-title{font-size:13.5px;font-weight:600;color:var(--iw-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-iwatch .yt-flyout-subtitle{font-size:11.5px;color:var(--iw-text-dim);margin-top:2px;}
.view-iwatch .yt-flyout-body{max-height:min(420px,55vh);overflow-y:auto;padding:14px;
  scrollbar-width:thin;scrollbar-color:rgba(59,130,246,0.5) transparent;}
.view-iwatch .yt-flyout-body .youtube-results{margin-bottom:0;}
.view-iwatch .yt-flyout-footer{padding:10px 14px;border-top:1px solid var(--iw-glass-brd);display:flex;justify-content:center;}
.view-iwatch .yt-flyout-body::-webkit-scrollbar, .view-iwatch .library-list::-webkit-scrollbar{width:8px;}
.view-iwatch .yt-flyout-body::-webkit-scrollbar-thumb, .view-iwatch .library-list::-webkit-scrollbar-thumb{background:rgba(59,130,246,0.5);border-radius:8px;}
.view-iwatch .yt-flyout-body::-webkit-scrollbar-track, .view-iwatch .library-list::-webkit-scrollbar-track{background:transparent;}

.view-iwatch .modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,0.6);
  display:none;align-items:center;justify-content:center;z-index:220;padding:20px;
}
.view-iwatch .modal-backdrop.open{display:flex;}
.view-iwatch .modal{
  background:var(--iw-panel);
  border:1px solid var(--iw-glass-brd);
  border-radius:16px;
  padding:22px;
  width:min(560px,92vw);
  max-height:82vh;
  display:flex;flex-direction:column;
  box-shadow:0 30px 60px rgba(0,0,0,0.5);
}
.view-iwatch .library-modal-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;}
.view-iwatch .library-modal-header h3{margin:0;font-size:16px;}
.view-iwatch .library-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding-right:4px;
  scrollbar-width:thin;scrollbar-color:rgba(59,130,246,0.5) transparent;}
.view-iwatch .library-list:empty::before{content:"Nothing saved yet — play a song and it'll show up here.";display:block;padding:24px 10px;text-align:center;font-size:12.5px;color:var(--iw-text-dim);}
.view-iwatch .library-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;background:var(--iw-glass);border:1px solid var(--iw-glass-brd);cursor:pointer;}
.view-iwatch .library-item:hover{border-color:var(--iw-accent);}
.view-iwatch .library-item img{width:64px;height:36px;object-fit:cover;border-radius:6px;flex-shrink:0;background:#132a20;}
.view-iwatch .library-item .li-meta{flex:1;min-width:0;}
.view-iwatch .library-item .li-title{font-size:12.5px;color:var(--iw-text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-iwatch .library-item .li-sub{font-size:11px;color:var(--iw-text-dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.view-iwatch .library-item .li-remove{background:none;border:none;color:var(--iw-text-dim);cursor:pointer;font-size:15px;padding:4px 8px;flex-shrink:0;line-height:1;}
.view-iwatch .library-item .li-remove:hover{color:#ff8080;}
.view-iwatch .library-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}

.view-iwatch .search-history-list{
  max-height:160px;overflow-y:auto;flex-shrink:0;
  display:flex;flex-direction:column;gap:6px;
  margin-bottom:10px;
  scrollbar-width:thin;scrollbar-color:rgba(59,130,246,0.5) transparent;
}
.view-iwatch .search-history-list::-webkit-scrollbar{width:6px;}
.view-iwatch .search-history-list::-webkit-scrollbar-thumb{background:rgba(59,130,246,0.5);border-radius:8px;}
.view-iwatch .search-history-list::-webkit-scrollbar-track{background:transparent;}
.view-iwatch .search-history-list:empty::before{
  content:"Nothing searched yet — try typing something above.";
  display:block;padding:14px 10px;text-align:center;font-size:12px;color:var(--iw-text-dim);
}
.view-iwatch .search-history-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 10px;border-radius:8px;background:var(--iw-glass);border:1px solid var(--iw-glass-brd);
  cursor:pointer;font-size:12.5px;color:var(--iw-text);
}
.view-iwatch .search-history-item:hover{border-color:var(--iw-accent);}
.view-iwatch .search-history-item .sh-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.view-iwatch .search-history-item .sh-remove{background:none;border:none;color:var(--iw-text-dim);cursor:pointer;font-size:14px;padding:2px 6px;flex-shrink:0;line-height:1;}
.view-iwatch .search-history-item .sh-remove:hover{color:#ff8080;}

@media(max-width:560px){
  .view-iwatch .wrap{padding:18px 12px 40px;}
  .view-iwatch .youtube-toolbar input[type="text"]{flex-basis:100%;}
}
@media(max-width:720px){
  .view-iwatch .youtube-results{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));}
  .view-iwatch .yt-nav-btn{width:36px;height:36px;font-size:19px;}
  .view-iwatch .app-title{font-size:13px;padding:8px 12px;}
}
/* ============================== WEBSITE TAB — PIN GATE ============================== */
.website-pin-overlay{position:fixed;inset:0;z-index:999;background:rgba(10,11,15,.72);
  display:flex;align-items:center;justify-content:center;padding:16px}
.website-pin-overlay[hidden]{display:none}
.website-pin-modal{position:relative;width:100%;max-width:340px;background:#12141a;
  color:#fff;border:1px solid #333844;border-radius:16px;padding:26px 22px 22px;
  box-shadow:0 20px 60px rgba(0,0,0,.45)}
.website-pin-close{position:absolute;top:10px;right:12px;font-size:20px;line-height:1;
  color:#b7bdc9;background:none;border:0}
.website-pin-close:hover{color:#fff}
.website-pin-label{margin:0 0 14px;font-weight:700;font-size:14.5px;text-align:center}
.website-pin-row{display:flex;gap:8px;justify-content:center}
.website-pin-input{width:120px;padding:10px 12px;border-radius:10px;border:1px solid #333844;
  background:#1c1f27;color:#fff;font-size:16px;letter-spacing:4px;text-align:center}
.website-pin-input:focus{outline:2px solid #ff6c3b;outline-offset:1px}
.website-pin-submit{padding:10px 18px;border-radius:10px;font-weight:700;font-size:13.5px;
  background:#ff6c3b;color:#fff}
.website-pin-submit:hover{background:#ff8256}
.website-pin-error{margin:12px 0 0;font-size:12.5px;color:#ff6c6c;text-align:center}
.website-pin-error[hidden]{display:none}