/* General-user home, redesigned as a calm mobile safety application. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.general-home-intro{display:none}.safety-shield,.safety-hero-link{display:none}.mobile-demo-control{display:grid;gap:6px;margin:12px 20px 0;font-size:13px;font-weight:700}.mobile-demo-control select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--surface);color:var(--ink);font:inherit}
.general-role{--gg-navy:oklch(.23 .07 255);--gg-blue:oklch(.58 .18 244);--gg-green:oklch(.53 .13 151);--gg-pale-blue:oklch(.97 .018 238);--gg-line:oklch(.91 .018 245);background:var(--gg-pale-blue);color:var(--gg-navy)}.general-role .app-shell{display:block}.general-role .sidebar,.general-role>.app-shell>.main-content>.topbar{display:none}.general-role .main-content{max-width:980px;padding:28px 24px 54px}.general-role #page-overview{width:100%}.general-role .general-home-intro{display:block}.general-role .general-landing{display:grid;gap:18px;margin:18px 0 0;padding:0;border:0;background:transparent}.general-role .general-app-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.general-brand{display:flex;align-items:center;gap:11px;color:var(--gg-navy);text-decoration:none}.general-brand-mark{display:block;width:48px;height:48px;overflow:hidden;border-radius:15px;background:linear-gradient(145deg,oklch(.62 .21 248),oklch(.42 .2 263));box-shadow:0 7px 18px oklch(.36 .14 251/.18)}.general-brand-mark img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;mix-blend-mode:multiply}.general-brand strong,.general-brand small{display:block}.general-brand strong{font-size:22px;line-height:1.1;letter-spacing:-.03em}.general-brand small{margin-top:3px;color:oklch(.54 .035 250);font-size:12px}.general-header-actions{display:flex;gap:10px}.general-icon-button{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--gg-line);border-radius:50%;background:white;color:var(--gg-navy);box-shadow:0 7px 20px oklch(.32 .045 250/.07);cursor:pointer}.general-icon-button span{font-size:19px}.general-icon-button i{position:absolute;top:8px;right:8px;width:9px;height:9px;border:2px solid white;border-radius:50%;background:var(--danger)}.general-welcome{position:relative;display:flex;align-items:flex-end;justify-content:space-between;min-height:170px;padding:26px 0 14px}.general-welcome p{margin:0;color:var(--gg-navy);font-size:18px;font-weight:700}.general-site-select{display:flex;align-items:center;gap:9px;min-height:44px;margin:2px 0 0;padding:0;border:0;background:none;color:var(--gg-navy);font-size:34px;font-weight:800;letter-spacing:-.04em;cursor:pointer}.general-site-select span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:white;font-size:18px;box-shadow:0 4px 16px oklch(.3 .04 250/.07)}.general-welcome small{display:block;margin-top:2px;color:oklch(.5 .04 250);font-size:15px}.general-mascot-hello{position:relative;width:260px;height:150px}.general-mascot-hello img{position:absolute;right:4px;bottom:-14px;width:168px;height:168px;object-fit:cover;object-position:50% 12%;mix-blend-mode:multiply}.general-mascot-hello span{position:absolute;z-index:1;top:7px;left:0;padding:12px 17px;border-radius:22px 22px 5px 22px;background:white;color:var(--gg-navy);font-size:14px;font-weight:600;line-height:1.4;box-shadow:0 8px 24px oklch(.3 .04 250/.08)}
.general-role .safety-hero{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:18px;margin:0;padding:24px 28px;border:1px solid oklch(.87 .06 151);border-radius:24px;background:linear-gradient(100deg,oklch(.985 .022 151),oklch(.94 .07 151));color:oklch(.3 .1 151);box-shadow:0 14px 34px oklch(.35 .07 151/.09)}.general-role .safety-hero.is-attention{border-color:oklch(.84 .1 79);background:linear-gradient(100deg,oklch(.985 .025 79),oklch(.95 .075 79));color:oklch(.4 .12 70)}.general-role .safety-hero.is-critical{border-color:oklch(.84 .1 28);background:linear-gradient(100deg,oklch(.985 .025 28),oklch(.95 .07 28));color:oklch(.42 .15 28)}.general-role .safety-hero.is-unknown{border-color:oklch(.84 .03 250);background:linear-gradient(100deg,oklch(.985 .01 250),oklch(.94 .025 250));color:oklch(.4 .045 250)}.general-role .safety-shield{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:var(--gg-green);color:white;font-size:31px;font-weight:800;box-shadow:inset 0 0 0 10px oklch(1 0 0/.14)}.general-role .is-attention .safety-shield{background:var(--attention)}.general-role .is-critical .safety-shield{background:var(--danger)}.general-role .is-unknown .safety-shield{background:var(--unknown)}.general-role .safety-hero-copy .section-label{margin:0;color:currentColor;font-size:15px;letter-spacing:0}.general-role .safety-hero h2{margin:1px 0;color:currentColor;font-size:36px;line-height:1.15}.general-role .safety-hero p:not(.section-label){margin:0;color:var(--gg-navy);font-size:15px;font-weight:600}.general-role .safety-hero-copy small{display:block;margin-top:4px;color:oklch(.51 .035 250);font-size:12px}.general-role .score-block{display:grid;grid-template-columns:auto auto;align-items:end;justify-content:center;align-content:center;width:108px;height:108px;min-width:108px;border:8px solid currentColor;border-radius:50%;text-align:center}.general-role .score-block strong{font-size:36px;line-height:1}.general-role .score-block span{color:currentColor;font-size:12px}.general-role .score-block small{grid-column:1/-1;margin:3px 0 0;color:currentColor;font-size:9px;font-weight:700}.general-role .safety-hero-link{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:currentColor;font-size:34px;cursor:pointer}
.general-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.general-metric{position:relative;min-width:0;padding:18px 18px 15px;border:1px solid var(--gg-line);border-radius:20px;background:white;box-shadow:0 12px 30px oklch(.31 .04 250/.065)}.general-metric-head{display:flex;align-items:center;gap:9px;color:oklch(.47 .035 250);font-size:13px;font-weight:600}.general-metric-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:oklch(.95 .035 24);color:oklch(.6 .18 28);font-size:19px}.general-metric.is-temperature .general-metric-icon,.general-metric.is-humidity .general-metric-icon{background:oklch(.95 .035 245);color:var(--gg-blue)}.general-metric strong{display:block;margin-top:8px;color:var(--gg-navy);font-size:27px;line-height:1.1;font-variant-numeric:tabular-nums}.general-metric small{display:block;margin-top:7px;color:oklch(.5 .04 250);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.general-spark{display:block;width:100%;height:16px;margin-top:7px}.general-spark path{fill:none;stroke:var(--gg-green);stroke-width:2;stroke-linecap:round}.general-metric.is-temperature .general-spark path,.general-metric.is-humidity .general-spark path{stroke:var(--gg-blue)}
.general-system-status{display:grid;grid-template-columns:1fr 1fr;gap:14px}.general-system-status article{position:relative;display:flex;align-items:flex-start;gap:13px;min-height:112px;padding:18px;border:1px solid var(--gg-line);border-radius:20px;background:white;box-shadow:0 12px 30px oklch(.31 .04 250/.06)}.system-status-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:oklch(.94 .04 151);color:var(--gg-green);font-size:20px}.general-system-status small,.general-system-status strong,.general-system-status p{display:block}.general-system-status small{color:oklch(.5 .035 250);font-size:13px}.general-system-status strong{color:var(--gg-navy);font-size:19px}.general-system-status p{margin:2px 0 0;color:oklch(.54 .035 250);font-size:12px}.general-system-status article>i{position:absolute;top:28px;right:20px;width:10px;height:10px;border-radius:50%;background:var(--gg-green)}.general-system-status article>i.is-offline{background:var(--unknown)}.general-system-status article>i.is-closed{background:var(--attention)}
.general-role .general-plan,.general-recent{margin:0;padding:20px 22px;border:1px solid var(--gg-line);border-radius:22px;background:white;box-shadow:0 12px 32px oklch(.31 .04 250/.06)}.general-role .general-plan-head,.general-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.general-role .general-plan-head>div,.general-section-head>div{display:flex;align-items:center;gap:10px}.general-role .general-plan-head h3,.general-section-head h3{margin:0;color:var(--gg-navy);font-size:19px}.section-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:oklch(.94 .04 151);color:var(--gg-green);font-size:17px}.general-section-link{min-height:44px;padding:0 12px;border:0;border-radius:999px;background:oklch(.97 .01 250);color:oklch(.43 .04 250);font-weight:600;cursor:pointer}.general-role .general-plan-layout{grid-template-columns:minmax(0,1.5fr) minmax(205px,.72fr);gap:18px;margin-top:14px}.general-role .general-plan-map{min-height:250px;border-color:oklch(.89 .025 245);background:oklch(.95 .018 245)}.general-role .general-plan-cell{background:oklch(.9 .025 245)}.general-area-list{display:grid;align-content:center;gap:0}.general-area-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:12px 0;border-bottom:1px solid var(--gg-line)}.general-area-item:last-child{border-bottom:0}.general-area-item>i{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--gg-green)}.general-area-item>i.is-attention{background:var(--attention)}.general-area-item>i.is-critical{background:var(--danger)}.general-area-item>i.is-unknown{background:var(--unknown)}.general-area-item strong,.general-area-item small{display:block}.general-area-item strong{color:var(--gg-navy);font-size:14px}.general-area-item small{color:oklch(.52 .035 250);font-size:12px}
.general-ai-card{display:grid;grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:126px;padding:8px 20px 8px 6px;border:1px solid oklch(.86 .07 240);border-radius:22px;background:linear-gradient(100deg,oklch(.95 .055 232),oklch(.98 .02 246));color:var(--gg-navy);text-align:left;box-shadow:0 12px 30px oklch(.31 .06 242/.07);cursor:pointer}.ai-mascot{display:block;width:104px;height:108px;overflow:hidden}.ai-mascot img{width:112px;height:112px;object-fit:cover;object-position:50% 12%;mix-blend-mode:multiply}.general-ai-card strong,.general-ai-card b,.general-ai-card small{display:block}.general-ai-card strong{font-size:20px}.general-ai-card b{margin-top:2px;font-size:14px}.general-ai-card small{margin-top:3px;color:oklch(.48 .04 250);font-size:12px}.general-ai-card>i{font-size:32px;font-style:normal}.general-recent-list{margin-top:8px}.general-event-row{display:grid;grid-template-columns:54px 12px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:55px;border-bottom:1px solid var(--gg-line);color:var(--gg-navy)}.general-event-row:last-child{border-bottom:0}.general-event-row time{color:oklch(.5 .035 250);font-size:13px;font-variant-numeric:tabular-nums}.general-event-row>i{width:10px;height:10px;border-radius:50%;background:var(--unknown)}.general-event-row>i.is-safe{background:var(--gg-green)}.general-event-row>i.is-attention{background:var(--attention)}.general-event-row>i.is-critical{background:var(--danger)}.general-event-row strong{font-size:14px}.general-event-row small{color:oklch(.52 .035 250);font-size:12px}.general-role .general-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}.general-role .general-actions .button{min-height:58px;border-radius:18px;font-size:17px}.general-role .general-actions .button-primary{border-color:var(--gg-green);background:var(--gg-green);color:white}.general-role .is-attention~.general-landing #general-help-button,.general-role .is-critical~.general-landing #general-help-button{border-color:var(--danger);background:var(--danger)}
.general-role .mobile-navigation{max-width:980px;margin:auto}.general-role .mobile-nav-item.is-active{background:transparent;color:var(--gg-green)}.general-role .mobile-navigation{border-radius:24px 24px 0 0}.general-role .mobile-more-sheet{color:var(--gg-navy)}
@media(max-width:760px){.general-role .main-content{padding:16px 14px calc(96px + env(safe-area-inset-bottom))}.general-role .general-welcome{min-height:150px;padding-top:20px}.general-role .general-mascot-hello{width:205px;height:135px}.general-role .general-mascot-hello img{width:145px;height:145px}.general-role .general-mascot-hello span{font-size:12px}.general-role .safety-hero{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:18px}.general-role .safety-shield{width:58px;height:58px}.general-role .safety-hero h2{font-size:28px}.general-role .score-block{width:90px;height:90px;min-width:90px;border-width:7px}.general-role .score-block strong{font-size:29px}.general-role .safety-hero-link{display:none}.general-metric{padding:15px 13px}.general-metric-head{gap:6px;font-size:11px}.general-metric-icon{width:32px;height:32px}.general-metric strong{font-size:22px}.general-system-status article{min-height:104px;padding:15px}.general-role .general-plan,.general-recent{padding:17px}.general-role .general-plan-layout{grid-template-columns:minmax(0,1.25fr) minmax(150px,.75fr)}.general-role .general-plan-map{min-height:205px}.general-ai-card{grid-template-columns:84px minmax(0,1fr) auto}.ai-mascot{width:84px;height:98px}.ai-mascot img{width:98px;height:98px}}
@media(max-width:520px){.general-brand-mark{width:44px;height:44px}.general-brand strong{font-size:19px}.general-brand small{font-size:10px}.general-icon-button{width:44px;height:44px}.general-welcome{overflow:hidden}.general-welcome>div:first-child{position:relative;z-index:2;max-width:58%}.general-site-select{font-size:26px;white-space:nowrap}.general-mascot-hello{position:absolute;right:-30px;bottom:4px;width:205px!important;margin:0!important}.general-mascot-hello span{left:0;max-width:125px}.general-role .safety-hero{grid-template-columns:auto minmax(0,1fr) auto}.general-role .safety-shield{width:52px;height:52px}.general-role .safety-hero h2{font-size:25px}.general-role .safety-hero p:not(.section-label){font-size:12px}.general-role .safety-hero-copy .section-label{font-size:12px}.general-role .score-block{width:76px;height:76px;min-width:76px;border-width:6px}.general-role .score-block strong{font-size:25px}.general-role .score-block small{display:none}.general-metrics{gap:8px}.general-metric{padding:12px 10px}.general-metric-head{display:grid;grid-template-columns:auto 1fr}.general-metric strong{font-size:19px}.general-metric small{font-size:9px}.general-system-status{gap:8px}.general-system-status article{gap:9px;padding:13px 12px}.system-status-icon{width:34px;height:34px}.general-system-status strong{font-size:16px}.general-system-status article>i{top:21px;right:12px}.general-role .general-plan-layout{grid-template-columns:1fr}.general-role .general-plan-map{min-height:190px}.general-area-list{grid-template-columns:repeat(3,1fr);gap:6px}.general-area-item{display:block;padding:8px 0;border:0}.general-area-item>i{display:block;margin:0 0 5px}.general-area-item strong{font-size:12px}.general-area-item small{font-size:10px}.general-ai-card{grid-template-columns:70px minmax(0,1fr) auto;padding-right:13px}.ai-mascot{width:70px;height:88px}.ai-mascot img{width:88px;height:88px}.general-ai-card strong{font-size:17px}.general-ai-card b{font-size:12px}.general-ai-card small{font-size:10px}.general-event-row{grid-template-columns:43px 9px minmax(0,1fr);gap:8px}.general-event-row>small{display:none}.general-role .general-actions{gap:8px}.general-role .general-actions .button{font-size:14px}.general-role .general-plan-head h3,.general-section-head h3{font-size:17px}.general-section-link{padding:0 8px;font-size:12px}}
@media(max-width:374px){.general-brand small{display:none}.general-mascot-hello span{display:none}.general-mascot-hello{width:125px}.general-system-status{grid-template-columns:1fr}.general-metrics{grid-template-columns:1fr}.general-metric-head{display:flex}.general-spark{display:none}}
@media(min-width:761px){.general-role .mobile-navigation{display:grid;grid-template-columns:repeat(5,1fr);position:sticky;bottom:0;z-index:20;min-height:76px;padding:8px;border:1px solid var(--gg-line);background:oklch(.995 .003 250/.97);box-shadow:0 -8px 25px oklch(.3 .04 250/.08)}.general-role .mobile-nav-item{display:grid;place-items:center;min-height:58px;border:0;border-radius:12px;background:transparent;color:oklch(.5 .035 250);cursor:pointer}.general-role .general-landing{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){.general-role *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.general-brand-mark img{width:190%;height:190%;max-width:none;object-position:50% 5%;transform:translate(-23%,-3%)}
