.catalog-page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;box-sizing:border-box;font-size:calc(var(--portal-font-size)*.875);background:radial-gradient(ellipse at 50% 15%,#ffffff55,transparent 70%),var(--portal-background)}
.catalog-page>header{box-sizing:border-box;min-height:68px;gap:14px;padding:14px 28px;border-bottom-width:3px;box-shadow:0 3px 14px #17263e0b}
.catalog-page>header strong{font-size:calc(var(--portal-heading-size)*.75);font-weight:650;letter-spacing:.1px;overflow-wrap:anywhere}
.catalog-page .portal-logo{max-width:140px;max-height:40px}
.catalog-page #portal-identity{margin-left:auto;padding:5px 10px;max-width:36ch;border:1px solid #ffffff24;border-radius:7px;background:#ffffff0b;color:#e0e8f3;font-size:12px;overflow-wrap:anywhere}
.catalog-page #portal-identity:empty{display:none}
.catalog-page>header #portal-logout{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:6px 10px;border:1px solid #ffffff38;border-radius:8px;background:linear-gradient(#ffffff12,#ffffff04);color:#fff;font-size:12px;box-shadow:inset 0 1px #ffffff0d;white-space:nowrap}
.catalog-page>header #portal-logout:hover{background:#ffffff1c;border-color:#ffffff70}
.catalog-page #portal-logout svg,.catalog-page #portal-refresh svg{width:16px;height:16px;flex-shrink:0}
.catalog-page>main{box-sizing:border-box;width:calc(100% - 48px);max-width:1040px;margin:28px auto 24px;padding:24px;border:1px solid #ffffffb3;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 12px 36px #17263e0b,0 1px 3px #17263e06}
.catalog-page .catalog-heading-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.catalog-page #catalog-heading{font-size:calc(var(--portal-heading-size)*.86);font-weight:650;letter-spacing:-.5px;margin:0 0 6px;overflow-wrap:anywhere}
.catalog-page #catalog-message{font-size:.94em;line-height:1.5;color:#66758a;margin:0;overflow-wrap:anywhere}
.catalog-page #portal-refresh{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;min-height:34px;padding:7px 11px;border:1px solid #cbd5e2;border-radius:8px;background:linear-gradient(#fff,#f0f4f9);color:#46566d;font-size:12px;font-weight:600;box-shadow:inset 0 1px #fff,0 1px 2px #17263e06}
.catalog-page #portal-refresh:hover{border-color:#9faec2;background:linear-gradient(#fff,#e8eef6)}
.catalog-page #application-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,212px),1fr));gap:12px;margin:0;align-items:stretch}
.catalog-page .application-tile{box-sizing:border-box;display:flex;align-items:center;gap:12px;min-width:0;min-height:88px;margin:0;padding:14px;text-align:left;border:1px solid #dce3ed;border-radius:12px;background:linear-gradient(145deg,#fff,#f8fafd);color:#17263e;font-size:1em;font-weight:600;box-shadow:inset 0 1px #fff,0 2px 5px #17263e05;transition:border-color .15s,box-shadow .15s,background-color .15s}
.catalog-page .application-tile img{box-sizing:content-box;width:36px;height:36px;object-fit:contain;flex-shrink:0;padding:6px;border:1px solid #e6ebf2;border-radius:11px;background:linear-gradient(#fff,#f0f4fa);box-shadow:inset 0 1px #fff;image-rendering:auto}
.catalog-page .application-tile:not(:has(img))::before{content:"";box-sizing:content-box;width:36px;height:36px;flex-shrink:0;padding:6px;border:1px solid #e6ebf2;border-radius:11px;background:#f3f6fb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23758aa5' stroke-width='1.6'%3E%3Crect x='6' y='7' width='24' height='22' rx='4'/%3E%3Cpath d='M6 14h24M11 10.5h1m3 0h1'/%3E%3C/svg%3E") center/36px 36px no-repeat}
.catalog-page .application-tile span{min-width:0;line-height:1.4;overflow-wrap:anywhere}
.catalog-page .application-tile:hover:not(:disabled){border-color:var(--portal-accent);background:linear-gradient(145deg,#fff,#f2f6fb);box-shadow:0 4px 12px #17263e0c,inset 0 1px #fff}
.catalog-page .application-tile:disabled{cursor:progress;opacity:.65}
.catalog-page button:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px}
.catalog-page .catalog-caption{margin-top:18px;padding-top:14px;border-top:1px solid #e7ecf3}
.catalog-page #portal-status{margin:0;font-size:12px;line-height:1.6;color:#56677e;overflow-wrap:anywhere}
.catalog-page #portal-status button{margin:6px 0 0 8px;font-size:12px;padding:6px 9px;border-radius:7px;background:linear-gradient(#fff,#f0f4f9)}
.catalog-page .catalog-caption .intro{margin:5px 0 0;font-size:11px;line-height:1.6;color:#738198}
.catalog-footer{box-sizing:border-box;margin-top:auto;padding:14px 24px 20px;text-align:center;font-size:11px;line-height:1.7;color:#5c6c81}
.catalog-footer a,.catalog-footer a:visited,.catalog-footer a:hover,.catalog-footer a:active{color:inherit;text-decoration:none;font-weight:600}
.catalog-footer a:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;border-radius:2px}
@media(max-width:600px){.catalog-page>header{padding:12px 16px;gap:10px}.catalog-page #portal-identity{max-width:24ch}.catalog-page>main{width:calc(100% - 24px);margin-top:18px;padding:18px}.catalog-page .catalog-heading-bar{align-items:flex-start;gap:12px;margin-bottom:18px}.catalog-page #application-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:10px}.catalog-page .application-tile{padding:12px}.catalog-footer{font-size:10px;padding:10px 18px 16px}}
@media(max-width:400px){.catalog-page #portal-identity{order:4;margin-left:0;width:100%;max-width:none;font-size:11px}.catalog-page>header #portal-logout{margin-left:auto}.catalog-page #portal-refresh{width:34px;padding:7px}.catalog-page #portal-refresh span{display:none}}
@media(prefers-reduced-motion:reduce){.catalog-page .application-tile{transition:none}}
