/* KrawallWerk customer workspace v2 · independent from Control ORBIT.
   The customer area never uses Control's admin skin or admin scripts. */
:root{
 --bg:#f5f6f8;--surface:#fff;--ink:#252a32;--muted:#697586;
 --line:#dde2e9;--orange:#d96531;--deep-orange:#b64f24;
 --portal-accent:#d96531;--portal-accent-on:#fff;
 --portal-soft:#fff0e7;--portal-field:#fff;--portal-nav:#43474d;
 --portal-shadow:0 8px 26px rgba(28,35,57,.035);
 color-scheme:light;
}
:root[data-portal-theme="dark"]{
 --bg:#15171c;--surface:#202229;--ink:#f1f2f4;--muted:#abb2bf;
 --line:#383d47;--orange:#f49b6c;--deep-orange:#ffc19c;
 --portal-accent:#f49b6c;--portal-accent-on:#1a1512;
 --portal-soft:#362922;--portal-field:#202229;--portal-nav:#ededf1;
 --portal-shadow:0 9px 28px rgba(0,0,0,.12);
 color-scheme:dark;
}
[hidden]{display:none!important}
body.portal-home{font-size:15px;line-height:1.55;background:var(--bg);color:var(--ink)}
body.portal-home .portal-shell{background:var(--bg)}
body.portal-home .portal-top{
 background:var(--surface);border-color:var(--line);
 display:flex;justify-content:space-between;gap:20px;
 flex-wrap:wrap;min-height:84px;padding:13px max(20px,calc((100vw - 1220px)/2));
 box-shadow:0 2px 12px rgba(20,30,50,.015);
}
body.portal-home .portal-brand{flex:0 0 auto;gap:12px}
body.portal-home .portal-mark{font-size:27px;color:var(--ink)}
body.portal-home .portal-mark span{color:var(--portal-accent)}
body.portal-home .portal-brand strong{font-size:13px;letter-spacing:.1em}
body.portal-home .portal-brand small{color:var(--muted);font-size:10px}
body.portal-home .portal-navigation{
 display:flex;gap:3px;flex:1 1 auto;align-items:center;justify-content:center;
 min-width:0;
}
body.portal-home .portal-navigation button{
 background:transparent;color:var(--muted);border:0;
 border-radius:9px;padding:12px 13px;min-height:44px;
 font-size:14px;font-weight:700;white-space:nowrap;
}
body.portal-home .portal-navigation button.active{
 background:var(--portal-soft);color:var(--portal-accent);
}
body.portal-home .portal-navigation button:hover:not(.active){
 background:var(--bg);color:var(--ink);
}
body.portal-home .portal-top-actions{display:flex;align-items:center;gap:8px}
body.portal-home .portal-secondary{
 background:var(--surface);color:var(--ink);border-color:var(--line);
 min-height:40px;border-radius:9px;font-size:13px;font-weight:700;
}
body.portal-home .portal-secondary:hover{background:var(--portal-soft);color:var(--ink)}
body.portal-home .portal-main{
 width:min(1220px,100%);margin:0 auto;padding:33px 22px 38px;
}
body.portal-home .portal-overview-panel,
body.portal-home .portal-tab-panel{width:100%;min-width:0}
body.portal-home .portal-hero{
 background:transparent;border:0;padding:1px 0 17px;gap:20px;border-radius:0;
}
body.portal-home .portal-eyebrow{
 color:var(--portal-accent);font-weight:800;letter-spacing:.12em;
 font-size:11px;
}
body.portal-home h1{font-size:clamp(30px,3.5vw,46px);font-weight:780;color:var(--ink)}
body.portal-home h1 span{color:var(--portal-accent)}
body.portal-home .portal-muted{color:var(--muted);font-size:13px;line-height:1.6}
body.portal-home .portal-hero-badge{
 background:var(--surface);border:1px solid var(--line);
 border-radius:13px;min-width:132px;padding:14px 20px;text-align:left;
}
body.portal-home .portal-hero-badge strong{color:var(--ink);font-size:32px}
body.portal-home .portal-hero-badge small{color:var(--muted);font-size:12px}
body.portal-home .portal-honesty{
 padding:12px 16px;margin:13px 0 21px;border-radius:10px;
 background:var(--portal-soft);border-color:var(--line);
 color:var(--ink);font-size:13px;
}
body.portal-home .portal-dashboard-intro{
 display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);
 gap:14px;margin-top:14px;
}
body.portal-home .portal-card{
 background:var(--surface);color:var(--ink);border:1px solid var(--line);
 border-radius:14px;padding:24px;box-shadow:var(--portal-shadow);
}
body.portal-home .portal-dashboard-feature{
 min-height:255px;display:flex;flex-direction:column;align-items:flex-start;
 background:linear-gradient(135deg,var(--surface),var(--portal-soft));
}
body.portal-home .portal-dashboard-feature h2{
 font-size:clamp(23px,2.5vw,33px);line-height:1.19;margin:14px 0 8px;
 color:var(--ink);letter-spacing:-.035em;
}
body.portal-home .portal-dashboard-feature>p:not(.portal-eyebrow){
 max-width:520px;margin:0;color:var(--muted);font-size:15px;
}
body.portal-home .portal-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:22px}
body.portal-home .portal-primary,
body.portal-home .portal-form button:not(.portal-secondary){
 background:var(--portal-accent);color:var(--portal-accent-on);
 border:1px solid var(--portal-accent);border-radius:9px;
 font-size:14px;min-height:44px;font-weight:780;
}
body.portal-home .portal-primary:hover,body.portal-home .portal-form button:hover{
 filter:brightness(1.07);
}
body.portal-home .portal-dashboard-status{min-height:255px;display:flex;flex-direction:column}
body.portal-home .portal-dashboard-status>strong{
 display:block;font-size:65px;font-weight:750;line-height:1.1;
 letter-spacing:-.06em;color:var(--ink);margin:16px 0 0;
}
body.portal-home .portal-dashboard-status>p:not(.portal-eyebrow){
 font-size:14px;color:var(--muted);margin:4px 0;
}
body.portal-home .portal-link-action{
 color:var(--portal-accent);border:0;background:transparent;
 font-weight:740;text-align:left;padding:6px 0;
 margin-top:auto;font-size:14px;
}
body.portal-home .portal-section-heading{margin:0 0 22px}
body.portal-home .portal-section-heading h2{
 font-size:clamp(25px,3vw,34px);line-height:1.2;
 font-weight:780;letter-spacing:-.03em;margin:7px 0;
 color:var(--ink);
}
body.portal-home .portal-section-heading>p:not(.portal-eyebrow){
 margin:6px 0;color:var(--muted);font-size:14px;
}
body.portal-home .portal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
body.portal-home .portal-product{padding:22px;min-height:186px}
body.portal-home .portal-product-head strong{color:var(--ink);font-size:17px}
body.portal-home .portal-state{
 background:var(--portal-soft);color:var(--portal-accent);
 padding:5px 8px;font-size:11px;
}
body.portal-home .portal-hostname{color:var(--ink);font-size:13px;margin:15px 0}
body.portal-home .portal-product small{color:var(--muted);font-size:12px}
body.portal-home .portal-service{margin:0}
body.portal-home .portal-service h2{font-size:26px;margin:6px 0;color:var(--ink)}
body.portal-home .portal-service-count{
 background:var(--portal-soft);color:var(--portal-accent);font-size:12px;
}
body.portal-home .portal-service-create,
body.portal-home .portal-service-thread{
 background:var(--bg);border-color:var(--line);
}
body.portal-home .portal-service-create summary{
 font-size:14px;font-weight:750;color:var(--ink)
}
body.portal-home .portal-service-row{
 background:var(--surface);border-color:var(--line);
 border-radius:9px;padding:14px 16px;color:var(--ink);
}
body.portal-home .portal-service-row:hover{
 background:var(--portal-soft);border-color:var(--portal-accent);
}
body.portal-home .portal-service-row strong{font-size:14px}
body.portal-home .portal-service-row small{font-size:12px;color:var(--muted)}
body.portal-home .portal-form label{color:var(--ink);font-size:14px}
body.portal-home .portal-form :is(input,textarea,select),
body.portal-home .portal-service-create :is(select,textarea){
 background:var(--portal-field);border:1px solid var(--line);
 color:var(--ink);border-radius:9px;min-height:45px;font-size:15px;
 padding:11px 12px;
}
body.portal-home .portal-form button{justify-self:start}
body.portal-home .portal-team-card{padding:21px}
body.portal-home .portal-team-header{display:flex;justify-content:space-between;gap:12px;align-items:center}
body.portal-home .portal-team-header h3{margin:0;color:var(--ink);font-size:20px}
body.portal-home .portal-team-header strong{color:var(--muted);font-size:13px}
body.portal-home .portal-team-list{display:grid;gap:10px;margin:19px 0}
body.portal-home .portal-team-row{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 border:1px solid var(--line);border-radius:10px;padding:14px 16px;
 background:var(--bg);
}
body.portal-home .portal-team-person{display:grid;gap:4px;min-width:0}
body.portal-home .portal-team-person strong{font-size:15px;overflow-wrap:anywhere}
body.portal-home .portal-team-person small{color:var(--muted);font-size:12px}
body.portal-home .portal-team-actions{display:flex;gap:8px;flex-wrap:wrap}
body.portal-home .portal-team-create{
 padding:14px;border:1px solid var(--line);border-radius:10px;
}
body.portal-home .portal-team-create summary{
 cursor:pointer;font-weight:740;color:var(--ink);font-size:14px;
}
body.portal-home .portal-onetime-secret{
 margin-top:17px;padding:15px;border:1px solid var(--portal-accent);
 border-radius:10px;background:var(--portal-soft);color:var(--ink);
}
body.portal-home .portal-onetime-secret>p{font-size:13px;color:var(--muted)}
body.portal-home .portal-secret-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
body.portal-home .portal-secret-row code{
 padding:10px;border:1px solid var(--line);border-radius:8px;
 background:var(--surface);color:var(--ink);
 overflow-wrap:anywhere;flex:1 1 200px;
}
body.portal-home .portal-settings{margin:0}
body.portal-home .portal-settings summary{color:var(--ink);font-size:16px;font-weight:740}
body.portal-home .portal-message{font-size:13px;color:var(--muted)}
body.portal-home .portal-footer{font-size:11px;color:var(--muted);border-color:var(--line)}
body.portal-home :is(button,input,select,textarea,summary,a):focus-visible{
 outline:2px solid var(--portal-accent);outline-offset:3px;
}
@media(max-width:1020px){
 body.portal-home .portal-top{gap:10px;padding:13px 22px}
 body.portal-home .portal-navigation{order:3;flex:1 1 100%;justify-content:flex-start;overflow:auto}
 body.portal-home .portal-navigation button{padding:10px 14px}
}
@media(max-width:760px){
 body.portal-home .portal-dashboard-intro{grid-template-columns:1fr}
 body.portal-home .portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.portal-home .portal-main{padding:26px 15px}
}
@media(max-width:560px){
 body.portal-home .portal-grid{grid-template-columns:1fr}
 body.portal-home .portal-hero-badge{min-width:110px}
 body.portal-home .portal-top{padding:12px 15px}
 body.portal-home .portal-navigation{margin:0 -15px;padding:0 12px;gap:2px}
 body.portal-home .portal-card{padding:17px}
 body.portal-home .portal-team-row{align-items:flex-start;flex-direction:column}
 body.portal-home .portal-dashboard-feature{min-height:230px}
}

/* Per-product detail is customer-scoped through the existing ID-checked API. */
body.portal-home .portal-product-open{
 margin-top:18px;font-size:13px;min-height:40px;
 background:var(--portal-soft);border-color:var(--line);
 color:var(--portal-accent);font-weight:780;
}
body.portal-home .portal-product-detail{
 margin-top:16px;border-color:var(--line);box-shadow:var(--portal-shadow);
}
body.portal-home .portal-product-detail-head{
 display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
body.portal-home .portal-product-detail h3{
 font-size:20px;letter-spacing:-.02em;margin:0;color:var(--ink);
}
body.portal-home .portal-detail-list{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0;
}
body.portal-home .portal-detail-list>div{
 padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);
}
body.portal-home .portal-detail-list dt{
 font-size:12px;color:var(--muted);font-weight:720;
}
body.portal-home .portal-detail-list dd{
 margin:5px 0 0;font-size:14px;font-weight:760;color:var(--ink);overflow-wrap:anywhere;
}
body.portal-home #portal-product-detail-service{margin-top:13px}
body.portal-login{
 background:var(--bg);color:var(--ink);
}
body.portal-login .portal-login-card{
 padding:32px;margin-top:28px;
 border:1px solid var(--line);background:var(--surface);
 box-shadow:var(--portal-shadow);
}
body.portal-login .portal-brand strong{color:var(--ink)}
body.portal-login .portal-mark{color:var(--ink)}
body.portal-login .portal-mark span{color:var(--portal-accent)}
body.portal-login h1{font-size:30px;color:var(--ink)}
body.portal-login h1 span{color:var(--portal-accent)}
body.portal-login .portal-form label{font-size:14px;color:var(--ink)}
body.portal-login .portal-form input{
 background:var(--portal-field);border-color:var(--line);
 min-height:48px;color:var(--ink);font-size:15px;
}
body.portal-login .portal-form button{
 min-height:48px;background:var(--portal-accent);
 border-color:var(--portal-accent);color:#fff;font-size:14px;
}
body.portal-login .portal-eyebrow{color:var(--portal-accent)}
body.portal-login .portal-meta{color:var(--muted)}
@media(max-width:690px){
 body.portal-home .portal-detail-list{grid-template-columns:1fr}
}

body.portal-login .portal-auth-wrap{position:relative}
body.portal-login .portal-login-theme{
 position:absolute;right:0;top:0;background:var(--surface);
 border:1px solid var(--line);color:var(--ink);
 border-radius:8px;font-size:12px;min-height:39px;
}

/* Verified external product launch: only server-authorized links are rendered. */
body.portal-home .portal-launch-link{
 display:inline-flex;justify-content:center;align-items:center;
 padding:11px 14px;min-height:44px;box-sizing:border-box;
 margin:12px 0 0;text-decoration:none;font-size:13px;
 font-weight:800;border-radius:9px;
}
body.portal-home .portal-launch-link[hidden]{display:none!important}
body.portal-home .portal-launch-link:focus-visible{
 outline:2px solid var(--portal-accent);outline-offset:2px;
}
