@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --bg:#FFFFFF;
  --panel:#FDF8F2;
  --panel-2:#FFEDDC;
  --line:#EBDFCF;
  --text:#241A0F;
  --muted:#8C7C68;
  --signal:#FF6A1A;
  --signal-dim:#FFD3AC;
  --copper:#C1440E;
  --copper-dim:#F3D8C2;
  --danger:#D93C3C;
  --radius:2px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter', sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
::selection{background:var(--signal); color:#FFFFFF;}

.mono{font-family:'JetBrains Mono', monospace;}
.display{font-family:'Space Grotesk', sans-serif;}

a{color:inherit; text-decoration:none;}

/* background circuit grid */
.grid-bg{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,106,26,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,106,26,0.05) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 90%);
}

.wrap{max-width:1180px; margin:0 auto; padding:0 28px; position:relative; z-index:1;}

/* ===== MATERIAL REQUEST FORM ===== */
.request-card{
  max-width:640px; border:1px solid var(--line); border-radius:4px; padding:32px;
  background:var(--panel); margin-top:32px;
}
.request-card select{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:11px 14px; border-radius:3px; font-size:13.5px; font-family:'Inter',sans-serif;
}

/* Same select styling applied everywhere a .form-field wraps a <select>, so
   dropdowns look identical across every form on the site (not just inside
   .request-card). */
.form-field select{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:11px 14px; border-radius:3px; font-size:13.5px; font-family:'Inter',sans-serif;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%238C7C68' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:11px;
}

/* ===== ADMIN ===== */
.drop-zone{
  margin-top:20px; border:2px dashed var(--signal-dim); border-radius:6px; padding:44px 24px;
  text-align:center; background:var(--panel-2); cursor:pointer; transition:border-color .2s ease, background .2s ease;
}
.drop-zone.dragover{border-color:var(--signal); background:var(--copper-dim);}
.drop-zone .dz-icon{font-family:'JetBrains Mono',monospace; font-size:26px; color:var(--signal); margin-bottom:10px;}
.drop-zone .dz-title{font-weight:600; font-size:15px;}
.drop-zone .dz-sub{font-size:12.5px; color:var(--muted); margin-top:6px;}
.drop-zone input[type=file]{display:none;}

.admin-gate{
  max-width:480px; margin:0 auto; text-align:center; border:1px solid var(--line);
  border-radius:4px; padding:44px 30px; background:var(--panel);
}
.admin-table-wrap{margin-top:20px; border:1px solid var(--line); border-radius:4px; overflow-x:auto;}
table.admin-table{width:100%; border-collapse:collapse; font-size:13px; min-width:720px;}
table.admin-table th{
  font-family:'JetBrains Mono',monospace; text-align:left; padding:11px 14px; font-size:10.5px;
  color:var(--copper); letter-spacing:1px; background:var(--panel); border-bottom:1px solid var(--line);
}
table.admin-table td{padding:10px 14px; border-bottom:1px solid var(--line); color:#5A4D3C; vertical-align:middle;}
table.admin-table tr:hover td{background:var(--panel-2);}
table.admin-table td:first-child{font-family:'JetBrains Mono',monospace; color:var(--text); font-weight:600;}
.admin-del{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--danger); border:1px solid #F3C9C0;
  padding:5px 10px; border-radius:3px; background:transparent; cursor:pointer;
}
.admin-del:hover{background:var(--danger); color:#FFFFFF; border-color:var(--danger);}
.upload-log{
  margin-top:14px; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--muted);
  border:1px solid var(--line); border-radius:4px; padding:12px 14px; background:var(--panel); display:none;
  max-height:160px; overflow-y:auto;
}

/* ===== CIRCUIT BANNER (top-of-page PCB illustration) ===== */
.circuit-banner{width:100%; line-height:0; border-bottom:1px solid var(--line); background:var(--panel); overflow:hidden;}
.circuit-banner svg{width:100%; height:130px; display:block;}
@media(max-width:720px){.circuit-banner svg{height:86px;}}

/* ===== AUTH (login/register) ===== */
.auth-wrap{max-width:420px; margin:0 auto;}
.auth-card{border:1px solid var(--line); border-radius:4px; padding:36px; background:var(--panel);}
.auth-foot{display:flex; justify-content:space-between; margin-top:18px; font-size:12.5px; color:var(--muted);}
.auth-foot a:hover{color:var(--signal);}
.auth-demo{
  margin-top:22px; padding:14px 16px; border:1px dashed var(--signal-dim); border-radius:4px;
  font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--copper); background:var(--panel-2);
}
#login-link, #register-link{cursor:pointer;}

/* ===== NAV ===== */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-top{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding:14px 28px; max-width:1180px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand-mark{
  width:34px; height:34px; border:1.5px solid var(--signal);
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; position:relative;
}
.brand-mark::after{
  content:""; width:8px; height:8px; background:var(--signal);
  border-radius:50%; box-shadow:0 0 8px var(--signal);
}
.brand-text{display:flex; flex-direction:column; line-height:1.15;}
.brand-text .ko{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:16px; letter-spacing:0.3px;}
.brand-text .en{font-family:'JetBrains Mono',monospace; font-size:9.5px; color:var(--muted); letter-spacing:2px;}

.util-links{display:flex; gap:18px; font-size:12px; color:var(--muted);}
.util-links a:hover{color:var(--signal);}

/* Used only by mail-login.html / mail-inbox.html — these pages have no
   nav-list, so their header controls must stay visible on mobile (unlike
   the main site's .util-links, which is hidden there since a full nav
   menu already covers navigation). */
.mail-util-links{display:flex; gap:16px; font-size:12px; color:var(--muted); flex-wrap:wrap; justify-content:flex-end; align-items:center;}
.mail-util-links a:hover{color:var(--signal);}
@media(max-width:480px){
  .mail-util-links{gap:10px; font-size:11px;}
}

nav.main-nav{border-top:1px solid var(--line);}
.nav-list{
  display:flex; max-width:1180px; margin:0 auto; padding:0 28px;
}
.nav-list a{
  padding:15px 22px; font-size:13.5px; font-weight:600;
  color:var(--muted); position:relative; letter-spacing:0.3px;
}
.nav-list a:hover{color:var(--text);}
.nav-list a::after{
  content:""; position:absolute; left:22px; right:22px; bottom:0; height:2px;
  background:var(--signal); transform:scaleX(0); transition:transform .25s ease;
}
.nav-list a:hover::after{transform:scaleX(1);}
.nav-list a.active{color:var(--signal);}
.nav-list a.active::after{transform:scaleX(1);}

@media(max-width:720px){
  .util-links{display:none;}
  .nav-list{overflow-x:auto;}
  .nav-list a{padding:13px 14px; white-space:nowrap;}
}

/* ===== PAGE HEADER (sub pages) ===== */
.page-header{padding:56px 0 40px; border-bottom:1px solid var(--line);}
.breadcrumb{
  font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--muted); margin-bottom:16px;
}
.breadcrumb a:hover{color:var(--signal);}
.page-header h1{
  font-family:'Space Grotesk',sans-serif; font-weight:700;
  font-size:clamp(28px,4vw,42px); letter-spacing:-0.4px;
}
.page-header p{color:var(--muted); margin-top:12px; max-width:600px; font-size:15px;}

/* ===== HERO (home only) ===== */
.hero{
  position:relative; padding:100px 0 80px; border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--signal);
  border:1px solid var(--signal-dim); padding:5px 12px; border-radius:20px;
  margin-bottom:28px;
}
.hero-eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--signal); box-shadow:0 0 6px var(--signal); animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}

.hero h1{
  font-family:'Space Grotesk',sans-serif; font-weight:700;
  font-size:clamp(34px, 5.2vw, 62px); line-height:1.12; letter-spacing:-0.5px;
  max-width:820px;
}
.hero h1 .accent{color:var(--signal);}
.hero p.lead{
  margin-top:22px; max-width:560px; color:var(--muted); font-size:16px;
}
.hero-cta{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 22px; font-size:13.5px; font-weight:600; border-radius:var(--radius);
  border:1px solid transparent; cursor:pointer; transition:all .2s ease;
}
.btn-primary{background:var(--signal); color:#FFFFFF;}
.btn-primary:hover{background:#E4590A;}
.btn-ghost{border-color:var(--line); color:var(--text);}
.btn-ghost:hover{border-color:var(--signal); color:var(--signal);}

/* waveform signature */
.waveform{
  margin-top:64px; border:1px solid var(--line); background:var(--panel);
  border-radius:4px; padding:24px 24px 18px;
}
.waveform-label{
  display:flex; justify-content:space-between; font-family:'JetBrains Mono',monospace;
  font-size:11px; color:var(--muted); margin-bottom:10px; letter-spacing:0.5px;
}
.waveform-label span:first-child{color:var(--danger);}
.waveform-label span:last-child{color:var(--signal);}
.waveform svg{width:100%; height:auto; display:block;}

/* ===== SECTION HEADERS ===== */
.section{padding:88px 0; border-bottom:1px solid var(--line); position:relative;}
.section:last-of-type{border-bottom:none;}
.section-tag{
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--copper);
  letter-spacing:2px; text-transform:uppercase; display:block; margin-bottom:14px;
}
.section-title{
  font-family:'Space Grotesk',sans-serif; font-weight:700;
  font-size:clamp(26px,3.4vw,38px); letter-spacing:-0.3px; max-width:640px;
}
.section-desc{color:var(--muted); margin-top:14px; max-width:600px; font-size:15px;}

/* ===== HOME QUICK LINKS ===== */
.quick-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px;}
.quick-card{background:var(--bg); padding:26px 20px; transition:background .2s ease;}
.quick-card:hover{background:var(--panel-2);}
.quick-card .qi{font-family:'JetBrains Mono',monospace; color:var(--signal); font-size:18px; margin-bottom:14px;}
.quick-card h3{font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600; margin-bottom:6px;}
.quick-card p{font-size:12px; color:var(--muted); line-height:1.5;}
@media(max-width:920px){.quick-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.quick-grid{grid-template-columns:1fr;}}

/* ===== ABOUT ===== */
.about-grid{
  display:grid; grid-template-columns:1fr 1.15fr; gap:56px; margin-top:52px; align-items:start;
}
.about-visual{
  border:1px solid var(--line); background:var(--panel); border-radius:4px; padding:28px;
  position:sticky; top:110px;
}
.spec-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px;}
.spec-row:last-child{border-bottom:none;}
.spec-row .k{color:var(--muted); font-family:'JetBrains Mono',monospace; font-size:11.5px;}
.spec-row .v{font-weight:600;}

.about-body p{color:#5A4D3C; margin-bottom:18px; font-size:15px;}
.about-body strong{color:var(--signal); font-weight:600;}
.badge-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:24px;}
.badge{
  font-family:'JetBrains Mono',monospace; font-size:11px; padding:6px 12px;
  border:1px solid var(--line); border-radius:20px; color:var(--muted);
}

@media(max-width:860px){
  .about-grid{grid-template-columns:1fr;}
  .about-visual{position:static;}
}

/* ===== BUSINESS DIVISIONS ===== */
.division-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:52px;}
.division-card{
  border:1px solid var(--line); padding:26px; border-radius:4px; position:relative;
  background:linear-gradient(160deg, var(--panel), var(--bg));
}
.division-card .num{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--signal);
  border:1px solid var(--signal-dim); width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.division-card h3{font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; margin-bottom:8px;}
.division-card p{font-size:13px; color:var(--muted);}
@media(max-width:860px){.division-grid{grid-template-columns:1fr;}}

/* ===== MAP / LOCATION ===== */
.location-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px;}
.location-grid > div{background:var(--bg); padding:32px;}
.map-box{
  height:280px; border:1px solid var(--line); border-radius:4px; position:relative; overflow:hidden;
  background:var(--panel-2);
}
.map-box iframe{display:block;}
.map-actions{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap;}
.map-actions .btn{padding:10px 16px; font-size:12.5px;}

@media(max-width:860px){.location-grid{grid-template-columns:1fr;}}

/* ===== MODEL NAMING DIAGRAM ===== */
.model-diagram{
  margin-top:24px; border:1px solid var(--line); background:var(--panel); border-radius:4px; padding:36px 28px;
  overflow-x:auto;
}
.model-string{
  display:flex; font-family:'JetBrains Mono',monospace; font-weight:600; font-size:clamp(18px,3vw,30px);
  white-space:nowrap; justify-content:center; gap:2px; margin-bottom:34px;
}
.model-string span{padding:6px 4px; border-bottom:3px solid var(--line); transition:border-color .2s ease;}
.model-string span.h-phase{border-color:var(--signal);}
.model-string span.h-voltage{border-color:var(--copper);}
.model-string span.h-current{border-color:#B8860B;}
.model-string span.h-stage{border-color:var(--danger);}
.model-legend{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.legend-item{border-left:2px solid; padding-left:12px;}
.legend-item.phase{border-color:var(--signal);}
.legend-item.voltage{border-color:var(--copper);}
.legend-item.current{border-color:#B8860B;}
.legend-item.stage{border-color:var(--danger);}
.legend-item .lk{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:1px;}
.legend-item .lv{font-size:12.5px; margin-top:6px; color:#5A4D3C; line-height:1.6;}
@media(max-width:720px){.model-legend{grid-template-columns:1fr 1fr;}}

/* ===== TECH ACCORDION ===== */
.accordion{margin-top:52px; border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.acc-item{border-bottom:1px solid var(--line);}
.acc-item:last-child{border-bottom:none;}
.acc-head{
  display:flex; justify-content:space-between; align-items:center; padding:20px 24px;
  cursor:pointer; background:var(--panel); font-weight:600; font-size:14.5px;
}
.acc-head:hover{background:var(--panel-2);}
.acc-head .plus{font-family:'JetBrains Mono',monospace; color:var(--signal); font-size:16px; transition:transform .25s ease;}
.acc-item.open .plus{transform:rotate(45deg);}
.acc-body{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.acc-body-inner{padding:6px 24px 24px; color:#5A4D3C; font-size:13.5px;}
.acc-body-inner p{margin-bottom:10px;}
.acc-body-inner strong{color:var(--text);}

/* ===== SPEC TABLE ===== */
.spec-table-wrap{margin-top:52px; border:1px solid var(--line); border-radius:4px; overflow-x:auto;}
table.spec-table{width:100%; border-collapse:collapse; font-size:12.5px; min-width:680px;}
table.spec-table th{
  font-family:'JetBrains Mono',monospace; text-align:left; padding:12px 16px; font-size:10.5px;
  color:var(--copper); letter-spacing:1px; background:var(--panel); border-bottom:1px solid var(--line);
}
table.spec-table td{padding:11px 16px; border-bottom:1px solid var(--line); color:#5A4D3C;}
table.spec-table tr:last-child td{border-bottom:none;}
table.spec-table tr:hover td{background:var(--panel-2);}
table.spec-table td:first-child{font-family:'JetBrains Mono',monospace; color:var(--text); font-weight:600;}

/* ===== PRODUCTS ===== */
.cat-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:52px;
}
.cat-card{
  background:var(--bg); padding:30px 26px; transition:background .2s ease;
}
.cat-card:hover{background:var(--panel-2);}
.cat-card.linkable{cursor:pointer;}
.cat-index{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--copper); letter-spacing:1px;}
.cat-name{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:19px; margin-top:10px;}
.cat-sub{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); margin-top:2px;}
.cat-list{margin-top:16px; font-size:13px; color:#5A4D3C;}
.cat-list li{list-style:none; padding:5px 0 5px 14px; position:relative; border-top:1px dashed var(--line);}
.cat-list li:first-child{border-top:none;}
.cat-list li::before{content:"›"; position:absolute; left:0; color:var(--signal);}

@media(max-width:860px){.cat-grid{grid-template-columns:1fr;}}

/* ===== BEST PRODUCTS ===== */
.product-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px;
}
.product-card{
  border:1px solid var(--line); background:var(--panel); border-radius:4px; overflow:hidden;
  transition:transform .2s ease, border-color .2s ease;
}
.product-card:hover{transform:translateY(-4px); border-color:var(--signal-dim);}
.product-img{
  height:150px; background:
    repeating-linear-gradient(45deg, var(--panel-2) 0 2px, transparent 2px 14px), var(--panel-2);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.product-img .chip{
  width:64px; height:44px; background:linear-gradient(135deg,#E4D8C7,#C9B79E);
  border:1px solid #B8A588; border-radius:3px; position:relative;
}
.product-img .chip::before, .product-img .chip::after{
  content:""; position:absolute; width:10px; height:2px; background:var(--copper); top:50%;
}
.product-img .chip::before{left:-10px;}
.product-img .chip::after{right:-10px;}
.tag-row{position:absolute; top:10px; left:10px; display:flex; gap:6px;}
.tag{font-family:'JetBrains Mono',monospace; font-size:9.5px; padding:3px 7px; border-radius:2px; font-weight:600;}
.tag-hit{background:var(--copper); color:#FFFFFF;}
.tag-pop{background:var(--signal); color:#FFFFFF;}
.product-body{padding:16px 16px 20px;}
.product-name{font-family:'JetBrains Mono',monospace; font-weight:600; font-size:14px;}
.product-spec{font-size:12px; color:var(--muted); margin-top:6px;}
.product-links{display:flex; gap:8px; margin-top:12px;}
.file-btn{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; padding:5px 9px; border:1px solid var(--line);
  border-radius:3px; color:var(--muted); transition:all .15s ease;
}
.file-btn:hover{border-color:var(--signal); color:var(--signal);}

@media(max-width:860px){.product-strip{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.product-strip{grid-template-columns:1fr;}}

/* ===== COMPACT PRODUCT MINI-GRID ===== */
.category-group{margin-top:40px;}
.category-group:first-child{margin-top:0;}
.category-group-header{
  font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:16px;
  padding-bottom:10px; margin-bottom:16px; border-bottom:1px solid var(--line);
}
.category-group-header .count{font-family:'JetBrains Mono',monospace; font-weight:400; font-size:12px; color:var(--muted);}

.product-mini-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:12px;
}

/* Scrollable model-name list — used for "전체 제품" so a 280-item category
   doesn't turn the whole page into one long scroll. */
.product-name-list{
  max-height:360px; overflow-y:auto; border:1px solid var(--line); border-radius:6px;
  background:var(--bg);
}
.product-name-row{
  padding:11px 16px; border-bottom:1px solid var(--line); cursor:pointer;
  font-family:'JetBrains Mono',monospace; font-size:12.5px;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  transition:background .12s ease, color .12s ease;
}
.product-name-row:last-child{border-bottom:none;}
.product-name-row:hover{background:var(--panel-2); color:var(--signal);}
.product-name-row-spec{color:var(--muted); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.product-name-row:hover .product-name-row-spec{color:var(--copper);}
.product-load-more{cursor:pointer; background:var(--panel);}
.product-load-more:hover{background:var(--panel-2);}
.product-mini{cursor:pointer; text-align:center;}
.product-mini-thumb{
  position:relative; width:100%; aspect-ratio:1/1; border:1px solid var(--line); border-radius:6px;
  overflow:hidden; background:var(--panel-2); display:flex; align-items:center; justify-content:center;
  transition:border-color .15s ease, transform .15s ease;
}
.product-mini:hover .product-mini-thumb{border-color:var(--signal); transform:translateY(-2px);}
.product-mini-thumb img{width:100%; height:100%; object-fit:cover;}
.product-mini-thumb .chip{width:60%; height:40%;}
.mini-file-icon{
  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:4px;
}
.mini-file-icon::before{content:"▢"; font-size:20px; color:var(--copper);}
.product-mini-name{
  margin-top:6px; font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.mini-badge{
  position:absolute; top:4px; left:4px; background:var(--copper); color:#FFFFFF;
  font-family:'JetBrains Mono',monospace; font-size:8.5px; font-weight:600; padding:2px 5px; border-radius:2px;
}

/* ===== PRODUCT MODAL ===== */
.product-modal-overlay{
  position:fixed; inset:0; background:rgba(36,26,15,0.55); z-index:1000;
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.product-modal{
  background:var(--bg); border-radius:6px; max-width:640px; width:100%; max-height:90vh; overflow-y:auto;
  position:relative; box-shadow:0 20px 60px rgba(0,0,0,0.3); display:flex; flex-direction:column;
}
.product-modal-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%;
  border:1px solid var(--line); background:var(--panel); color:var(--text); font-size:18px; line-height:1;
  cursor:pointer; z-index:1;
}
.product-modal-close:hover{border-color:var(--signal); color:var(--signal);}
.product-modal-gallery{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:2px; background:var(--line);
}
.pm-gallery-shot{aspect-ratio:1/1; background:var(--panel-2); overflow:hidden; display:block; position:relative;}
.pm-gallery-shot img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .2s ease;}
a.pm-gallery-shot:hover img{transform:scale(1.05);}
.pm-gallery-empty{
  grid-column:1 / -1; display:flex; align-items:center; justify-content:center; aspect-ratio:3/1;
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--muted);
}
.product-modal-body{padding:24px;}
.product-modal-name{font-family:'JetBrains Mono',monospace; font-weight:600; font-size:18px;}
.product-modal-spec{color:var(--muted); font-size:13.5px; margin-top:8px;}
.product-modal-tags{display:flex; gap:8px; margin-top:14px;}
.product-modal-electrical{margin-top:18px;}
.pm-electrical-title{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--copper); letter-spacing:1px;
  text-transform:uppercase; margin-bottom:8px;
}
table.pm-electrical-table{width:100%; border-collapse:collapse; font-size:12.5px;}
table.pm-electrical-table td{padding:8px 0; border-bottom:1px solid var(--line); color:#5A4D3C;}
table.pm-electrical-table td:first-child{color:var(--muted); width:60%;}
.product-modal-links{display:flex; gap:10px; margin-top:20px; flex-wrap:wrap;}

@media(max-width:520px){
  .product-mini-grid{grid-template-columns:repeat(auto-fill, minmax(80px, 1fr));}
  .product-modal-gallery{grid-template-columns:repeat(3, 1fr);}
}


/* ===== NOTICE / DATAROOM two-col ===== */
.split{display:grid; grid-template-columns:1.3fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px;}
.split > div{background:var(--bg); padding:32px;}
.notice-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 0; border-bottom:1px solid var(--line); font-size:13.5px;
}
.notice-row:last-child{border-bottom:none;}
.notice-row a{display:flex; justify-content:space-between; align-items:center; width:100%;}
.notice-row a:hover .notice-title span:last-child{color:var(--signal);}
.notice-title{display:flex; align-items:center; gap:10px;}
.notice-badge{
  font-family:'JetBrains Mono',monospace; font-size:9.5px; color:var(--danger);
  border:1px solid #F3C9C0; padding:2px 7px; border-radius:2px;
}
.notice-date{font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--muted);}

.data-list a{
  display:flex; justify-content:space-between; align-items:center;
  padding:13px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:#5A4D3C;
}
.data-list a:last-child{border-bottom:none;}
.data-list a:hover{color:var(--signal);}
.data-list .arrow{font-family:'JetBrains Mono',monospace; color:var(--muted);}

@media(max-width:860px){.split{grid-template-columns:1fr;}}

/* ===== BOARD (게시판) ===== */
.board{margin-top:52px; border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.board-row{
  display:grid; grid-template-columns:70px 1fr 110px 90px; gap:12px; align-items:center;
  padding:15px 20px; border-bottom:1px solid var(--line); font-size:13px;
}
.board-row.head{
  background:var(--panel); font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--copper);
  letter-spacing:1px;
}
.board-row:last-child{border-bottom:none;}
.board-row:not(.head):hover{background:var(--panel-2);}
.board-row .num{font-family:'JetBrains Mono',monospace; color:var(--muted); text-align:center;}
.board-row .ttl a:hover{color:var(--signal);}
.board-row .author, .board-row .date{color:var(--muted); font-size:12px;}
@media(max-width:640px){
  .board-row{grid-template-columns:40px 1fr 70px;}
  .board-row .date{display:none;}
}

/* file / download list */
.file-list{margin-top:52px; border:1px solid var(--line); border-radius:4px; overflow-y:auto; max-height:900px;}
.file-row{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:18px 22px; border-bottom:1px solid var(--line);
}
.file-row:last-child{border-bottom:none;}
.file-row:hover{background:var(--panel-2);}
.file-meta{display:flex; align-items:center; gap:14px; flex:1; min-width:0;}
.file-actions{display:flex; gap:6px; margin-left:auto; flex-shrink:0; flex-wrap:wrap; justify-content:flex-end;}
.file-row > .file-dl{margin-left:auto;}
@media(max-width:600px){
  .file-row{flex-wrap:wrap;}
  .file-actions{width:100%;}
}
.file-icon{
  width:38px; height:38px; border:1px solid var(--line); border-radius:4px;
  display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace;
  font-size:10px; color:var(--copper); flex-shrink:0;
}
.file-name{font-weight:600; font-size:14px;}
.file-sub{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); margin-top:3px;}
.file-dl{
  font-family:'JetBrains Mono',monospace; font-size:11.5px; padding:8px 14px; border:1px solid var(--signal-dim);
  color:var(--signal); border-radius:3px; white-space:nowrap; flex-shrink:0;
}
.file-dl:hover{background:var(--signal); color:#FFFFFF;}

/* model data table */
.data-table-wrap{margin-top:52px; border:1px solid var(--line); border-radius:4px; overflow-x:auto;}
table.data-table{width:100%; border-collapse:collapse; font-size:12.5px; min-width:760px;}
table.data-table th{
  font-family:'JetBrains Mono',monospace; text-align:left; padding:12px 16px; font-size:10.5px;
  color:var(--copper); letter-spacing:1px; background:var(--panel); border-bottom:1px solid var(--line);
}
table.data-table td{padding:11px 16px; border-bottom:1px solid var(--line); color:#5A4D3C;}
table.data-table tr:hover td{background:var(--panel-2);}
table.data-table td:first-child{font-family:'JetBrains Mono',monospace; color:var(--text); font-weight:600;}
table.data-table a.dl{color:var(--signal); font-family:'JetBrains Mono',monospace; font-size:11px;}
table.data-table a.dl:hover{text-decoration:underline;}

/* ===== CONTACT ===== */
.contact-section{padding:88px 0 0;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:52px;}
.contact-grid > div{background:var(--bg); padding:36px;}
.info-row{display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--line);}
.info-row:last-child{border-bottom:none;}
.info-icon{
  width:36px; height:36px; border:1px solid var(--signal-dim); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--signal); flex-shrink:0;
  font-family:'JetBrains Mono',monospace; font-size:13px;
}
.info-k{font-size:11.5px; color:var(--muted); font-family:'JetBrains Mono',monospace; letter-spacing:1px;}
.info-v{font-weight:600; margin-top:3px; font-size:15px;}

.form-field{margin-bottom:16px;}
.form-field label{display:block; font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); margin-bottom:6px; letter-spacing:1px;}
.form-field input, .form-field textarea{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:11px 14px; font-family:'Inter',sans-serif; font-size:13.5px; border-radius:3px;
}
.form-field input:focus, .form-field textarea:focus{outline:none; border-color:var(--signal);}
.form-row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}

@media(max-width:600px){
  .form-row2{grid-template-columns:1fr;}
}

@media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}

/* ===== FOOTER ===== */
footer{padding:40px 0; border-top:1px solid var(--line); margin-top:0;}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
  font-size:12px; color:var(--muted);
}
.footer-inner .mono{color:#A08D74;}
.footer-links{display:flex; gap:18px; flex-wrap:wrap;}
.footer-links a:hover{color:var(--signal);}

/* reveal animation */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .hero-eyebrow .dot{animation:none;}
}

/* ===== 자료 다운로드 안내 팝업 (assets/download-guard.js) =====
   사이트의 연락처 섹션(contact-grid)처럼 두 칸: 왼쪽 회원 안내 / 오른쪽 비회원 다운로드 */
.sj-dl-gate{
  position:fixed; inset:0; z-index:1100; display:none; align-items:center; justify-content:center;
  padding:24px; background:rgba(36,26,15,0.55); backdrop-filter:blur(2px);
}
.sj-dl-gate.open{display:flex; animation:sjDlFade .18s ease;}
@keyframes sjDlFade{from{opacity:0;} to{opacity:1;}}
.sj-dl-gate-box{
  position:relative; width:100%; max-width:900px; max-height:calc(100vh - 48px);
  display:grid; grid-template-columns:5fr 6fr; gap:1px; background:var(--line);
  border:1px solid var(--line); border-top:3px solid var(--signal); border-radius:4px;
  box-shadow:0 24px 70px rgba(36,26,15,0.28); overflow:hidden; text-align:left;
  animation:sjDlRise .22s ease;
}
@keyframes sjDlRise{from{transform:translateY(10px); opacity:.6;} to{transform:none; opacity:1;}}
.sj-dl-gate-close{
  position:absolute; top:10px; right:12px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:transparent; border:1px solid transparent; font-size:22px; line-height:1; color:var(--muted); cursor:pointer;
}
.sj-dl-gate-close:hover{border-color:var(--line); color:var(--text); background:var(--bg);}

.sj-dl-tag{
  display:block; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px;
  text-transform:uppercase; color:var(--copper); margin-bottom:14px;
}

/* 왼쪽: 회원 안내 */
.sj-dl-member{
  position:relative; padding:38px 34px 30px; display:flex; flex-direction:column;
  background:
    linear-gradient(rgba(255,106,26,0.06) 1px, transparent 1px) 0 0/24px 24px,
    linear-gradient(90deg, rgba(255,106,26,0.06) 1px, transparent 1px) 0 0/24px 24px,
    var(--panel);
}
.sj-dl-title{
  font-family:'Space Grotesk','Inter',sans-serif; font-weight:700; font-size:22px; line-height:1.4;
  letter-spacing:-0.3px; color:var(--text); word-break:keep-all;
}
.sj-dl-benefits{list-style:none; margin:22px 0 0; padding:0; border-top:1px solid var(--line);}
.sj-dl-benefits li{
  display:flex; gap:12px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--line);
  font-size:13px; color:#5A4D3C; word-break:keep-all;
}
.sj-dl-benefits li span{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--signal); flex-shrink:0;}
.sj-dl-member-actions{display:flex; gap:8px; margin-top:22px;}
.sj-dl-member-actions .btn{flex:1; justify-content:center; padding:12px 14px;}
.sj-dl-member-actions .btn-ghost{background:var(--bg);}
.sj-dl-file{
  margin-top:auto; padding-top:22px; display:flex; flex-direction:column; gap:4px;
}
.sj-dl-file-k{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:2px; color:var(--muted);}
.sj-dl-file-v{
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--copper); word-break:break-all;
  background:var(--bg); border:1px solid var(--line); border-left:2px solid var(--signal); border-radius:2px; padding:8px 10px;
}

/* 오른쪽: 비회원 다운로드 */
.sj-dl-guest{background:var(--bg); padding:38px 34px 28px; overflow-y:auto; max-height:calc(100vh - 52px);}
.sj-dl-steps{display:flex; list-style:none; margin:0 0 22px; padding:0; counter-reset:sjstep; border:1px solid var(--line); border-radius:3px; overflow:hidden;}
.sj-dl-steps li{
  flex:1; counter-increment:sjstep; padding:8px 6px; text-align:center; font-size:11.5px; color:var(--muted);
  border-right:1px solid var(--line); background:var(--bg); white-space:nowrap;
}
.sj-dl-steps li:last-child{border-right:none;}
.sj-dl-steps li::before{content:"0" counter(sjstep) " "; font-family:'JetBrains Mono',monospace; font-size:10.5px; margin-right:2px;}
.sj-dl-steps li.is-current{background:var(--signal); color:#FFFFFF; font-weight:600;}
.sj-dl-steps li.is-done{background:var(--panel-2); color:var(--copper);}
#sj-dl-guest-form .form-field, .sj-dl-code .form-field{margin-bottom:12px;}
.sj-dl-agree{
  display:flex; gap:10px; align-items:flex-start; margin-top:4px; padding:11px 12px; cursor:pointer;
  border:1px solid var(--line); border-radius:3px; background:var(--panel);
  font-size:11.5px; line-height:1.55; color:var(--muted); word-break:keep-all;
}
.sj-dl-agree b{display:block; color:var(--text); font-weight:600; font-size:12px; margin-bottom:2px;}
.sj-dl-agree input{width:16px; height:16px; margin-top:2px; accent-color:var(--signal); flex-shrink:0;}
.sj-dl-status{min-height:18px; font-size:12.5px; margin:10px 0 6px; word-break:keep-all;}
.sj-dl-submit{width:100%; justify-content:center;}
.sj-dl-lead{font-size:14px; line-height:1.6; margin-bottom:14px; word-break:break-all;}
.sj-dl-note{margin-top:14px; font-size:12px; line-height:1.6; color:var(--muted); word-break:keep-all;}
.sj-dl-note a{color:var(--signal); font-weight:600;}
.sj-dl-note a:hover{text-decoration:underline;}
#dlg-code{font-family:'JetBrains Mono',monospace; font-size:22px; letter-spacing:10px; text-align:center; padding:14px;}
.sj-dl-done{text-align:center; padding-top:6px;}
.sj-dl-done-mark{
  width:52px; height:52px; margin:4px auto 16px; border-radius:50%; border:1.5px solid var(--signal);
  color:var(--signal); display:flex; align-items:center; justify-content:center; font-size:22px; background:var(--panel);
}

@media(max-width:760px){
  .sj-dl-gate{padding:12px; align-items:flex-start;}
  .sj-dl-gate-box{grid-template-columns:1fr; max-height:calc(100vh - 24px); overflow-y:auto;}
  .sj-dl-member{padding:28px 20px 20px;}
  .sj-dl-title{font-size:18px; padding-right:28px;}
  .sj-dl-benefits{display:none;}
  .sj-dl-member-actions{margin-top:16px;}
  .sj-dl-file{padding-top:16px;}
  .sj-dl-guest{padding:24px 20px 22px; max-height:none; overflow:visible;}
}

/* ===== 관리자: 회원 관리 · 다운로드 기록 · 메일 자동전달 ===== */
.admin-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-top:28px;}
.admin-stat{background:var(--panel); padding:18px 20px;}
.admin-stat-k{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:1px;}
.admin-stat-v{font-family:'Space Grotesk',sans-serif; font-size:28px; font-weight:700; margin-top:4px; color:var(--text); font-variant-numeric:tabular-nums;}
@media(max-width:700px){.admin-stats{grid-template-columns:repeat(2,1fr);}}

.admin-toolbar{display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; margin-top:24px;}
.admin-toolbar .btn{padding:10px 16px; font-size:12.5px;}

/* 표 본문 10줄 정도만 보이고 나머지는 스크롤 (머리글은 고정) */
.admin-scroll-10{max-height:522px; overflow:auto; margin-top:16px;}
.admin-scroll-10 thead th{position:sticky; top:0; z-index:1;}
.admin-scroll-10 table.admin-table td{white-space:nowrap;}

.admin-btn{
  font-family:'JetBrains Mono',monospace; font-size:11px; padding:5px 10px; background:transparent;
  border:1px solid var(--line); border-radius:3px; color:var(--text); cursor:pointer;
}
.admin-btn:hover{border-color:var(--signal); color:var(--signal);}
.admin-btn:disabled{opacity:.6; cursor:default;}
.admin-btn-danger:hover{background:var(--danger); border-color:var(--danger); color:#FFFFFF;}
.admin-inline-input{
  width:100%; min-width:90px; background:var(--bg); border:1px solid var(--signal-dim); color:var(--text);
  padding:6px 8px; font-size:12.5px; border-radius:3px; font-family:'Inter',sans-serif;
}
.admin-inline-input:focus{outline:none; border-color:var(--signal);}
table.admin-table tr.editing td{background:var(--panel-2);}

.pill{display:inline-block; font-family:'JetBrains Mono',monospace; font-size:10.5px; padding:2px 8px; border-radius:10px; white-space:nowrap;}
.pill-ok{background:#E3F2E1; color:#2F6B2A;}
.pill-wait{background:var(--panel-2); color:var(--copper);}

.admin-subtitle{font-family:'Space Grotesk',sans-serif; font-size:18px; font-weight:600; margin-top:40px;}
.admin-switch{display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:12.5px;}
.admin-switch input{width:16px; height:16px; accent-color:var(--signal); cursor:pointer;}

/* ===== 접수 완료 안내 팝업 (sjShowNotice, assets/script.js) ===== */
.sj-notice{
  position:fixed; inset:0; z-index:1200; display:none; align-items:center; justify-content:center;
  padding:24px; background:rgba(36,26,15,0.55); backdrop-filter:blur(2px);
}
.sj-notice.open{display:flex; animation:sjDlFade .18s ease;}
.sj-notice-box{
  position:relative; width:100%; max-width:440px; padding:40px 36px 30px; text-align:center;
  border:1px solid var(--line); border-top:3px solid var(--signal); border-radius:4px;
  box-shadow:0 24px 70px rgba(36,26,15,0.28); animation:sjDlRise .22s ease;
  background:
    linear-gradient(rgba(255,106,26,0.06) 1px, transparent 1px) 0 0/24px 24px,
    linear-gradient(90deg, rgba(255,106,26,0.06) 1px, transparent 1px) 0 0/24px 24px,
    var(--panel);
}
.sj-notice-icon{
  width:56px; height:56px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--signal); color:#fff; font-size:28px; font-weight:700; box-shadow:0 0 0 8px rgba(255,106,26,0.14);
}
.sj-notice-tag{display:block; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--copper); margin-bottom:10px;}
.sj-notice-title{font-family:'Space Grotesk','Inter',sans-serif; font-weight:700; font-size:21px; color:var(--text); word-break:keep-all; line-height:1.4;}
.sj-notice-msg{margin-top:12px; font-size:14px; line-height:1.75; color:#5A4D3C; word-break:keep-all;}
.sj-notice-ok{margin-top:24px; min-width:140px; justify-content:center;}
@media(max-width:480px){ .sj-notice-box{padding:32px 22px 24px;} .sj-notice-title{font-size:19px;} }
