:root{font-family:Segoe UI,Arial,sans-serif;background:#f4f6f8;color:#20242a;color-scheme:light dark}body{margin:0;background:#f4f6f8}header{background:#fff;border-bottom:1px solid #d8dee8;padding:14px 24px}.head{display:flex;align-items:center;justify-content:space-between;gap:16px}.left{display:flex;align-items:center;gap:22px;min-width:0}h1{font-size:21px;margin:0}nav{display:flex;gap:13px;flex-wrap:wrap}a{color:#1768bc;text-decoration:none;font-weight:650;font-size:13px}main{width:min(1540px,calc(100% - 28px));margin:auto;padding:20px 0 32px}.toolbar,.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar{justify-content:space-between;margin-bottom:14px}.band{background:#fff;border-top:1px solid #d8dee8;border-bottom:1px solid #d8dee8;padding:14px;margin-bottom:14px}.band h2{font-size:16px;margin:0 0 10px}.muted{color:#687486;font-size:12px}.status{border:1px solid #d8dee8;background:#fff;padding:10px;margin-top:14px;white-space:pre-wrap}.error{color:#9b2424}.ok{color:#216337}button,input,select,textarea{font:inherit}button{min-height:34px;border:1px solid #1768bc;background:#1768bc;color:#fff;border-radius:6px;padding:0 11px;font-weight:650;cursor:pointer}button.secondary{background:#fff;color:#283445;border-color:#c5cedb}button.danger{background:#a62d2d;border-color:#a62d2d}button:disabled{opacity:.55;cursor:wait}input,select,textarea{border:1px solid #cbd3df;border-radius:6px;background:#fff;color:#20242a;padding:8px}input{min-width:230px}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{text-align:left;padding:9px;border-bottom:1px solid #e0e5ed;vertical-align:top}th{background:#f7f9fc}.table{overflow:auto;border:1px solid #d8dee8}.tag{display:inline-block;border:1px solid #cbd3df;border-radius:999px;padding:2px 7px;font-size:11px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9aa4b2;margin-right:6px}.dot.on{background:#2da44e}.permissions{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:14px}.permission-list{max-height:480px;overflow:auto;border:1px solid #d8dee8;background:#fff}.permission{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #e3e8f0}.request-highlight{outline:2px solid #1768bc;outline-offset:-2px;background:#eef6ff}.permission:last-child{border-bottom:0}@media(max-width:800px){.head,.left{align-items:flex-start;flex-direction:column}.permissions{grid-template-columns:1fr}main{width:calc(100% - 16px)}input{min-width:0;width:100%}}@media(prefers-color-scheme:dark){:root,body{background:#14171c;color:#edf1f6}header,.band,.status,table,.permission-list{background:#1e232b;border-color:#343c49}th{background:#252b35}th,td,.permission{border-color:#343c49}input,select,textarea,button.secondary{background:#171c23;color:#edf1f6;border-color:#465365}.muted{color:#aab4c3}.request-highlight{background:#19324d;outline-color:#6bb6ff}}:root{--app-shell-sidebar: 248px;--app-shell-sidebar-collapsed: 64px;--app-shell-header-height: 64px;--app-shell-border: #d7dde6;--app-shell-muted: #667386;--app-shell-text: #202832;--app-shell-surface: #ffffff;--app-shell-subtle: #f4f6f8;--app-shell-hover: #eef3f8;--app-shell-success: #2d9d50;--app-shell-danger: #c84a4a}*{box-sizing:border-box}html{min-width:320px;background:var(--app-shell-subtle)}body{min-width:320px!important;min-height:100vh!important;margin:0!important;padding:0!important;overflow-x:hidden;background:var(--app-shell-subtle)!important}.app-shell[hidden],.app-shell [hidden]{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--app-shell-sidebar) minmax(0,1fr);color:var(--app-shell-text);font-family:Segoe UI,Arial,sans-serif;letter-spacing:0}.app-shell-sidebar{position:sticky;top:0;z-index:60;display:flex;min-width:0;height:100vh;flex-direction:column;overflow:hidden;border-right:1px solid var(--app-shell-border);background:#18202a;color:#f5f7fa}.app-shell-brand-row{display:flex;min-height:var(--app-shell-header-height);align-items:center;gap:8px;border-bottom:1px solid #303b48;padding:8px}.app-shell-brand{display:flex;min-width:0;flex:1;align-items:center;gap:10px;color:#fff!important;text-decoration:none!important}.app-shell-logo{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid #5b92c4;border-radius:6px;background:#1768b7;color:#fff;font-size:14px;font-weight:750}.app-shell-brand-name{overflow:hidden;color:#fff;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.app-shell button,.app-shell select{font:inherit;letter-spacing:0}.app-shell-icon-button{display:inline-grid!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;flex:0 0 34px;place-items:center;border:1px solid var(--app-shell-border)!important;border-radius:6px!important;background:var(--app-shell-surface)!important;color:var(--app-shell-text)!important;padding:0!important;font-size:18px!important;line-height:1!important;cursor:pointer}.app-shell-icon-button:hover{background:var(--app-shell-hover)!important}.app-shell-collapse-button{border-color:#3e4b5b!important;background:#222d39!important;color:#dce4ed!important}.app-shell-collapse-button:hover{background:#2d3a48!important}.app-shell-navigation{display:block!important;min-width:0;flex:1;overflow-x:hidden;overflow-y:auto;padding:10px 8px}.app-shell-nav-group{display:grid;gap:2px;margin-bottom:14px}.app-shell-nav-heading{display:block;overflow:hidden;padding:5px 8px;color:#91a0b2;font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap}.app-shell-nav-link{display:flex!important;min-width:0;min-height:38px;align-items:center;gap:10px;border-radius:6px;color:#d7dee7!important;padding:5px 8px!important;font-size:13px!important;font-weight:600!important;text-decoration:none!important}.app-shell-nav-link:hover{background:#25313e;color:#fff!important}.app-shell-nav-link.active{background:#164f82;color:#fff!important}.app-shell-nav-icon{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:1px solid #465568;border-radius:5px;color:#bfcad7;font-size:10px;font-weight:750}.app-shell-nav-link.active .app-shell-nav-icon{border-color:#74a9d8;color:#fff}.app-shell-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell-sidebar-footer{display:flex;min-height:46px;align-items:center;gap:9px;border-top:1px solid #303b48;padding:8px 14px;color:#acb7c5;font-size:12px;white-space:nowrap}.app-shell-mode-dot,.app-shell-state-dot,.app-shell-account-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#9aa4b2}.app-shell-mode-dot.local{background:#e1a93d}.app-shell-mode-dot.production{background:#3aa85d}.app-shell.is-collapsed{grid-template-columns:var(--app-shell-sidebar-collapsed) minmax(0,1fr)}.app-shell.is-collapsed .app-shell-brand-name,.app-shell.is-collapsed .app-shell-nav-heading,.app-shell.is-collapsed .app-shell-nav-label,.app-shell.is-collapsed .app-shell-footer-label{display:none}.app-shell.is-collapsed .app-shell-brand-row{justify-content:center;padding-inline:6px}.app-shell.is-collapsed .app-shell-brand{flex:0 0 36px}.app-shell.is-collapsed .app-shell-collapse-button{position:absolute;top:54px;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;transform:rotate(180deg)}.app-shell.is-collapsed .app-shell-navigation{padding-top:28px;padding-inline:6px}.app-shell.is-collapsed .app-shell-nav-group{margin-bottom:8px}.app-shell.is-collapsed .app-shell-nav-link{justify-content:center;padding-inline:6px!important}.app-shell.is-collapsed .app-shell-sidebar-footer{justify-content:center;padding-inline:0}.app-shell-workspace{min-width:0}.app-shell-header{position:sticky;top:0;z-index:50;display:flex!important;min-height:var(--app-shell-header-height);align-items:center;justify-content:space-between;gap:18px;border:0!important;border-bottom:1px solid var(--app-shell-border)!important;background:#fffffffa!important;padding:8px 18px!important}.app-shell-title-area,.app-shell-header-actions,.app-shell-revit,.app-shell-account-trigger{display:flex;align-items:center}.app-shell-title-area{min-width:0;gap:10px}.app-shell-page-heading{min-width:0}.app-shell-section{display:block;margin-bottom:1px;color:var(--app-shell-muted);font-size:10px;font-weight:700;text-transform:uppercase}.app-shell-page-heading h1{overflow:hidden;margin:0!important;color:var(--app-shell-text)!important;font-size:19px!important;font-weight:700!important;line-height:1.2!important;text-overflow:ellipsis;white-space:nowrap}.app-shell-mobile-menu{display:none!important}.app-shell-header-actions{min-width:0;justify-content:flex-end;gap:10px}.app-shell-language{display:flex;align-items:center;gap:6px;color:var(--app-shell-muted);font-size:11px;font-weight:650;white-space:nowrap}#appShellLanguage,#appShellChannel{width:62px!important;height:34px!important;min-height:34px!important;border:1px solid var(--app-shell-border)!important;border-radius:6px!important;background:var(--app-shell-surface)!important;color:var(--app-shell-text)!important;padding:0 0 0 8px!important;font-size:12px!important}#appShellChannel{width:104px!important;max-width:104px}.app-shell-revit{min-width:0;gap:8px;border-right:1px solid var(--app-shell-border);padding-right:10px}.app-shell-state-dot.connected{background:var(--app-shell-success)}.app-shell-state-dot.error{background:var(--app-shell-danger)}.app-shell-revit-state{max-width:170px;overflow:hidden;color:var(--app-shell-muted);font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}#appShellRevitSelect{width:min(310px,25vw)!important;min-width:180px!important;height:34px!important;min-height:34px!important;border:1px solid var(--app-shell-border)!important;border-radius:6px!important;background:var(--app-shell-surface)!important;color:var(--app-shell-text)!important;padding:0 28px 0 9px!important;font-size:12px!important}.app-shell-account{position:relative;min-width:0}.app-shell-account-trigger{min-width:190px!important;max-width:280px;min-height:42px!important;gap:8px;border:1px solid transparent!important;border-radius:6px!important;background:transparent!important;color:var(--app-shell-text)!important;padding:3px 7px!important;text-align:left;cursor:pointer}.app-shell-account-trigger:hover,.app-shell-account-trigger[aria-expanded=true]{border-color:var(--app-shell-border)!important;background:var(--app-shell-hover)!important}.app-shell-account-dot.signed-in{background:var(--app-shell-success)}.app-shell-account-copy{display:grid;min-width:0;flex:1;gap:1px}.app-shell-account-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#appShellAccountLabel{font-size:12px;font-weight:700}#appShellPcLabel{color:var(--app-shell-muted);font-size:10px}.app-shell-caret{color:var(--app-shell-muted);font-size:11px}.app-shell-account-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:80;width:280px;overflow:hidden;border:1px solid var(--app-shell-border);border-radius:7px;background:var(--app-shell-surface);box-shadow:0 12px 28px #16202c2e;padding:6px}.app-shell-menu-summary{display:grid;gap:3px;border-bottom:1px solid var(--app-shell-border);margin-bottom:5px;padding:7px 8px 10px}.app-shell-menu-summary strong,.app-shell-menu-summary span{overflow-wrap:anywhere}.app-shell-menu-summary strong{font-size:13px}.app-shell-menu-summary span{color:var(--app-shell-muted);font-size:11px}.app-shell-menu-link,.app-shell-menu-button{display:flex!important;width:100%!important;min-height:34px!important;align-items:center;border:0!important;border-radius:5px!important;background:transparent!important;color:var(--app-shell-text)!important;padding:6px 8px!important;font-size:12px!important;font-weight:600!important;text-align:left;text-decoration:none!important;cursor:pointer}.app-shell-menu-link:hover,.app-shell-menu-button:hover{background:var(--app-shell-hover)!important}.app-shell-menu-button.danger{color:#a52f2f!important}.app-shell-content{min-width:0;min-height:calc(100vh - var(--app-shell-header-height))}.app-shell-content>header{display:none!important}.app-shell-content>.app>header .header-left{display:none!important}.app-shell-content>.app>header{min-height:44px!important;height:auto!important;justify-content:flex-end!important;border-top:0!important;padding:5px 12px!important}.app-shell-content>.app{height:calc(100vh - var(--app-shell-header-height))!important}.app-shell-content #revitStatusButton,.app-shell-content .app-shell-duplicate-control,.app-shell[data-route="/"] .app-shell-content #accountState,.app-shell[data-route="/"] .app-shell-content .heading-row h1,.app-shell[data-route="/"] .app-shell-content .actions a[href="/account/manage"],.app-shell[data-route="/"] .app-shell-content .actions a[href="/admin"],.app-shell[data-route="/"] .app-shell-content .actions a[href="/users"],.app-shell[data-route="/admin"] .app-shell-content #authPanel,.app-shell[data-route="/admin"] .app-shell-content #checkSessionButton,.app-shell[data-route="/admin"] .app-shell-content #signOutButton,.app-shell[data-route="/admin"] .app-shell-content a.nav-link{display:none!important}.app-shell-backdrop{display:none}@media(max-width:1180px){.app-shell-revit-state{display:none}#appShellRevitSelect{width:min(250px,25vw)!important;min-width:150px!important}.app-shell-account-trigger{min-width:170px!important;max-width:220px}}@media(max-width:980px){.app-shell-content>.app{height:auto!important;min-height:calc(100vh - var(--app-shell-header-height))}}@media(max-width:860px){:root{--app-shell-header-height: 58px}.app-shell,.app-shell.is-collapsed{display:block}.app-shell-sidebar{position:fixed;left:0;transform:translate(-100%);width:min(290px,calc(100vw - 48px));transition:transform .16s ease}.app-shell.is-nav-open .app-shell-sidebar{transform:translate(0)}.app-shell.is-collapsed .app-shell-brand-name,.app-shell.is-collapsed .app-shell-nav-label,.app-shell.is-collapsed .app-shell-footer-label{display:initial}.app-shell.is-collapsed .app-shell-nav-heading{display:block}.app-shell.is-collapsed .app-shell-brand-row{justify-content:initial;padding:8px}.app-shell.is-collapsed .app-shell-brand{flex:1}.app-shell.is-collapsed .app-shell-collapse-button{position:static;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;transform:none}.app-shell.is-collapsed .app-shell-navigation{padding:10px 8px}.app-shell.is-collapsed .app-shell-nav-group{margin-bottom:14px}.app-shell.is-collapsed .app-shell-nav-link{justify-content:initial;padding:5px 8px!important}.app-shell.is-collapsed .app-shell-sidebar-footer{justify-content:initial;padding:8px 14px}.app-shell-mobile-menu{display:inline-grid!important}.app-shell-collapse-button{display:none!important}.app-shell-header{padding-inline:10px!important}.app-shell-page-heading h1{font-size:17px!important}.app-shell-section{display:none}.app-shell-revit{border-right:0;padding-right:0}#appShellRevitSelect{width:min(220px,32vw)!important;min-width:130px!important}.app-shell-account-trigger{min-width:42px!important;width:42px!important;padding-inline:8px!important}.app-shell-account-copy,.app-shell-caret{display:none}.app-shell-account-menu{right:0;width:min(280px,calc(100vw - 20px))}.app-shell-backdrop{position:fixed;inset:0;z-index:55;display:block;border:0;background:#11192385;padding:0}}@media(max-width:600px){:root{--app-shell-header-height: 96px}.app-shell-header{align-items:center;gap:6px;flex-wrap:wrap}.app-shell-title-area{flex:1 0 100%}.app-shell-page-heading h1{max-width:calc(100vw - 70px)}.app-shell-header-actions{gap:4px;width:100%;justify-content:space-between}#appShellChannel{width:84px!important;max-width:84px}.app-shell-language{gap:0}.app-shell-language span{display:none}.app-shell-revit{gap:4px}.app-shell-revit .app-shell-state-dot{display:none}#appShellRevitSelect{width:min(150px,36vw)!important;min-width:90px!important}#appShellRevitRefresh{display:none!important}.app-shell-content>.app{height:auto!important;min-height:calc(100vh - var(--app-shell-header-height))}}@media(prefers-color-scheme:dark){:root{--app-shell-border: #394451;--app-shell-muted: #a9b4c2;--app-shell-text: #eef2f6;--app-shell-surface: #1d232b;--app-shell-subtle: #14181d;--app-shell-hover: #2a333e}html,body{background:var(--app-shell-subtle)!important}.app-shell-header{background:#1d232bfa!important}.app-shell-account-menu{box-shadow:0 12px 28px #0000006b}.app-shell-menu-button.danger{color:#f2abab!important}}
