
:root{color-scheme:light;--bg:#f3f4f5;--panel:#fff;--text:#30363d;--muted:#626c76;--line:#d3d9df;--side:#272e35;--sideink:#e0e3e6;--accent:#ae5317;--logo:#e89a56;--button:#eceff1;--badge:#f8ede3}
:root[data-theme="dark"]{color-scheme:dark;--bg:#202326;--panel:#2b3035;--text:#f3f3f1;--muted:#bcbfc3;--line:#474d53;--side:#191d21;--accent:#e89a56;--button:#363d43;--badge:#413326}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 'Segoe UI',system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary,.admin-link{cursor:pointer;border:1px solid var(--line);border-radius:5px;padding:9px 12px;background:var(--panel);color:var(--text);text-decoration:none;font-size:13px}button:hover,summary:hover,.admin-link:hover{background:var(--button)}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.skip{position:fixed;left:20px;top:-90px;z-index:100;background:var(--panel);color:var(--text);padding:12px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--side);color:var(--sideink);padding:25px 18px 20px;border-right:1px solid #ffffff17;display:flex;flex-direction:column;overflow-y:auto;z-index:20}.brand{display:block;text-align:center;padding:10px 12px 19px;margin-bottom:23px;border:1px solid #ffffff22;border-radius:6px;text-decoration:none;color:var(--sideink)}.brand-logo{display:block;height:132px;color:var(--logo)}.brand-logo svg{height:100%;width:100%}.brand strong{display:block;font-size:24px;margin-top:9px}.brand small{font-size:10px;letter-spacing:1.6px;color:#bcc5cd}.nav-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aeb9c2;padding:0 13px;margin:27px 0 10px}.nav-item{display:block;border:0;border-radius:4px;padding:12px 14px;margin:4px 0;width:100%;text-align:left;background:transparent;color:var(--sideink);font-size:14px;text-decoration:none}.nav-item:hover{background:#ffffff10}.nav-item.active{background:#e89a5619;border-left:2px solid var(--logo);padding-left:12px}.sidebar-bottom{margin-top:auto;padding-top:35px}.sidebar-bottom small{display:block;margin:18px 14px 0;color:#aeb9c2;font-size:11px}.nav-close,#nav-toggle,.mobile-brand{display:none}
main{position:relative;isolation:isolate;margin-left:244px;padding:0 48px 35px;min-height:100vh}main:before{content:'';position:fixed;z-index:-1;pointer-events:none;right:4vw;bottom:4vh;width:min(42vw,530px);height:min(42vw,530px);background:center/contain no-repeat url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSItMTAuNjUgLTEwLjY1IDIxLjMgMjEuMyI+CiAgPGRlZnM+CiAgICA8bWFzayBpZD0icmUtZS1tYXNrIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItMSIgeT0iLTIiIHdpZHRoPSI1IiBoZWlnaHQ9IjYiPgogICAgICA8cmVjdCB4PSItMSIgeT0iLTIiIHdpZHRoPSI1IiBoZWlnaHQ9IjYiIGZpbGw9IiNmZmYiLz4KICAgICAgPHBhdGggZD0ibSAxLjA2ODA1MzUsMC40MTUxNjEyIC0wLjA2NTkyNiwwLjM3MDM3NjIgYyAwLjI2MzcwMjIsLTAuMDY1MzYgMC4zODQ1NjU2LC0wLjA4NzE0OCAwLjcwMzIwMjksLTAuMTg1MTg4IDAuNDE3NTI4LC0wLjExOTgyOCAwLjYxNTMwNDgsLTAuMzE1OTA4MSAwLjYxNTMwNDgsLTAuNjMxODIwMyAwLC0wLjE4NTE5MiAtMC4xNjQ4MTQsLTAuMzA1MDIwMSAtMC40NTA0OTEsLTAuMzA1MDIwMSAtMC41NjAzNjQ1LDAgLTAuNzI1MTc3OSwwLjMxNTkxMjEgLTAuODAyMDkwNywwLjc1MTY1MjIgeiIgZmlsbD0iIzAwMCIvPgogICAgPC9tYXNrPgogIDwvZGVmcz4KICA8ZyBmaWxsPSIjZTg5YTU2IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI2U4OWE1NiIKICAgICBzdHJva2Utd2lkdGg9Ii4xMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgIDxwYXRoIGQ9Im0gOS45OTk5OTk3LC0xLjIzNDM3MzggYyAwLC0wLjA5NjQ3NyAtMC4wNjg4OCwtMC4xNzkxOTY2IC0wLjE2Mzc2OCwtMC4xOTY2NzQ2IEwgNy40NjUwNDAyLC0xLjg2NzgwMSBjIC0wLjA2NjY4LC0wLjAxMjI4MiAtMC4xMjI1OTgsLTAuMDU3NTEgLTAuMTQ4NTQ0LC0wLjEyMDE0MyBMIDYuNTc4NjUwNiwtMy43NjkwNzg3IGMgLTAuMDI1OTQ2LC0wLjA2MjYzNCAtMC4wMTg0LC0wLjEzNDE0NiAwLjAyMDA3NCwtMC4xODk5OCBMIDcuOTY2NTQ3NywtNS45NDQ0MDMgYyAwLjA1NDc0LC0wLjA3OTQ1IDAuMDQ0OTQsLTAuMTg2NjQgLTAuMDIzMjgsLTAuMjU0ODU3IEwgNi4xOTg4NjcyLC03Ljk0MzQ3NyBjIC0wLjA2ODIyNCwtMC4wNjgyMiAtMC4xNzU0MjgsLTAuMDc4MDEgLTAuMjU0ODgyOCwtMC4wMjMyOCBMIDMuOTU4NDM1LC02LjU5OTA3NCBjIC0wLjA1NTgzNiwwLjAzODQ2IC0wLjEyNzM1NiwwLjA0NjAxIC0wLjE4OTk5OCwwLjAyMDA3IEwgMS45ODcxMTksLTcuMzE2NzcyIEMgMS45MjQ0NzYsLTcuMzQyNzIyIDEuODc5MjQ2LC03LjM5ODYzMiAxLjg2Njk2NSwtNy40NjUzMDQgTCAxLjQzMDE2NjMsLTkuODM2MjUgQyAxLjQxMjY4ODMsLTkuOTMxMTMgMS4zMjk5NTg1LC0xMCAxLjIzMzQ3NTksLTEwIGggLTIuNDY2OTUzOCBjIC0wLjA5NjQ4MywwIC0wLjE3OTIxMjIsMC4wNjg4NyAtMC4xOTY2OTA2LDAuMTYzNzUgbCAtMC40MzY3OTg1LDIuMzcwOTQ3IGMgLTAuMDEyMjgyLDAuMDY2NjcgLTAuMDU3NTEyLDAuMTIyNTg2IC0wLjEyMDE1NDIsMC4xNDg1MzIgbCAtMS43ODEzMTksMC43Mzc3NjggYyAtMC4wNjI2NCwwLjAyNTk1IC0wLjEzNDE2MiwwLjAxODQgLTAuMTg5OTk4LC0wLjAyMDA3IGwgLTEuOTg1NTQ4MiwtMS4zNjc2ODQgYyAtMC4wNzk0NTQsLTAuMDU0NzMgLTAuMTg2NjYsLTAuMDQ0OTQgLTAuMjU0ODgzLDAuMDIzMjggbCAtMS43NDQzOTgsMS43NDQyMTkgYyAtMC4wNjgyMjQsMC4wNjgyMiAtMC4wNzgwMTYsMC4xNzU0MDggLTAuMDIzMjg0LDAuMjU0ODU2IGwgMS4zNjc4MjM2LDEuOTg1MzQ0NSBjIDAuMDM4NDY0LDAuMDU1ODM0IDAuMDQ2MDIsMC4xMjczNDYgMC4wMjAwNzQsMC4xODk5OCBsIC0wLjczNzg0NSwxLjc4MTEzNDcgYyAtMC4wMjU5NSwwLjA2MjYzMyAtMC4wODE4NjQsMC4xMDc4NjAyIC0wLjE0ODU0NCwwLjEyMDE0MyBMIC05LjgzNjIzNCwtMS40MzEwNDcyIEMgLTkuOTMxMTIsLTEuNDEzNTY5MiAtMTAsLTEuMzMwODUwMiAtMTAsLTEuMjM0MzcyNiB2IDIuNDY2Njk2MSBjIDAsMC4wOTY0NzMgMC4wNjg4OCwwLjE3OTE5MjQgMC4xNjM3NjYsMC4xOTY2NzA4IGwgMi4zNzExOTEyLDAuNDM2NzUyNSBjIDAuMDY2NjgsMC4wMTIyODIgMC4xMjI1OTQsMC4wNTc1MSAwLjE0ODU0NCwwLjEyMDE0MjggbCAwLjczNzg0NjYsMS43ODExMzQ1IGMgMC4wMjU5NDgsMC4wNjI2MzQgMC4wMTg0LDAuMTM0MTUgLTAuMDIwMDc0LDAuMTg5OTggbCAtMS4zNjc4MjM2LDEuOTg1MzQyOCBjIC0wLjA1NDczNCwwLjA3OTQ0OCAtMC4wNDQ5NCwwLjE4NjY0IDAuMDIzMjg0LDAuMjU0ODU2NCBsIDEuNzQ0Mzk4LDEuNzQ0MjIyOCBjIDAuMDY4MjI0LDAuMDY4MjE2IDAuMTc1NDI4LDAuMDc4MDA4IDAuMjU0ODgyNiwwLjAyMzI3OCBMIC0zLjk1ODQzNiw2LjU5NzAyMDcgYyAwLjA1NTgzNiwtMC4wMzg0NiAwLjEyNzM1NiwtMC4wNDYwMiAwLjE4OTk5OCwtMC4wMjAwNzQgbCAwLjcwNTg4MzEsMC4yOTIzNiBjIDAuMTAyMDUsMC4wNDIyNjQgMC4yMTkwNDQ4LC0wLjAwNjIgMC4yNjEzMTMyLC0wLjEwODIzMiBsIDAuNDI5ODM4NCwtMS4wMzc2MTk4IGMgMC4wNDEzMSwtMC4wOTk3MTggLTAuMDAzOTgsLTAuMjE0MjIxNCAtMC4xMDIzMTgsLTAuMjU4NzIgQyAtNS4wNDg0NTA4LDQuMjk5Njk3NSAtNi40NjEwNjIsMS40OTYwMDU3IC01Ljg2NTAzNSwtMS4yNjU4OTg0IEMgLTUuMjY5MDE0OCwtNC4wMjc3NjY3IC0yLjgyNjAyNTMsLTUuOTk4NzY0IC0xZS02LC01Ljk5ODc2NCBjIDIuODI2MDIzOCwwIDUuMjY5MDEzNCwxLjk3MDk5NzMgNS44NjUwMzM2LDQuNzMyODY1NiAwLjU5NjAyNywyLjc2MTkwNDEgLTAuODE2NTg0Miw1LjU2NTU5NTkgLTMuMzkxMzEyOCw2LjczMDYzMzMgLTAuMDk4MzQ0LDAuMDQ0NSAtMC4xNDM2MjgsMC4xNTkwMDIgLTAuMTAyMzE4LDAuMjU4NzIgTCAyLjgwMTI0Miw2Ljc2MTA3NDMgYyAwLjA0MjI2OCwwLjEwMjA0IDAuMTU5MjYyLDAuMTUwNDk2IDAuMjYxMzEyNCwwLjEwODIzMiBsIDAuNzA1ODgzOCwtMC4yOTIzNiBjIDAuMDYyNjQsLTAuMDI1OTQ2IDAuMTM0MTYyLC0wLjAxODM4IDAuMTg5OTk4LDAuMDIwMDc0IGwgMS45ODU1NDk0LDEuMzY3NjgzNCBjIDAuMDc5NDU0LDAuMDU0NzMgMC4xODY2NTgsMC4wNDQ5NCAwLjI1NDg4MjgsLTAuMDIzMjc4IEwgNy45NDMyNjc3LDYuMTk3MjAzMyBjIDAuMDY4MjIsLTAuMDY4MjE2IDAuMDc4MDIsLTAuMTc1NDEgMC4wMjMyOCwtMC4yNTQ4NTY0IEwgNi41OTg3MjUsMy45NTcwMDIxIEMgNi41NjAyNTksMy45MDExNzIxIDYuNTUyNzAzLDMuODI5NjU2MSA2LjU3ODY1MSwzLjc2NzAyMjEgTCA3LjMxNjQ5NywxLjk4NTg4NzkgQyA3LjM0MjQ0MywxLjkyMzI1NDkgNy4zOTgzNTksMS44NzgwMjc3IDcuNDY1MDQxLDEuODY1NzQ0OSBMIDkuODM2MjMyNywxLjQyODk5MyBDIDkuOTMxMTIyNywxLjQxMTUxNSAxMC4wMDAwMDEsMS4zMjg3OTYgMTAuMDAwMDAxLDEuMjMyMzIyMiBaIi8+CiAgICA8cGF0aCBkPSJtIC0wLjA5OTU0MzEsLTIuNjEzMzQ5MyAtMC4wMjE5NzUsLTEuMzgzNDY4NiBjIC0wLjQ2MTQ3ODcsMC4xOTYwODQgLTAuODc5MDA3MSwwLjQxMzk1MjQgLTEuMzk1NDIxOCwwLjcxODk2ODIgbCAwLjAzMjk2MywtMC43MTg5NjgyIC0xLjM2MjQ1OTQsMC4yMjg3NjQyIC0wLjkxMTk2NzUsNS4xNzQzOTM3IGggMS41NDkyNDc5IGwgMC41NjAzNjUyLC0zLjEyNjQyNSBjIDAuNjE1MzA0OCwtMC4zODEyNjgxIDAuODY4MDE2NiwtMC41MjI4ODQzIDEuNTQ5MjQ3NiwtMC44OTMyNjQzIHoiLz4KICAgIDxwYXRoIG1hc2s9InVybCgjcmUtZS1tYXNrKSIgZD0ibSAtMC43NDMyOTIzLDEuOTc3MDQ4MiBjIC0wLjA0Mzk1MSwwLjIyODc2NDEgLTAuMDY1OTI2LDAuNDQ2NjMyMSAtMC4wNjU5MjYsMC42NDI3MTYzIDAsMC45MDQxNTY0IDAuNDcyNDY0NCwxLjM4MzQ2OSAxLjU4MjIwODYsMS4zODM0NjkgMC45NDQ5MzAxLDAgMS45NjY3NzM5LC0wLjMyNjgwMDYgMi42MTUwNDIxLC0wLjcyOTg2MDYgTCAzLjA5MTM2NzgsMi4xODQwMjQzIGMgLTAuNzI1MTc5NiwwLjMxNTkxMiAtMS41MzgyNjA2LDAuNTg4MjQ4MiAtMi4wOTg2MjU3LDAuNTg4MjQ4MiAtMC4yODU2NzY5LDAgLTAuMzA3NjUyMiwtMC4xNzQyOTIgLTAuMjc0Njg5OSwtMC4zNzAzNzYyIEwgMC43ODM5NzgyLDIuMDMxNTE2MSBDIDEuMjQ1NDU2OSwxLjkxMTY4ODIgMS4yNTY0NDQ2LDEuOTExNjg4MiAxLjkwNDcxMDUsMS43MTU2MDgxIDMuMjIzMjE5MSwxLjMyMzQ0NCAzLjc2MTYwODUsMC44NDQxMjc5IDMuNzYxNjA4NSwtMC4xOTA3NDg1IGMgMCwtMC44OTMyNjQzIC0wLjc2OTEyOTIsLTEuMzI5MDA0NSAtMS43Nzk5ODUsLTEuMzI5MDA0NSAtMS42OTIwODQzLDAgLTIuMjQxNDYzNCwwLjc4NDMzMjMgLTIuNDYxMjE1NiwyLjAwNDQwMDcgeiIvPgogIDwvZz4KPC9zdmc+Cg==");opacity:.10}:root[data-theme="dark"] main:before{opacity:.13}.top{min-height:86px;display:flex;gap:18px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.breadcrumb{font-size:13px;color:var(--muted)}.actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.account-label{font-size:12px;color:var(--muted);overflow-wrap:anywhere;max-width:250px}.actions details{position:relative}summary{list-style:none;white-space:nowrap}summary::-webkit-details-marker{display:none}.menu{position:absolute;right:0;top:45px;z-index:30;width:260px;border:1px solid var(--line);border-radius:6px;padding:7px;background:var(--panel);box-shadow:0 8px 30px #0002}.menu a{display:block;padding:10px;color:var(--text);text-decoration:none;border-radius:4px;font-size:13px}.menu a:hover{background:var(--button)}
.welcome{padding:30px 0 22px}h1{font-size:30px;line-height:1.25;letter-spacing:-.6px;margin:0 0 8px}.welcome p{font-size:14px;margin:0;color:var(--muted)}.notice{color:var(--muted)}.notice:empty{display:none}#tool-search{width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--text);margin-bottom:12px}.section-label{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);margin:0 0 13px}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.app-card{position:relative;display:flex;flex-direction:column;padding:25px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:6px;min-height:270px;background:var(--panel);color:var(--text);text-decoration:none}.app-card:hover{border-color:var(--accent)}.app-icon{height:62px;width:62px;margin-bottom:21px}.app-icon img{height:100%;width:100%;object-fit:contain;border-radius:8px}.app-icon-fallback{display:grid;place-items:center;color:var(--accent);background:var(--button);font-size:24px;border-radius:6px}.app-card h2{font-size:21px;line-height:1.3;margin:0 0 9px;letter-spacing:-.2px}.app-card p{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 24px}.badge{position:absolute;right:20px;top:25px;color:var(--accent);background:var(--badge);padding:4px 8px;font-size:10px;border-radius:4px}.app-button{margin-top:auto;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;align-items:center;width:100%;font-size:13px;font-weight:600;color:var(--accent)}footer{font-size:11px;color:var(--muted);margin-top:34px}.portal-locked .app-grid,.portal-locked #group-nav{visibility:hidden;pointer-events:none}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;width:min(520px,calc(100% - 32px));padding:26px;max-height:90dvh}dialog::backdrop{background:#0008}dialog h2{font-size:23px;margin:0 0 10px}dialog p{font-size:13px;color:var(--muted)}dialog label{display:block;margin:15px 0 6px;font-size:13px}dialog input,dialog select,dialog textarea{width:100%;padding:10px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:4px}dialog textarea{resize:vertical}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}#feedback-send{background:var(--accent);color:var(--panel);font-weight:600}button:disabled{opacity:.55;cursor:default}.nav-backdrop{position:fixed;inset:0;background:#0007;z-index:15}
@media(min-width:1500px){main{padding-left:65px;padding-right:65px}.app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.sidebar{width:218px}main{margin-left:218px;padding-left:28px;padding-right:28px}.brand-logo{height:115px}.top{align-items:center;gap:10px}.breadcrumb{display:none}.actions{width:100%}.account-label{max-width:180px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);width:270px;max-width:85vw}.sidebar.open{transform:translateX(0)}.nav-close{display:block;margin-bottom:14px;color:var(--sideink);background:transparent;border-color:#ffffff33}main{margin:0;padding:0 25px 30px}.top{min-height:76px;gap:12px}.mobile-brand{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:650;white-space:nowrap}.mobile-brand span{height:36px;width:36px;color:var(--logo)}.mobile-brand svg{width:100%;height:100%}#nav-toggle{display:block}.actions{width:auto;margin-left:auto}.account-label{flex-basis:100%;text-align:right;max-width:none}.brand-logo{height:110px}}
@media(max-width:520px){main{padding:0 20px 28px}.top{padding:12px 0;flex-wrap:wrap;gap:10px}.mobile-brand{font-size:16px}.actions{gap:6px}.actions button,.actions summary,.admin-link{font-size:12px;padding:8px}.account-label{font-size:11px}.actions:has(.account-label:not([hidden])){width:100%}.welcome{padding:25px 0 20px}h1{font-size:27px}.welcome p{font-size:13px}.app-grid{grid-template-columns:1fr;gap:15px}.app-card{min-height:235px;padding:21px}.app-icon{height:52px;width:52px;margin-bottom:17px}.app-card h2{font-size:20px}.badge{right:17px;top:22px}.menu{max-width:calc(100vw - 40px)}main:before{width:75vw;height:75vw;right:-12vw;bottom:5vh}}
@media(prefers-reduced-motion:no-preference){.sidebar{transition:transform .15s ease}}

.app-card h2 .tile-version{display:block;font-size:12px;line-height:1.4;font-weight:400;letter-spacing:normal;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
