/* Prime Onyx web app: glue between components.css (design system) and screens.css (page layouts). */
html,body{margin:0;min-height:100%;background:var(--bg)}
body{font-family:var(--font-sans)}
[hidden]{display:none!important}
*{box-sizing:border-box}
a.btn{text-decoration:none}
.btn-gold{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-glow)}
.link{color:var(--accent-2);text-decoration:none}
.app{min-height:100vh}
.app a:not(.btn):not(.segbtn):not(.me):not(.brand){color:var(--accent-2)}
.nav a{color:var(--fg-2)!important}
.nav a.on{color:var(--accent-2)!important}

/* flash + banner */
.flash-stack{display:grid;gap:8px}

/* forms */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid .full{grid-column:1/-1}
textarea.input{min-height:90px;resize:vertical}
select.input{appearance:auto}
fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;display:grid;gap:14px;margin:0}
legend{padding:0 6px;font-size:13px;color:var(--fg-2)}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}

/* native dialog */
dialog.dialog{padding:0;color:var(--fg);width:calc(100% - 32px)}
dialog.dialog::backdrop{background:rgba(0,0,0,.65)}
dialog:not([open]){display:none!important}

/* risk picker (radio buttons styled as segments) */
.risk-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.risk-levels label,.stop-opts label{position:relative;cursor:pointer}
.risk-levels input,.stop-opts input{position:absolute;opacity:0;pointer-events:none}
.risk-levels span{display:grid;justify-items:center;gap:2px;padding:9px 4px;border:1px solid var(--line-control);border-radius:var(--radius-sm);font-size:11.5px;color:var(--fg-2);min-height:52px;text-align:center}
.risk-levels span b{font:600 14px/18px var(--font-mono);color:var(--fg)}
.risk-levels input:checked + span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.risk-levels input:checked + span b{color:var(--accent-ink)}
.risk-levels input:focus-visible + span,.stop-opts input:focus-visible + span{outline:2px solid var(--accent-2);outline-offset:2px}
.stop-opts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.stop-opts.six{grid-template-columns:repeat(6,minmax(0,1fr))}
.stop-opts.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.stop-opts.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.stop-opts.three span{font-family:var(--font-sans);padding:10px 0}
.hours{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}
.hours span{color:var(--fg-2);font-size:13px}
.hours select{text-align:center;font-family:var(--font-mono)}
.ea .help{margin:0;padding:0 12px 12px;font-size:12px;line-height:1.55}
.ea dd.fixed::after{content:attr(data-tag);margin-left:6px;padding:2px 6px;border:1px solid var(--line-2);border-radius:999px;white-space:nowrap;font:500 10.5px/1 var(--font-sans);color:var(--fg-3,var(--fg-2));vertical-align:1px}
.stop-opts.two span{font-family:var(--font-sans);padding:10px 0}
.stop-opts.six label:last-child span{font-family:var(--font-sans);font-size:12px}
.amt{display:flex;align-items:center;gap:8px}.amt .input{flex:1;min-width:0}.amt span{font-size:13px;color:var(--fg-2);white-space:nowrap}
[data-panel][hidden],.amt[hidden]{display:none!important}
.ea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);font-size:12.5px}
.ea summary{cursor:pointer;padding:9px 12px;color:var(--fg-2);font-weight:500;list-style:none;display:flex;justify-content:space-between;align-items:center}
.ea summary::-webkit-details-marker{display:none}
.ea summary::after{content:'+';font:600 15px/1 var(--font-mono);color:var(--fg-3)}
.ea[open] summary::after{content:'−'}
.ea dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;padding:0 12px 12px}
.ea dt{color:var(--fg-3);font-family:var(--font-mono);font-size:12px}
.ea dd{margin:0;text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--fg);word-break:break-word}
.stop-opts span{display:block;text-align:center;padding:8px 0;border:1px solid var(--line-control);border-radius:999px;font:600 13px/1 var(--font-mono);color:var(--fg-2)}
.stop-opts input:checked + span{background:var(--surface-2);border-color:var(--accent-2);color:var(--fg)}
.risk-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.risk-preview div{padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2)}
.risk-preview span{display:block;font-size:11.5px;color:var(--fg-3)}

/* member menu */
.me-menu details{position:relative}
.me-menu summary{list-style:none;cursor:pointer}
.me-menu summary::-webkit-details-marker{display:none}
.me-menu .dd{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:6px;display:grid;z-index:40;box-shadow:var(--shadow-pop)}
.me-menu .dd a,.me-menu .dd button{display:block;text-align:left;width:100%;padding:9px 12px;border-radius:5px;color:var(--fg-2)!important;text-decoration:none;background:none;border:0;font:inherit;font-size:14px;cursor:pointer}
.me-menu .dd a:hover,.me-menu .dd button:hover{background:var(--surface-2);color:var(--fg)!important}

/* bot image on cards */
.emblem img.bot-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.emblem.has-img .nm{text-shadow:0 1px 8px rgba(0,0,0,.8)}

/* real mobile tab bar (fixed) */
.m-tabbar{display:none}
@media (max-width:760px){
  .m-tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--tabbar-bg);border-top:1px solid var(--line);padding:8px 4px calc(10px + env(safe-area-inset-bottom,0px))}
  .m-tabbar a{display:grid;justify-items:center;gap:3px;font-size:11px;color:var(--fg-3)!important;text-decoration:none;min-height:44px}
  .m-tabbar a.on{color:var(--accent-2)!important}
  .m-tabbar svg{width:20px;height:20px}
  .page{padding-bottom:110px}
  .app-top .me span.nm{display:none}
  .app-top .lang a{padding:5px 7px;font-size:11.5px}
  .app-top .right{gap:8px}
  .page-head h1{font-size:24px;line-height:32px}
  .stat .v{font-size:17px;line-height:24px;overflow-wrap:anywhere}
  .stat{min-width:0}
  .form-grid,.grid3{grid-template-columns:minmax(0,1fr)}
  .risk-levels span{font-size:10.5px}
  .stop-opts.six{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-main{padding:20px 16px 60px}
  .side{max-width:none;flex-basis:100%;border-right:0;border-bottom:1px solid var(--line)}
  .side nav{display:flex;flex-wrap:wrap}
  .hero{padding-top:48px;padding-bottom:40px}
  .section{padding:48px 0}
  .section h2{font-size:28px}
}

/* login split */
.auth{display:flex;flex-wrap:wrap;min-height:100vh}
.auth-art{flex:1 1 520px;min-width:0;padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;border-right:1px solid var(--line);background:radial-gradient(90% 70% at 20% 30%,var(--glow-3),transparent 70%),linear-gradient(160deg,var(--auth-from),var(--auth-to));position:relative;overflow:hidden}
.auth-art h2{font:600 44px/1.25 var(--font-serif);margin:0}
.auth-art h2 .l{display:block}
.auth-art h2 .em{color:var(--accent-2)}
.auth-logo{width:112px;height:112px;border-radius:24px;object-fit:cover;box-shadow:0 12px 40px -12px var(--accent)}
.auth-panel{flex:1 1 440px;min-width:0;display:flex;align-items:center;justify-content:center;padding:40px 20px}
.auth-box{width:100%;max-width:400px;display:grid;gap:18px}
.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}
.auth-tabs a{text-align:center;padding:9px;border-radius:7px;font-weight:600;color:var(--fg-2)!important;text-decoration:none}
.auth-tabs a[aria-selected="true"]{color:var(--fg)!important;background:var(--surface-2)}
@media (max-width:760px){.auth-art{padding:20px;flex-basis:100%;border-right:0;border-bottom:1px solid var(--line);gap:12px}.auth-art h2{font-size:24px}.auth-logo{width:64px;height:64px;border-radius:14px}.auth-art p,.auth-art .risk{display:none}}
.empty{padding:40px 18px;text-align:center;color:var(--fg-3)}
/* admin helpers */
.list{display:grid}
.list > div{display:flex;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--line)}
.list > div:first-child{border-top:0}
.list .grow{flex:1;min-width:0}
.search{display:flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--line-control);border-radius:var(--radius-sm);padding:0 10px}
.search input{border:0;background:transparent;color:var(--fg);outline:0;padding:8px 0;font:inherit;width:220px;max-width:100%}
.mini{display:flex;align-items:center;gap:10px}
.mini .sw{width:34px;flex:none}
.badge.admin{border-color:var(--champ);color:var(--champ)}
.help{font-size:12.5px;color:var(--fg-3)}
.img-prev{width:200px;max-width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line)}

/* bot cards: equal height, CTA at the bottom, long words never overflow */
.grid-4 > .bot{display:flex;flex-direction:column;min-width:0}
.bot p{overflow-wrap:anywhere}
@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid-4{grid-template-columns:minmax(0,1fr)}}
.grid-4 > .bot > p{flex:1}
.bot .mysub{display:grid;gap:8px;font-size:13px;padding:10px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-tint)}
.bot .mysub .acts{display:grid;grid-template-columns:1fr auto;gap:6px}
.bot .mysub .acts form{display:contents}
/* tables that become cards on phones */
@media (max-width:760px){
  .tbl.stack thead{display:none}
  .tbl.stack, .tbl.stack tbody, .tbl.stack tr, .tbl.stack td{display:block;width:100%}
  .tbl.stack tr{padding:12px 16px;border-top:1px solid var(--line)}
  .tbl.stack td{position:relative;padding:7px 0 7px 38%!important;border:0!important;text-align:right;white-space:normal;min-height:34px}
  .tbl.stack td[data-label]::before{content:attr(data-label);position:absolute;left:0;top:9px;color:var(--fg-3);font-size:12px;text-align:left}
  .tbl.stack td.act{padding-left:0!important}
  .tbl.stack td.empty{display:block;text-align:center}
}
/* forms: selects match inputs, file button in theme */
.grid3{align-items:start}
select.input{height:46px;padding-top:0;padding-bottom:0}
input[type=file].input{padding:7px 8px;height:auto}
input[type=file]::file-selector-button{margin-right:12px;padding:6px 14px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--fg);font:inherit;cursor:pointer}
/* landing header on phones: language + login fit; the hero already has the sign-up button */
.land-top .right .btn{white-space:nowrap}
@media (max-width:560px){
  .land-top .right .btn-primary{display:none}
  .land-top .right .btn{padding:7px 12px}
  .land-top .lang a{padding:5px 7px;font-size:11.5px}
}
/* legal pages */
.legal{padding-top:40px;padding-bottom:64px;display:grid;gap:28px;max-width:880px}
.legal-tabs{display:flex;flex-wrap:wrap;gap:8px}
.legal-tabs a{padding:8px 14px;border:1px solid var(--line-control);border-radius:var(--radius-pill);color:var(--fg-2);text-decoration:none;font-size:14px}
.legal-tabs a.on{background:var(--accent);border-color:transparent;color:var(--accent-ink)!important;font-weight:600}
.legal-doc h1{font:600 34px/1.25 var(--font-serif);margin:0}
.legal-doc .legal-meta{color:var(--fg-3);font-size:13px;margin:8px 0 0}
.legal-doc .legal-intro{font-size:16.5px;line-height:1.75;color:var(--fg);margin:20px 0 8px;padding:16px 18px;border-left:3px solid var(--accent);background:var(--accent-tint);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.legal-doc section{padding-top:22px}
.legal-doc h2{font:600 19px/1.4 var(--font-serif);margin:0 0 8px;color:var(--fg)}
.legal-doc p,.legal-doc li{font-size:15px;line-height:1.8;color:var(--fg-2)}
.legal-doc p{margin:0 0 8px}
.legal-doc ul{margin:0;padding-left:22px;display:grid;gap:6px}
@media (max-width:760px){.legal{padding-top:24px}.legal-doc h1{font-size:27px}}
.legal-links{margin:32px 0 0;font-size:12.5px;color:var(--fg-3)}
.legal-links a{color:var(--fg-3)}
.check a{color:var(--accent-2)}
