*{box-sizing:border-box;margin:0;padding:0}:root{color:#1a1a1a;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;line-height:1.6}body{min-height:100vh}a{color:inherit}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.app-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.card{width:100%;max-width:28rem;background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:1.75rem;box-shadow:0 1px 2px #0000000a}.card h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.brand-logo{height:28px;width:auto;display:block}.card h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.subtitle{color:#555;margin-bottom:1.5rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.9rem;font-weight:600}.field input{border:1px solid #d0d0d0;border-radius:8px;padding:.65rem .75rem}.field input:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #1a1a1a;background:#1a1a1a;color:#fff;border-radius:8px;padding:.65rem 1rem;min-height:2.75rem}.btn:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.btn-secondary{background:#fff;color:#1a1a1a}.btn-block{width:100%}.actions-row{display:flex;gap:.75rem;flex-wrap:wrap}.status-message{margin-top:1rem;padding:.75rem;border-radius:8px;background:#f5f5f5;color:#333}.status-message.error{background:#fff1f0;color:#8a1f17}.status-message.success{background:#f0fff4;color:#1f6b3a}.pairing-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:2rem;letter-spacing:.2em;text-align:center;margin:1rem 0}.pairing-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.25rem;letter-spacing:.15em;text-align:center;text-transform:uppercase}.field-error{color:#8a1f17;font-size:.875rem}.panel-subtitle{margin-bottom:1rem}.mode-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.mode-tab{flex:1;border:1px solid #d0d0d0;background:#fff;color:#1a1a1a;border-radius:8px;padding:.55rem .75rem;min-height:2.5rem}.mode-tab.active{border-color:#1a1a1a;background:#1a1a1a;color:#fff}.mode-tab:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}[role=tabpanel][hidden]{display:none}.qr-wrap{display:flex;justify-content:center;margin:1rem 0}.qr-wrap img,.qr-wrap canvas{border:1px solid #e5e5e5;border-radius:8px;padding:.5rem;background:#fff}.meta-line{text-align:center;color:#555;margin-bottom:.75rem}.top-bar{display:flex;justify-content:flex-end;margin-bottom:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:480px){.card{padding:1.25rem}.pairing-code{font-size:1.5rem;letter-spacing:.12em}}.portal-shell{min-height:100vh;display:flex;flex-direction:column}.portal-loading{padding:1.5rem}.portal-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#fff;border-bottom:1px solid #e5e5e5}.portal-nav-brand{display:block;width:auto;height:auto;max-height:2.75rem;max-width:min(100%,11rem);object-fit:contain;object-position:left center;flex-shrink:0;align-self:center}.portal-nav-list{display:flex;gap:.25rem;list-style:none;overflow-x:auto}.portal-nav-link{display:block;padding:.5rem .75rem;border-radius:8px;color:#555;text-decoration:none;white-space:nowrap;font-size:.925rem}.portal-nav-link:hover{background:#f5f5f5}.portal-nav-link.active{background:#1a1a1a;color:#fff}.portal-nav-logout{min-height:2.25rem;padding:.5rem .9rem;white-space:nowrap}.portal-content{flex:1;padding:1.5rem;width:100%;max-width:56rem;margin:0 auto}.portal-page h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}.dashboard-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:1.25rem}.dashboard-card h2{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#555}.dashboard-card .value{font-size:1.1rem;font-weight:600}.dashboard-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.dashboard-actions .btn{text-decoration:none}.empty-state{color:#555}.simple-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;background:#f0f0f0;color:#555;margin-left:.4rem}.badge.coming-soon{background:#eef4fb;color:#3b5b7a}.status-badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;line-height:1.2;padding:.18rem .55rem;border-radius:999px;border:1px solid transparent;white-space:nowrap}.status-badge--success{background:#e7f3ea;color:#1f5c34;border-color:#c5dfcc}.status-badge--neutral{background:#f0f0f0;color:#555;border-color:#e0e0e0}.status-badge--info{background:#eef4fb;color:#3b5b7a;border-color:#d5e2f0}.status-badge--experimental{background:#f5eef8;color:#5b3d6e;border-color:#e2d4ea}.status-badge--planned{background:#eef4fb;color:#3b5b7a;border-color:#d5e2f0}.status-badge--warning{background:#f8f0e4;color:#7a5420;border-color:#ebd7b8}.status-badge--error{background:#f8eaea;color:#8a3030;border-color:#e8c8c8}.status-badge--pending{background:#f3f3f3;color:#666;border-color:#e4e4e4}.provider-accordion{list-style:none;border:1px solid #e5e5e5;border-radius:12px;background:#fff;overflow:hidden}.provider-accordion-header{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .65rem;padding:.85rem 1rem;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit}.provider-accordion-header:focus-visible{outline:2px solid #1a1a1a;outline-offset:-2px}.provider-accordion-chevron{color:#777;width:1rem;flex-shrink:0}.provider-accordion-title{font-weight:600;flex:1 1 auto;min-width:6rem}.provider-accordion-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-left:auto}.provider-accordion-secondary{margin:0;padding:0 1rem .75rem 2.1rem;color:#666;font-size:.85rem}.provider-accordion-panel{padding:0 1rem 1rem;border-top:1px solid #eee}.provider-accordion-panel[hidden]{display:none}.provider-accordion-panel .subtitle,.provider-accordion-panel .muted,.provider-accordion-panel .integration-warning{overflow-wrap:anywhere;word-break:break-word}.provider-body{display:flex;flex-direction:column;gap:.75rem;padding-top:.85rem}.device-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;margin:1rem 0 0}.device-card{border:1px solid #e5e5e5;border-radius:12px;background:#fff;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.55rem}.device-card-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:space-between}.device-card-title{font-weight:600}.device-card-meta{color:#555;font-size:.9rem;display:flex;flex-direction:column;gap:.2rem}.device-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.confirm-panel{border:1px solid #ebd7b8;background:#fbf7f0;border-radius:10px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.65rem}.confirm-panel p{margin:0;color:#5c4a2e;font-size:.9rem}.application-list{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-top:1rem}.application-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;border:1px solid #e5e5e5;border-radius:12px;background:#fff}.application-name{font-weight:600}.integration-row{display:flex;flex-direction:column;gap:.75rem}.integration-warning{margin-bottom:0;font-size:.9rem}.integration-form{display:flex;flex-direction:column;gap:.75rem;max-width:22rem}.integration-meta{display:flex;flex-direction:column;gap:.35rem}@media(min-width:768px){.portal-shell{flex-direction:row}.portal-nav{flex-direction:column;align-items:stretch;justify-content:flex-start;width:15rem;min-height:100vh;border-bottom:none;border-right:1px solid #e5e5e5;padding:1.5rem 1rem}.portal-nav-brand{width:100%;max-width:100%;max-height:none;height:auto;align-self:stretch;margin-bottom:1.5rem}.portal-nav-list{flex-direction:column;flex:1;overflow-x:visible}.portal-nav-logout{margin-top:1rem}.dashboard-grid{grid-template-columns:repeat(2,1fr)}}
