﻿*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

:root{
  --ink:#0A0A0B;--ink2:#141416;--ink3:#1C1C1E;--ink4:#262628;
  --gold:#D4A855;--gold2:#E8C47E;
  --gold-dim:rgba(212,168,85,.08);--gold-line:rgba(212,168,85,.2);
  --white:#FAFAF8;--white2:#C4C4C0;--white3:#858583;
  --border:rgba(250,250,248,.08);--border2:rgba(250,250,248,.12);
  --serif:'Cormorant Garamond','Noto Serif TC',serif;
  --sans:'Inter','Noto Sans TC',sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --tc:'Noto Sans TC','Inter',sans-serif;
}

body{background:var(--ink);color:var(--white);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh}

/* ── Top bar ── */
.top-bar{
  position:fixed;top:0;left:0;right:0;z-index:300;height:64px;
  background:rgba(10,10,11,.92);backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 32px;gap:24px;
  min-width:0;
}
.top-bar-back{
  display:flex;align-items:center;gap:8px;
  color:var(--white2);text-decoration:none;font-family:var(--sans);
  font-size:13px;font-weight:500;transition:color .2s;flex-shrink:0;
}
.top-bar-back:hover{color:var(--gold)}
.icon-14{width:14px;height:14px;display:inline-block}
.icon-16{width:16px;height:16px;display:inline-block}
.icon-28{width:28px;height:28px;display:inline-block}

.top-bar-info{
  flex:1 1 auto;display:flex;align-items:center;gap:16px;min-width:0;
}
.top-bar-title{
  font-family:var(--serif);font-size:20px;font-weight:700;color:var(--white);
  letter-spacing:-0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.top-bar-badge{
  font-family:var(--mono);font-size:10px;font-weight:700;color:var(--ink);
  background:var(--gold);padding:4px 10px;letter-spacing:1px;flex-shrink:0;
}

.top-bar-sep{width:1px;height:28px;background:var(--border2);flex-shrink:0}

.top-bar-features{
  display:flex;gap:8px;flex:0 1 min(48vw,860px);min-width:0;margin-left:auto;overflow:hidden;justify-content:flex-end;
}
.top-bar-chip{
  font-family:var(--mono);font-size:10px;font-weight:600;color:var(--white3);
  background:var(--ink4);border:1px solid var(--border);padding:4px 10px;
  letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;
}

/* ── Device bar ── */
.device-bar{
  position:fixed;top:64px;left:0;right:0;z-index:299;height:48px;
  background:var(--ink2);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;gap:4px;
}
.device-btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  height:36px;padding:0 16px;border:1px solid var(--border);
  background:transparent;color:var(--white3);font-family:var(--mono);
  font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;
  transition:all .2s;
}
.device-btn.active{border-color:var(--gold-line);color:var(--gold);background:var(--gold-dim)}
.device-btn:hover:not(.active){border-color:var(--border2);color:var(--white2)}

.device-sep{width:1px;height:24px;background:var(--border);margin:0 12px}

.device-bar-actions{display:flex;gap:8px;position:absolute;right:32px}
.action-btn{
  display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;
  font-family:var(--sans);font-size:12px;font-weight:600;text-decoration:none;
  letter-spacing:.5px;transition:all .2s;cursor:pointer;
}
.action-btn-gold{background:var(--gold);color:var(--ink);border:none}
.action-btn-gold:hover{background:var(--gold2);transform:translateY(-1px)}
.action-btn-ghost{background:transparent;color:var(--white2);border:1px solid var(--border2)}
.action-btn-ghost:hover{border-color:var(--gold-line);color:var(--gold)}

/* ── Preview frame ── */
.preview-area{
  flex:1;padding-top:112px;display:flex;align-items:center;justify-content:center;
  background:var(--ink3);position:relative;overflow:hidden;
}
.preview-area::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(250,250,248,.03) 1px,transparent 1px);
  background-size:20px 20px;pointer-events:none;
}

.preview-wrapper{
  position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);
  box-shadow:0 16px 64px rgba(0,0,0,.6);border:1px solid var(--border2);
  background:var(--white);overflow:hidden;
}
.preview-wrapper.desktop{width:90%;max-width:1400px;height:calc(100vh - 160px)}
.preview-wrapper.tablet{width:768px;height:calc(100vh - 160px)}
.preview-wrapper.mobile{width:375px;height:calc(100vh - 160px)}

.preview-browser-bar{
  height:32px;background:var(--ink4);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 12px;gap:8px;flex-shrink:0;
}
.browser-dot{width:8px;height:8px;border-radius:50%;background:var(--ink)}
.browser-dot.r{background:#ff5f57}.browser-dot.y{background:#febc2e}.browser-dot.g{background:#28c840}
.browser-url{
  flex:1;height:20px;background:var(--ink3);border-radius:3px;margin:0 40px;
  display:flex;align-items:center;padding:0 10px;
  font-family:var(--mono);font-size:10px;color:var(--white3);letter-spacing:.5px;
}

.preview-iframe{
  width:100%;height:calc(100% - 32px);border:none;background:var(--white);
}

/* ── Local preview content (no iframe) ── */
.preview-content{
  width:100%;height:calc(100% - 32px);
  overflow:auto;background:var(--white);color:#0A0A0B;
}

/* ── No iframe fallback ── */
.preview-fallback{
  width:100%;height:calc(100% - 32px);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:24px;background:var(--ink2);
  padding:40px;text-align:center;
}
.fallback-icon{color:var(--gold);opacity:.5}
.fallback-title{font-family:var(--serif);font-size:28px;font-weight:700;color:var(--white);letter-spacing:-0.5px}
.fallback-desc{font-family:var(--tc);font-size:14px;color:var(--white3);line-height:1.7;max-width:400px}

/* ── Responsive ── */
@media(max-width:768px){
  .top-bar{padding:0 16px;gap:12px}
  .top-bar-features{display:none}
  .top-bar-sep{display:none}
  .device-bar{display:none}
  .preview-area{padding-top:64px}
  .preview-wrapper{width:100%!important;max-width:100%!important;height:calc(100vh - 64px)!important;border:none;box-shadow:none}
  .device-bar-actions{display:none}
}

@media(max-width:1280px){
  .top-bar{gap:16px;padding:0 20px}
  .top-bar-features{flex-basis:min(42vw,620px)}
  .top-bar-chip{max-width:120px}
}

/* ── Generic template preview ── */
.tpl-generic{font-family:var(--sans);color:#0A0A0B;background:#fff;min-height:100%}
.tplg-hero{padding:48px 56px 28px;border-bottom:1px solid rgba(10,10,11,.08)}
.tplg-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.tplg-badge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:4px 10px;border:1px solid rgba(10,10,11,.12);background:#fff}
.tplg-status{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:1px;color:rgba(10,10,11,.55)}
.tplg-title{font-family:var(--serif);font-size:44px;line-height:1.08;letter-spacing:-.4px;margin-bottom:12px}
.tplg-desc{font-family:var(--tc);font-size:15px;line-height:1.85;max-width:78ch;color:rgba(10,10,11,.72)}
.tplg-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.tplg-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;text-decoration:none;border:1px solid rgba(10,10,11,.12);font-weight:650;font-size:13px;letter-spacing:.2px}
.tplg-btn-primary{background:#0A0A0B;color:#fff;border-color:#0A0A0B}
.tplg-btn-primary:hover{opacity:.92}
.tplg-btn-ghost{background:transparent;color:#0A0A0B}
.tplg-btn-ghost:hover{background:rgba(10,10,11,.04)}

.tplg-main{padding:28px 56px 64px}
.tplg-cover{border:1px solid rgba(10,10,11,.10);background:rgba(10,10,11,.02);overflow:hidden}
.tplg-cover-img{width:100%;height:auto;display:block}
.tplg-cover-placeholder{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px;text-align:center}
.tplg-cover-ph-title{font-family:var(--serif);font-size:26px;letter-spacing:-.2px}
.tplg-cover-ph-desc{font-family:var(--mono);font-size:12px;letter-spacing:1px;color:rgba(10,10,11,.55)}

.tplg-section{margin-top:28px}
.tplg-h2{font-family:var(--serif);font-size:24px;letter-spacing:-.2px;margin-bottom:10px}
.tplg-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding-left:18px}
.tplg-feature{font-family:var(--tc);font-size:14px;line-height:1.7;color:rgba(10,10,11,.78)}
.tplg-empty{font-family:var(--tc);font-size:14px;line-height:1.7;color:rgba(10,10,11,.6)}
.tplg-p{font-family:var(--tc);font-size:14px;line-height:1.85;color:rgba(10,10,11,.72);max-width:85ch}

.tpl-variant{min-height:100%}
.tpl-variant-ai-saas .tplg-badge{border-color:rgba(212,168,85,.35)}
.tpl-variant-ai-saas .tplg-btn-primary{background:var(--gold);color:#0A0A0B;border-color:var(--gold)}
.tpl-variant-corporate-dark .tplg-hero{background:linear-gradient(180deg, rgba(10,10,11,.04), rgba(10,10,11,0))}

@media(max-width:900px){
  .tplg-hero{padding:36px 22px 20px}
  .tplg-main{padding:22px 22px 48px}
  .tplg-title{font-size:34px}
  .tplg-features{grid-template-columns:1fr}
}
