[hidden]{display:none!important}.portal{max-width:1180px;margin:auto;padding:32px}.portal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dfe4f0;padding-bottom:24px}.portal-header .brand{color:#20263b}.portal-header>div{display:flex;align-items:center;gap:18px}.portal button:not(.primary):not(.text-button){border:1px solid #dfe4f0;background:#fff;color:#365de5;border-radius:7px;padding:11px 16px}.portal button:disabled{opacity:.45;cursor:not-allowed}.role-chip{background:#eaf0ff;padding:8px 12px;border-radius:20px;font-size:11px;color:#365de5}.portal-kicker{font-size:9px;letter-spacing:2px;color:#727b94;margin:35px 0}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.portal .primary{width:auto;min-width:180px;display:inline-flex;gap:20px}.portal-notice{font-size:13px;line-height:1.8;padding:18px 22px;border:1px solid #dfe4f0;background:#eaf0ff;border-radius:10px;margin:25px 0}.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.program-card,.admin-box{background:#fff;border:1px solid #dfe4f0;padding:25px;border-radius:12px;margin:20px 0}.program-card h3,.admin-box h3{margin-top:12px}.program-card .hint{min-height:40px}.permission-options{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.permission-options label{display:flex;align-items:center;gap:8px;color:#536184}.permission-options input{width:17px;height:17px;accent-color:#365de5}.permissions-form{border-top:1px solid #dfe4f0;padding:15px 0}.admin-box>label{max-width:500px;margin:18px 0}.admin-box>label input{margin-top:9px;background:#f6f7fc}.demo-toolbar{display:flex;gap:10px;flex-wrap:wrap}.demo-map{margin:25px 0;min-height:300px;background:#f6f7fc;background-image:radial-gradient(#bcc7e2 1px,transparent 1px);background-size:18px 18px;display:flex;padding:40px;gap:25px}.demo-room{border:2px solid #bcc7e2;background:#eaf0ffb0;flex:1;padding:20px;font-size:13px;color:#536184}.demo-device{margin-top:40px;background:white;border:1px solid #bcc7e2;padding:15px;border-radius:8px;font-size:12px}.portal>.text-button{margin-top:12px}@media(max-width:700px){.portal{padding:20px}.portal-heading{align-items:flex-start;flex-direction:column}.portal-header .brand{font-size:22px}.demo-map{padding:20px;flex-direction:column}.portal-header>div{gap:8px}.portal-header button{font-size:11px}}
