:root{--green:#274640;--green-dark:#1c3832;--off-white:#f8f6f1;--cream:#fffaf0;--gold:#c9970c;--text:#1a2e1e;--muted:#6b6660;--line:#e4ded2;--font:'Nunito',sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;background:var(--off-white)}
body{margin:0;min-height:100vh;background:var(--off-white);color:var(--text);font-family:var(--font)}
body:after{content:'';position:fixed;inset:0;z-index:99999;pointer-events:none;background:linear-gradient(135deg,#173b34,#274640);opacity:0;transition:opacity .15s ease}
body.tb-leaving:after{opacity:1}
button,input{font:inherit}

.tb-shell{min-height:100vh}
.tb-top{height:92px;background:var(--green);border-bottom:1px solid rgba(255,255,255,.12);padding:0 max(1.25rem,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:1.5rem;color:#fff}
.tb-brand{display:flex;align-items:center;text-decoration:none}
.tb-brand img{height:54px;width:auto;max-width:230px;object-fit:contain}
.tb-brand>div{display:none}
.tb-top-actions{display:flex;align-items:center;gap:12px}
.tb-signed-in{color:rgba(255,255,255,.68);font-size:.84rem}
.tb-signed-in strong{color:#fff}
.tb-return{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(216,199,155,.48);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:.58rem .88rem;text-decoration:none;font-size:.78rem;font-weight:900;white-space:nowrap;transition:background .15s ease,transform .15s ease}
.tb-return:hover{background:rgba(255,255,255,.14);transform:translateX(-2px)}
.tb-return-arrow{color:#d6a400;font-size:1rem}
.tb-avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#d4a006;color:#264540;font-size:.75rem;font-weight:950;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.tb-signout{border:0;background:transparent;color:rgba(255,255,255,.68);font-size:.76rem;font-weight:800;cursor:pointer}
.tb-language{border:1px solid rgba(255,255,255,.24);background:transparent;color:#fff;border-radius:999px;padding:.48rem .7rem;font-size:.72rem;font-weight:900;cursor:pointer}

.tb-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#1c3832 0%,#274640 68%,#48764d 100%);color:#fff;padding:2.2rem max(1.25rem,calc((100vw - 1280px)/2));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center}
.tb-hero:after{content:'';position:absolute;right:-85px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(201,151,12,.19),transparent 68%)}
.tb-hero>div{position:relative;z-index:1}
.tb-eyebrow{display:inline-flex;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);border-radius:999px;padding:.34rem .72rem;color:rgba(255,255,255,.82);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.tb-hero h1{margin:.55rem 0 .35rem;font-size:clamp(1.9rem,3.5vw,2.65rem);line-height:1.08;letter-spacing:-.025em}
.tb-hero p{margin:0;max-width:800px;color:rgba(255,255,255,.76);font-size:1rem;line-height:1.55}
.tb-assurance{display:none}
.tb-count{position:relative;z-index:1;min-width:225px;padding:1rem 1.2rem;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.1);text-align:center}
.tb-count strong{display:block;color:#d6a400;font-size:2.3rem;line-height:1}
.tb-count span{display:block;margin-top:.4rem;color:rgba(255,255,255,.66);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}

.tb-panel{width:min(1280px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem}
.tb-dashboard-install{position:relative;display:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-bottom:1.15rem;padding:1.05rem 1.15rem;border:1px solid #e2d4ad;border-radius:22px;background:linear-gradient(120deg,#fff8e5 0%,#fffdf8 55%,#eef5f0 100%);box-shadow:0 12px 30px rgba(39,70,64,.07)}
.tb-dashboard-install-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:#173b34;box-shadow:0 8px 18px rgba(23,59,52,.2);font-size:1.35rem}
.tb-dashboard-install strong,.tb-dashboard-install small{display:block}.tb-dashboard-install strong{color:#173b34;font-size:1rem}.tb-dashboard-install small{margin-top:.2rem;color:#6b6660;font-size:.78rem;line-height:1.4}
.tb-dashboard-install .tb-dashboard-install-action{min-height:44px;border:0;border-radius:999px;background:#d4a006;color:#173b34;padding:.65rem 1rem;font-weight:950;cursor:pointer;box-shadow:0 8px 20px rgba(201,151,12,.18)}
.tb-dashboard-install .tb-dashboard-install-dismiss{position:absolute;top:.35rem;right:.4rem;width:32px;height:32px;min-height:0;border:0;border-radius:50%;background:transparent;color:#6f756f;font-size:1.25rem;line-height:1;cursor:pointer}
.tb-dashboard-install .tb-dashboard-install-dismiss:hover{background:rgba(23,59,52,.08);color:#173b34}
.tb-dashboard-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:1rem;padding:.38rem;border:1px solid #ded8ca;border-radius:18px;background:#ebe6dc}
.tb-dashboard-tabs button{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;border:0;border-radius:13px;background:transparent;color:#62706b;font-weight:900;cursor:pointer}
.tb-dashboard-tabs button.active{background:#fff;color:#173b34;box-shadow:0 6px 18px rgba(39,70,64,.09)}
.tb-dashboard-tabs b{display:grid;min-width:24px;height:24px;place-items:center;border-radius:99px;background:#e8f0ed;color:#173b34;font-size:.7rem}.tb-dashboard-tabs button.active b{background:#d4a006}
.tb-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;margin-bottom:.9rem}
.tb-search-wrap{position:relative}
.tb-search-wrap:before{content:'⌕';position:absolute;left:15px;top:50%;transform:translateY(-54%);font-size:1.35rem;color:#65726d}
.tb-search{width:100%;height:48px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:.7rem 1rem .7rem 2.8rem;color:var(--text);outline:none;box-shadow:0 5px 17px rgba(39,70,64,.035)}
.tb-search:focus{border-color:#8ca99f;box-shadow:0 0 0 3px rgba(39,70,64,.09)}
.tb-result-count{color:var(--muted);font-size:.78rem;font-weight:850;white-space:nowrap}
.tb-filter{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1.25rem}
.tb-filter button{min-height:35px;border:1px solid var(--line);border-radius:999px;background:#fffaf0;color:#5e635f;padding:.38rem .72rem;font-size:.72rem;font-weight:900;cursor:pointer}
.tb-filter button.active{border-color:var(--green);background:var(--green);color:#fff}

.tb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.tb-favourites-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.tb-favourite-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;min-height:118px;padding:1rem 1.05rem;border:1px solid #e2d8c6;border-radius:20px;background:linear-gradient(135deg,#fff,#fffbf0);color:#173b34;text-decoration:none;box-shadow:0 8px 22px rgba(39,70,64,.055);transition:transform .15s ease,box-shadow .15s ease}
.tb-favourite-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(39,70,64,.1)}
.tb-favourite-star{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#fff0bd;color:#b17d00;font-size:1.2rem}
.tb-favourite-copy{min-width:0}.tb-favourite-copy small,.tb-favourite-copy strong{display:block}.tb-favourite-copy small{margin-bottom:.2rem;color:#8a7651;font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.tb-favourite-copy strong{font-size:.94rem}.tb-favourite-copy p{display:-webkit-box;margin:.3rem 0 0;overflow:hidden;color:#6b6660;font-size:.73rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.tb-favourite-open{color:#8a7651;font-size:.68rem;font-weight:950;white-space:nowrap}
.tb-favourites-empty span,.tb-favourites-empty strong{display:block}.tb-favourites-empty span{color:#c9970c;font-size:2.2rem}.tb-favourites-empty strong{margin:.4rem 0;color:#173b34;font-size:1.05rem}.tb-favourites-empty p{margin:0 auto;max-width:430px;font-size:.8rem;line-height:1.5}
.tb-card{position:relative;display:flex;align-items:flex-start;gap:.9rem;min-height:134px;width:100%;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#fff 0%,#fffcf4 100%);padding:1rem 1.1rem;color:var(--text);text-decoration:none;box-shadow:0 8px 24px rgba(39,70,64,.055);transition:transform .12s ease,box-shadow .15s ease}
.tb-card:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(39,70,64,.095)}
.tb-card-top{display:block;flex:0 0 auto}
.tb-icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:#fdf6e3;color:#7a5418;font-size:21px;box-shadow:inset 0 0 0 1px rgba(232,200,106,.28)}
.tb-card-type{display:none}
.tb-card h2{position:absolute;left:4.85rem;right:1.1rem;top:1rem;margin:0;color:#24493f;font-size:16px;font-weight:950;line-height:1.15}
.tb-card p{position:absolute;left:4.85rem;right:1.1rem;top:2.55rem;margin:.15rem 0 0;color:#6b6660;font-size:12.5px;font-weight:650;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tb-meta{position:absolute;left:4.85rem;right:1.1rem;bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:#8a7651;font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.tb-open{color:#8a7651}
.tb-open:after{content:''}
.tb-empty{grid-column:1/-1;padding:3rem;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:20px}

.tb-pocket{display:none;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;margin:0 0 1.35rem;padding:1rem 1.1rem;border:1px solid #e7dcc1;border-radius:20px;background:linear-gradient(135deg,#fffaf0,#fff);box-shadow:0 9px 25px rgba(39,70,64,.05)}
.tb-pocket h2{margin:0 0 .18rem;color:var(--green);font-size:1.05rem}
.tb-pocket p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.tb-pocket button{border:0;border-radius:999px;background:var(--green);color:#fff;padding:.68rem 1rem;font-weight:900;cursor:pointer;white-space:nowrap}
.tb-install-modal{position:fixed;inset:0;z-index:100010;display:grid;place-items:center;padding:1rem;background:rgba(18,45,39,.72);backdrop-filter:blur(10px)}
.tb-install-card{position:relative;width:min(470px,100%);padding:1.75rem;border:1px solid rgba(216,199,155,.6);border-radius:28px;background:linear-gradient(145deg,#fffdf8,#fffaf0);box-shadow:0 28px 90px rgba(0,0,0,.3)}
.tb-install-icon{width:54px;height:54px;display:grid;place-items:center;margin-bottom:.8rem;border-radius:17px;background:#f7edcf;font-size:1.65rem}
.tb-install-card h2{margin:0 2.8rem .55rem 0;color:var(--green);font-size:clamp(1.55rem,5vw,2rem);line-height:1.08}
.tb-install-card p{margin:.65rem 0;color:var(--muted);font-size:.9rem;line-height:1.5}
.tb-install-card p strong{display:inline-grid;width:25px;height:25px;margin-right:.25rem;place-items:center;border-radius:50%;background:#e7f0ec;color:var(--green);font-size:.75rem}
.tb-install-card .tb-install-close{position:absolute;top:1rem;right:1rem;width:38px;height:38px;padding:0;border:1px solid #e5dece;border-radius:50%;background:#f5f0e5;color:var(--green);font-size:1.3rem;line-height:1;cursor:pointer}
.tb-install-card .tb-primary{width:100%;margin-top:1rem;border:0;border-radius:14px;background:var(--green);color:#fff;padding:.85rem;font-weight:900;cursor:pointer}
.tb-open-browser{display:block;margin-top:1rem;border-radius:14px;background:#d4a006;color:#173b34;padding:.82rem;text-align:center;text-decoration:none;font-weight:950}.tb-standalone-note{padding:.8rem;border-radius:12px;background:#f7edcf;color:#173b34!important;font-weight:750}
.tb-device-question{margin:.25rem 0 .65rem!important;color:#173b34!important;font-weight:900}.tb-device-options{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.9rem}.tb-device-options button{min-height:46px;border:1px solid #d9d1c2;border-radius:13px;background:#fff;color:#52615c;font-size:.78rem;font-weight:900;cursor:pointer}.tb-device-options button span{color:#c8c0b2}.tb-device-options button.active{border-color:#173b34;background:#e8f0ed;color:#173b34;box-shadow:0 0 0 2px rgba(23,59,52,.08)}.tb-device-options button.active span{color:#d4a006}.tb-wizard-status{margin:.2rem 0 .45rem;color:#8a7651;font-size:.7rem;font-weight:950;text-transform:uppercase;letter-spacing:.05em}

.tb-auth-wrap{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(circle at 18% 12%,rgba(201,166,70,.18),transparent 30%),radial-gradient(circle at 80% 18%,rgba(255,249,234,.12),transparent 28%),linear-gradient(135deg,#102a25 0%,#1c3832 48%,#274b43 100%)}
.tb-auth-column{width:min(460px,100%);text-align:center}
.tb-login-logo{width:220px;max-width:75%;height:auto;margin:0 auto 2rem;filter:drop-shadow(0 12px 28px rgba(0,0,0,.18))}
.tb-auth{width:100%;border:1px solid rgba(232,220,166,.62);border-radius:24px;background:rgba(255,249,234,.97);padding:1.75rem;box-shadow:0 26px 70px rgba(0,0,0,.26);text-align:left}
.tb-auth-logo{display:flex;align-items:center;gap:14px;margin-bottom:1.5rem}
.tb-auth-logo img{width:64px;height:64px;border-radius:17px}
.tb-auth-logo strong{letter-spacing:.13em;font-size:.76rem}.tb-auth-logo span{color:var(--muted);font-size:.76rem;font-weight:800}
.tb-auth h1{margin:0 0 .5rem;color:#1c3832;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.7rem,4vw,2.25rem);line-height:1.08;letter-spacing:-.03em}
.tb-auth>p{margin:.15rem 0 1.2rem;color:#64736f;font-size:1rem;line-height:1.5}
.tb-auth label{display:block;margin:.9rem 0 .35rem;color:#1c3832;font-size:.9rem;font-weight:800}
.tb-auth input{width:100%;min-height:46px;border:1px solid rgba(28,56,50,.22);border-radius:12px;padding:.72rem .86rem;background:#fff;outline:none}.tb-auth input:focus{border-color:#c9a646;box-shadow:0 0 0 4px rgba(201,166,70,.18)}
.tb-primary{width:100%;min-height:48px;margin-top:1.15rem;border:0;border-radius:999px;background:linear-gradient(135deg,#d7b65a,#b8902f);color:#1f241f;padding:.82rem 1.05rem;font-weight:900;box-shadow:0 12px 28px rgba(0,0,0,.16);cursor:pointer}
.tb-forgot{display:inline-block;margin:.85rem 0 0;color:#2f5a50!important;font-size:.92rem;font-weight:800;text-decoration:underline}
.tb-message:not(:empty){margin-top:1rem;border:1px solid #f0c3bb;border-radius:14px;background:#fff0ed;color:#b94a48;padding:.78rem .9rem;font-size:.92rem;line-height:1.4}
.tb-auth-foot{text-align:center;margin-top:1.35rem;color:rgba(255,249,234,.72);font-size:.86rem}.tb-auth-foot a{color:#fff9ea;font-weight:800}
.tb-loading{min-height:100vh;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:900}
.tb-load-error{width:min(430px,calc(100% - 2rem));padding:1.4rem;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(255,255,255,.1);text-align:center}.tb-load-error strong,.tb-load-error span{display:block}.tb-load-error strong{font-size:1.2rem}.tb-load-error span{margin:.55rem 0 1rem;color:rgba(255,255,255,.78);font-size:.85rem;line-height:1.5}.tb-load-error a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border-radius:999px;background:#d4a006;color:#173b34;padding:.6rem 1rem;text-decoration:none;font-size:.78rem;font-weight:950}

@media(max-width:760px){
  .tb-top{height:auto;min-height:74px;padding:.62rem .75rem;gap:.55rem;align-items:center}
  .tb-brand img{height:38px;max-width:138px}
  .tb-top-actions{display:grid;grid-template-columns:auto auto;gap:6px;min-width:0}
  .tb-signed-in,.tb-signout{display:none}
  .tb-return{grid-column:1/-1;grid-row:2;justify-content:center;min-height:38px;padding:.48rem .7rem;border-color:rgba(216,199,155,.62);background:rgba(255,255,255,.12);font-size:.68rem}
  .tb-return #return-label{max-width:190px;overflow:hidden;text-overflow:ellipsis}
  .tb-avatar{display:none}
  .tb-language{grid-column:2;grid-row:1;justify-self:end;padding:.44rem .62rem;font-size:.65rem}
  .tb-hero{padding:1.45rem 1rem;grid-template-columns:1fr}
  .tb-hero h1{font-size:1.85rem}
  .tb-hero p{font-size:.9rem}
  .tb-count{display:none}
  .tb-panel{width:calc(100% - 1rem);padding:1rem 0 2.5rem}
  .tb-dashboard-install{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;width:calc(100% - 1rem);margin:.65rem auto;padding:1rem .9rem .9rem;border-radius:18px;box-shadow:0 12px 28px rgba(39,70,64,.14)}.tb-dashboard-install-icon{width:44px;height:44px;border-radius:14px}.tb-dashboard-install strong{padding-right:1.2rem;font-size:.92rem}.tb-dashboard-install small{font-size:.72rem}.tb-dashboard-install .tb-dashboard-install-action{grid-column:1/-1;width:100%;min-height:48px;font-size:.82rem}
  .tb-dashboard-tabs{position:sticky;top:.45rem;z-index:20;border-radius:16px;box-shadow:0 10px 24px rgba(39,70,64,.12)}.tb-dashboard-tabs button{min-height:46px;font-size:.76rem}
  .tb-toolbar{grid-template-columns:1fr}
  .tb-result-count{padding-left:.2rem}
  .tb-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}
  .tb-filter::-webkit-scrollbar{display:none}
  .tb-filter button{flex:0 0 auto}
  .tb-grid{grid-template-columns:1fr;gap:.7rem}
  .tb-favourites-grid{grid-template-columns:1fr;gap:.65rem}.tb-favourite-card{grid-template-columns:auto minmax(0,1fr);min-height:0;border-radius:17px;padding:.9rem}.tb-favourite-open{grid-column:2;margin-top:.2rem}
  .tb-pocket{display:grid;grid-template-columns:auto 1fr;padding:.9rem}.tb-pocket button{grid-column:1/-1;width:100%}
  .tb-card{min-height:0;border-radius:18px;padding:.9rem;display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-areas:"icon title" "icon desc" ". meta";gap:.28rem .7rem}
  .tb-card-top{grid-area:icon}
  .tb-card h2{grid-area:title;position:static;font-size:15px;line-height:1.18}
  .tb-card p{grid-area:desc;position:static;margin:0;font-size:12px;line-height:1.4;-webkit-line-clamp:3}
  .tb-meta{grid-area:meta;position:static;margin-top:.42rem;font-size:9.8px}
  .tb-auth{padding:1.5rem}
  .tb-install-card{padding:1.35rem}.tb-install-card h2{font-size:1.7rem}.tb-install-icon{width:48px;height:48px}
}

/* Phones in landscape and mobile app/standalone windows can be wider than
   760px. Detect their touch input as well as their viewport width. */
@media (hover:none) and (pointer:coarse){
  .tb-dashboard-install{display:grid;width:calc(100% - 1rem);margin:.65rem auto}
}
