/* ====================================================================
   Grüninger Electronics · PCB-Anfrageportal · HELLES Design
   Präsentations-Optik nach GE-Deck: weiße/hellgraue Flächen,
   Dunkelblau für Headlines/Text, Grün als Akzent, Orange sparsam.
   Kicker-über-Headline, Karten, scharfe Ecken.
   ==================================================================== */

:root{
  --ge-blue:#001951;
  --ge-green:#22B573;
  --ge-orange:#F7931E;
  --ge-white:#FFFFFF;
  --ge-light:#E5E4E2;
  --ge-grey:#999999;
  --ge-grey-txt:#767676;   /* barrierefrei auf Weiß */
  --ge-ink:#191919;
  --ge-radius:8px;
  --line:#E5E4E2;
  --sp-1:8px;--sp-2:16px;--sp-3:24px;--sp-4:32px;--sp-6:48px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:Urbanist,"Segoe UI",Calibri,Arial,sans-serif;
  background:var(--ge-white);color:var(--ge-ink);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.1;color:var(--ge-blue);}
p{margin:0 0 var(--sp-2);}
button{font-family:inherit;cursor:pointer;}

.kicker{color:var(--ge-green);font-size:14px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;margin:0 0 var(--sp-1);display:block;}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;
  padding:12px 28px;font-size:16px;font-weight:600;border-radius:0;text-decoration:none;
  transition:background .15s,color .15s,border-color .15s;}
.btn-primary{background:var(--ge-blue);color:#fff;}
.btn-primary:hover{background:var(--ge-green);color:var(--ge-blue);}
.btn-green{background:var(--ge-green);color:var(--ge-blue);}
.btn-green:hover{background:#1a9c61;}
.btn-ghost{background:transparent;color:var(--ge-blue);border-color:#c7c6c3;}
.btn-ghost:hover{border-color:var(--ge-green);color:var(--ge-green);}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ge-blue);outline-offset:2px;}

/* ---- App-Shell ---- */
.app{min-height:100vh;display:grid;grid-template-columns:248px 1fr;}
.side{background:var(--ge-blue);padding:24px 0;position:sticky;top:0;height:100vh;}
.side .brand{padding:0 24px 28px;}
.side .brand img{width:170px;display:block;}
.nav a{display:flex;align-items:center;gap:12px;padding:12px 24px;font-weight:600;
  color:rgba(255,255,255,.72);text-decoration:none;border-left:3px solid transparent;}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06);}
.nav a.active{color:#fff;border-left-color:var(--ge-green);background:rgba(34,181,115,.14);}
.nav .ic{width:18px;height:18px;flex:none;opacity:.9;}
.side .foot{position:absolute;bottom:24px;left:24px;right:24px;font-size:13px;
  color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.15);padding-top:16px;}

.main{min-width:0;background:var(--ge-white);}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 40px;border-bottom:1px solid var(--line);position:sticky;top:0;
  background:var(--ge-white);z-index:5;}
.topbar .crumb{font-size:14px;color:var(--ge-grey-txt);}
.topbar .crumb b{color:var(--ge-blue);font-weight:600;}
.user{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ge-ink);}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--ge-green);color:var(--ge-blue);
  display:grid;place-items:center;font-weight:700;}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:0;overflow:hidden;font-size:13px;}
.lang span{padding:5px 10px;}
.lang .on{background:var(--ge-green);color:var(--ge-blue);font-weight:700;}
.lang .off{color:var(--ge-grey-txt);}

.page{padding:40px;max-width:1200px;}
.page h1{font-size:34px;font-weight:700;margin-bottom:4px;}
.page .sub{color:var(--ge-grey-txt);margin-bottom:32px;}

/* ---- Karten ---- */
.card{background:var(--ge-white);border:1px solid var(--line);border-radius:var(--ge-radius);}
.card.soft{background:#F7F7F6;}

/* ---- Tabelle ---- */
.table-wrap{background:var(--ge-white);border:1px solid var(--line);border-radius:var(--ge-radius);overflow:hidden;}
table.list{width:100%;border-collapse:collapse;}
table.list th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ge-grey-txt);font-weight:600;padding:14px 20px;border-bottom:2px solid var(--line);background:#FAFAF9;}
table.list td{padding:16px 20px;border-bottom:1px solid var(--line);font-size:15px;}
table.list tr:last-child td{border-bottom:0;}
table.list tbody tr:hover{background:#F5F9F7;cursor:pointer;}
.mono{font-variant-numeric:tabular-nums;}
.pcbno{font-weight:700;color:var(--ge-blue);}
td .desc-rev{color:var(--ge-grey-txt);font-size:13px;}

/* Status-Chips (hell) */
.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:999px;
  font-size:13px;font-weight:600;white-space:nowrap;}
.chip .dot{width:8px;height:8px;border-radius:50%;flex:none;}
.chip.entwurf{background:#EDEDEC;color:#5c5c5c;}
.chip.entwurf .dot{background:var(--ge-grey);}
.chip.pruefung{background:#FDEFDD;color:#a4650f;}
.chip.pruefung .dot{background:var(--ge-orange);}
.chip.klaerung{background:#FBE4E4;color:#b02525;}
.chip.klaerung .dot{background:#d13030;}
.chip.uebermittelt{background:#DFF4EA;color:#137a4d;}
.chip.uebermittelt .dot{background:var(--ge-green);}
.chip.angebot{background:#E7EBF4;color:#3a4d7d;}
.chip.angebot .dot{background:#596FA7;}

/* BOM-Ampel */
.ampel{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:var(--ge-ink);}
.ampel .lamp{width:14px;height:14px;border-radius:50%;display:inline-block;}
.ampel.g .lamp{background:var(--ge-green);}
.ampel.y .lamp{background:var(--ge-orange);}
.ampel.r .lamp{background:#d13030;}
.ampel.n{color:var(--ge-grey);}
.ampel.n .lamp{background:#d7d6d3;}

/* ---- Leerer Zustand ---- */
.empty{text-align:center;padding:80px 24px;border:1px dashed #cfcecb;border-radius:var(--ge-radius);background:#FAFAF9;}
.empty .glyph{width:64px;height:64px;margin:0 auto 20px;color:var(--ge-green);}
.empty h3{font-size:22px;margin-bottom:8px;}
.empty p{color:var(--ge-grey-txt);max-width:440px;margin:0 auto 24px;}

/* ---- Stepper ---- */
.stepper{display:flex;gap:0;margin:0 0 36px;flex-wrap:wrap;}
.step{display:flex;align-items:center;gap:10px;padding-right:22px;color:var(--ge-grey-txt);font-size:14px;font-weight:600;}
.step .n{width:26px;height:26px;border-radius:50%;border:1px solid #cfcecb;display:grid;place-items:center;font-size:13px;background:#fff;}
.step.done .n{background:var(--ge-green);border-color:var(--ge-green);color:var(--ge-blue);}
.step.done{color:var(--ge-blue);}
.step.current .n{border-color:var(--ge-blue);color:var(--ge-blue);background:#fff;}
.step.current{color:var(--ge-blue);}
.step:not(:last-child)::after{content:"";width:26px;height:1px;background:#dcdbd8;margin-left:8px;}

/* ---- Upload ---- */
.upgrid{display:grid;gap:20px;grid-template-columns:1fr;max-width:820px;}
.drop{border:1.5px dashed #cfcecb;border-radius:var(--ge-radius);padding:24px;display:flex;align-items:center;gap:20px;background:#FAFAF9;}
.drop .ic{width:40px;height:40px;color:var(--ge-green);flex:none;}
.drop .meta{flex:1;min-width:0;}
.drop .req{color:var(--ge-orange);font-weight:700;font-size:13px;}
.drop .opt{color:var(--ge-grey-txt);font-weight:600;font-size:13px;}
.drop h4{font-size:17px;margin-bottom:4px;}
.drop small{color:var(--ge-grey-txt);}
.drop.done{border-style:solid;border-color:var(--ge-green);background:#F1FAF5;}
.drop.uploading{border-style:solid;border-color:var(--ge-orange);background:#FFF9F1;}
.filerow{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:14px;color:var(--ge-ink);}
.bar{height:6px;background:#E5E4E2;border-radius:0;overflow:hidden;margin-top:10px;}
.bar>i{display:block;height:100%;background:var(--ge-green);}
.bar.warn>i{background:var(--ge-orange);}

/* ---- Prüfbericht ---- */
.verdict{display:flex;align-items:center;gap:20px;padding:24px 28px;border-radius:var(--ge-radius);margin-bottom:28px;}
.verdict.g{background:#F1FAF5;border:1px solid #b8e6cf;}
.verdict.r{background:#FCF0F0;border:1px solid #f0c2c2;}
.verdict .big{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:800;font-size:26px;color:var(--ge-blue);}
.verdict.g .big{background:var(--ge-green);}
.verdict.r .big{background:#d13030;color:#fff;}
.verdict h2{font-size:24px;margin-bottom:4px;}
.verdict p{margin:0;color:var(--ge-grey-txt);}
.counts{margin-left:auto;display:flex;gap:24px;text-align:center;}
.counts .num{font-size:28px;font-weight:700;}
.counts .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ge-grey-txt);}

.findings{display:flex;flex-direction:column;gap:0;}
.finding{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:start;padding:16px 20px;background:#fff;border:1px solid var(--line);}
.finding+.finding{border-top:0;}
.finding .sev{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding-top:2px;}
.finding.err .sev{color:#c02626;}
.finding.warn .sev{color:#a4650f;}
.finding .loc{color:var(--ge-grey-txt);font-size:13px;margin-top:3px;}
.finding b{color:var(--ge-blue);}
.finding .jump{color:var(--ge-green);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;}
.finding .jump:hover{text-decoration:underline;}
.check-list{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:8px;grid-template-columns:1fr 1fr;}
.check-list li{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ge-ink);}
.check-list .ok{color:var(--ge-green);font-weight:700;}
.check-list .no{color:#c02626;font-weight:700;}
.check-list .wn{color:var(--ge-orange);font-weight:700;}

/* ---- Spezifikationsblatt ---- */
.spec{display:grid;grid-template-columns:220px 1fr 300px;gap:32px;align-items:start;}
.spec-nav{position:sticky;top:96px;}
.spec-nav a{display:flex;justify-content:space-between;gap:8px;padding:9px 12px;text-decoration:none;color:var(--ge-grey-txt);font-size:14px;border-left:2px solid transparent;font-weight:600;}
.spec-nav a:hover{color:var(--ge-blue);}
.spec-nav a.active{color:var(--ge-blue);border-left-color:var(--ge-green);}
.spec-nav a .b{font-size:12px;color:#b8b7b4;font-weight:700;}
.spec-nav a.hasopen{color:#a4650f;}
.spec-nav a.hasopen .b{color:var(--ge-orange);}
.spec-progress{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:var(--ge-radius);font-size:13px;background:#FAFAF9;}
.spec-progress .bar{margin-top:8px;}
.spec-progress b{color:var(--ge-blue);}

.block{margin-bottom:44px;scroll-margin-top:100px;}
.block-head{display:flex;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:2px solid var(--line);margin-bottom:20px;}
.block-head .id{font-size:22px;font-weight:700;color:var(--ge-green);}
.block-head h3{font-size:20px;}
.block-head .hint{margin-left:auto;font-size:13px;color:var(--ge-grey-txt);}
.block.mandatory .block-head .id{color:var(--ge-orange);}

.field{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;padding:14px 0;border-bottom:1px solid #F0EFEC;}
.field:last-child{border-bottom:0;}
.f-label .code{font-size:12px;color:var(--ge-grey-txt);font-weight:700;letter-spacing:.04em;}
.f-label .name{font-weight:600;display:block;margin-top:2px;color:var(--ge-blue);}
.f-label .req{color:var(--ge-orange);font-weight:700;}
.f-hint{font-size:13px;color:var(--ge-grey-txt);margin-top:6px;line-height:1.4;}
.f-input{display:flex;flex-direction:column;gap:8px;}

/* Eingabefelder: Standard grün, offenes Pflichtfeld orange (aus Excel) */
.ctrl{width:100%;padding:10px 12px;border-radius:0;border:1px solid #cfcecb;background:#fff;color:var(--ge-ink);font:inherit;font-size:15px;}
.ctrl::placeholder{color:#a7a6a3;}
select.ctrl{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%2322B573' stroke-width='2'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;}
.ctrl.preset{background:#EAF7F0;border-color:#8fd8b4;}
.ctrl.open{background:#FEF2E2;border-color:var(--ge-orange);}
.supp{font-size:13px;}
.supp input{background:transparent;border:0;border-bottom:1px dashed #cfcecb;color:var(--ge-ink);padding:6px 0;width:100%;font:inherit;font-size:13px;}
.supp label{color:var(--ge-grey-txt);font-size:12px;}
.preset-note{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#137a4d;font-weight:600;}
.open-note{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#a4650f;font-weight:700;}

.sketch{display:flex;gap:14px;margin-top:12px;}
.sketch figure{margin:0;flex:1;border:1px solid var(--line);border-radius:var(--ge-radius);padding:12px;background:#fff;text-align:center;}
.sketch svg{width:100%;height:88px;}
.sketch figcaption{font-size:12px;color:var(--ge-grey-txt);margin-top:6px;}

.symbols{display:flex;gap:20px;flex-wrap:wrap;}
.symbols figure{margin:0;text-align:center;width:120px;}
.symbols .box{height:80px;border:1px solid var(--line);border-radius:var(--ge-radius);display:grid;place-items:center;background:#fff;color:var(--ge-blue);font-weight:700;padding:8px;}
.symbols figcaption{font-size:12px;color:var(--ge-grey-txt);margin-top:6px;}

.legend{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;margin:0 0 24px;color:var(--ge-ink);}
.legend span{display:inline-flex;align-items:center;gap:8px;}
.legend i{width:16px;height:16px;border-radius:3px;display:inline-block;}
.legend .lp{background:#EAF7F0;border:1px solid var(--ge-green);}
.legend .lo{background:#FEF2E2;border:1px solid var(--ge-orange);}

.qa-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px;}
.qa-table th,.qa-table td{border:1px solid var(--line);padding:8px 12px;text-align:left;}
.qa-table th{background:#FAFAF9;font-weight:600;color:var(--ge-blue);}
.readonly-note{font-size:13px;color:var(--ge-grey-txt);margin-bottom:12px;}

/* ---- Zusammenfassung ---- */
.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:start;}
.dev-list{display:flex;flex-direction:column;}
.dev-row{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);}
.dev-row:last-child{border-bottom:0;}
.dev-row .code{color:#a4650f;font-weight:700;}
.dev-row .was{color:var(--ge-grey-txt);font-size:14px;}
.dev-row .now{font-weight:700;color:var(--ge-blue);text-align:right;}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px;background:#FDEFDD;color:#a4650f;}
.badge.new{background:#E7EBF4;color:#3a4d7d;}

.summary-side .card{padding:22px;margin-bottom:20px;}
.summary-side h4{font-size:16px;margin-bottom:14px;}
.kv{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #F0EFEC;font-size:14px;}
.kv:last-child{border-bottom:0;}
.kv b{font-weight:700;color:var(--ge-blue);}

.release{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 28px;}
.release label{font-size:13px;color:var(--ge-grey-txt);display:block;margin-bottom:6px;}

/* Annahme / Prototyp */
.assume{display:flex;gap:12px;background:#FFF9F1;border:1px solid #f3d5a6;border-radius:var(--ge-radius);padding:14px 16px;font-size:13px;color:#8a5a10;margin:24px 0;line-height:1.45;}
.assume b{color:#a4650f;}
.assume .ic{flex:none;width:18px;height:18px;margin-top:1px;}
.assume a{color:#137a4d;font-weight:700;}
.proto-banner{background:#FAFAF9;border-bottom:1px solid var(--line);text-align:center;font-size:12px;letter-spacing:.06em;color:var(--ge-grey-txt);padding:7px 12px;}
.proto-banner b{color:#a4650f;}

/* ---- Login (hell) ---- */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;}
.login-hero{background:var(--ge-blue);padding:64px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;color:#fff;}
.login-hero h1,.login-hero h2{color:#fff;}
.login-hero .logo img{width:220px;}
.login-hero .thesis{max-width:520px;position:relative;z-index:1;}
.login-hero .thesis h1{font-size:52px;font-weight:700;line-height:1.05;margin-bottom:20px;}
.login-hero .thesis p{font-size:19px;color:rgba(255,255,255,.78);line-height:1.5;}
.login-hero .principle{font-size:15px;color:var(--ge-green);font-weight:600;letter-spacing:.04em;position:relative;z-index:1;}
.login-hero .traces{position:absolute;inset:0;opacity:.16;pointer-events:none;}
.login-card{background:var(--ge-white);padding:64px;display:flex;flex-direction:column;justify-content:center;}
.login-card .inner{max-width:360px;width:100%;margin:0 auto;}
.login-card .mini-logo{margin-bottom:28px;}
.login-card .mini-logo img{height:34px;}
.login-card h2{font-size:26px;margin-bottom:6px;}
.login-card .sub{color:var(--ge-grey-txt);margin-bottom:28px;font-size:15px;}
.field-plain{margin-bottom:18px;}
.field-plain label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ge-blue);}
.field-plain .req{color:var(--ge-orange);}
.login-card .btn{width:100%;justify-content:center;margin-top:8px;}
.login-alt{margin-top:24px;font-size:13px;color:var(--ge-grey-txt);text-align:center;line-height:1.6;}
.login-alt a{color:var(--ge-green);font-weight:700;text-decoration:none;}

/* ---- Profil-/Signaturseite ---- */
.profile-wrap{max-width:720px;margin:0 auto;padding:56px 24px;}
.sig-card{border:1px solid var(--line);border-radius:var(--ge-radius);padding:32px;background:#fff;}
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:8px;}
.sig-grid .full{grid-column:1/-1;}
.sig-note{display:flex;gap:12px;background:#F1FAF5;border:1px solid #b8e6cf;border-radius:var(--ge-radius);padding:14px 16px;font-size:13px;color:#137a4d;margin-top:24px;line-height:1.5;}
.sig-note .ic{flex:none;width:18px;height:18px;margin-top:1px;color:var(--ge-green);}
.sig-preview{margin-top:24px;padding:18px 20px;border:1px dashed #cfcecb;border-radius:var(--ge-radius);background:#FAFAF9;}
.sig-preview .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ge-grey-txt);font-weight:600;}
.sig-preview .val{font-size:18px;font-weight:700;color:var(--ge-blue);margin-top:4px;}
.sig-preview .meta{font-size:13px;color:var(--ge-grey-txt);margin-top:2px;}

/* ---- Bestätigung ---- */
.confirm{max-width:640px;margin:60px auto;text-align:center;}
.confirm .seal{width:88px;height:88px;border-radius:50%;background:var(--ge-green);color:var(--ge-blue);display:grid;place-items:center;margin:0 auto 28px;}
.confirm h1{font-size:36px;margin-bottom:12px;}
.confirm p{color:var(--ge-grey-txt);font-size:17px;}
.confirm .ref{display:inline-block;margin:20px 0 28px;padding:10px 20px;border:1px solid var(--line);border-radius:var(--ge-radius);font-size:15px;color:var(--ge-ink);}
.confirm .ref b{color:var(--ge-blue);}
.mailinfo{background:#F1FAF5;border:1px solid #b8e6cf;border-radius:var(--ge-radius);padding:16px 20px;font-size:14px;color:#137a4d;max-width:520px;margin:0 auto 28px;text-align:left;line-height:1.6;}
.mailinfo b{color:#0f6b43;}
.timeline{display:flex;justify-content:center;gap:0;margin:36px 0;flex-wrap:wrap;}
.timeline .t{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ge-grey-txt);padding:0 14px;}
.timeline .t .d{width:10px;height:10px;border-radius:50%;background:var(--ge-green);}
.timeline .t.next .d{background:#d7d6d3;}
.confirm .actions{display:flex;gap:12px;justify-content:center;}

/* ---- Vertriebsmail ---- */
.mail-stage{background:var(--ge-light);min-height:100vh;padding:48px 20px;color:var(--ge-ink);}
.mail{max-width:640px;margin:0 auto;background:#fff;border:1px solid #d9d8d5;}
.mail .m-head{padding:20px 24px;border-bottom:1px solid var(--line);}
.mail .subject{font-size:18px;font-weight:700;color:var(--ge-blue);}
.mail .prio{display:inline-block;background:var(--ge-orange);color:var(--ge-blue);font-weight:700;font-size:12px;padding:2px 8px;margin-right:8px;letter-spacing:.04em;}
.mail .m-meta{font-size:13px;color:#555;margin-top:8px;line-height:1.6;}
.mail .m-body{padding:24px;font-size:15px;color:var(--ge-ink);}
.mail dl{display:grid;grid-template-columns:150px 1fr;gap:6px 16px;margin:16px 0;font-size:14px;}
.mail dt{color:#666;font-weight:600;}
.mail dd{margin:0;}
.mail .m-ampel{display:inline-flex;align-items:center;gap:7px;font-weight:700;}
.mail .m-ampel .lamp{width:12px;height:12px;border-radius:50%;background:var(--ge-green);}
.mail .m-cta{margin:20px 0 4px;}
.mail .m-cta a{display:inline-block;background:var(--ge-blue);color:#fff;text-decoration:none;font-weight:600;padding:12px 28px;}
.mail .m-foot{padding:16px 24px;border-top:1px solid var(--line);font-size:12px;color:#888;}
.mail .m-foot img{width:120px;display:block;margin-bottom:8px;}

/* ---- responsive ---- */
@media(max-width:1080px){
  .spec{grid-template-columns:1fr;}
  .spec-nav{position:static;display:flex;gap:6px;overflow-x:auto;}
  .spec-aside{order:-1;}
  .two-col{grid-template-columns:1fr;}
  .login-wrap{grid-template-columns:1fr;}
  .login-hero{padding:40px;}
  .sig-grid{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .app{grid-template-columns:1fr;}
  .side{display:none;}
  .mobile-top{display:flex;}
  .page{padding:20px;}
  .topbar{padding:16px 20px;}
  table.list thead{display:none;}
  table.list,table.list tbody,table.list tr,table.list td{display:block;width:100%;}
  table.list tr{background:#fff;border:1px solid var(--line);border-radius:var(--ge-radius);margin-bottom:14px;padding:8px 4px;}
  table.list td{border:0;padding:8px 16px;display:flex;justify-content:space-between;gap:16px;}
  table.list td::before{content:attr(data-l);color:var(--ge-grey-txt);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;}
  .check-list{grid-template-columns:1fr;}
  .field{grid-template-columns:1fr;}
  .counts{width:100%;margin:16px 0 0;justify-content:flex-start;}
  .verdict{flex-wrap:wrap;}
  .login-hero .thesis h1{font-size:38px;}
  .release{grid-template-columns:1fr;}
}
.mobile-top{display:none;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:6;}
.mobile-top img{width:150px;}
.mobile-top .burger{width:26px;height:20px;display:grid;gap:5px;}
.mobile-top .burger i{height:2px;background:var(--ge-blue);display:block;}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto;}}
