:root{--color-primary: #0066cc;--color-primary-focus: #0071e3;--color-link: #0066cc;--color-on-primary: #ffffff;--color-text: #1d1d1f;--color-text-secondary: #333333;--color-text-tertiary: #7a7a7a;--color-canvas: #ffffff;--color-parchment: #f5f5f7;--color-surface: #f5f5f7;--color-surface-hover: #ebebf0;--color-surface-elevated: #ffffff;--color-nav: rgba(255, 255, 255, .8);--color-hairline: #e0e0e0;--color-divider-soft: #f0f0f0;--color-scrim: rgba(0, 0, 0, .45);--color-danger: #ff3b30;--color-success: #34c759;--color-warning: #ff9500;--space-xxs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-xxl: 32px;--space-xxxl: 48px;--space-huge: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-regular: 400;--font-semibold: 600;--font-bold: 700;--fs-title2: 40px;--fs-title3: 28px;--fs-headline: 20px;--fs-body: 17px;--fs-callout: 15px;--fs-caption: 13px;--fs-micro: 11px;--tracking-tight: -.015em;--duration: .2s;--ease: ease-out;--header-height: 52px;--category-nav-height: 44px;--footer-height: 36px;font-family:var(--font-family);font-size:var(--fs-body);line-height:1.47;font-weight:var(--font-regular);color-scheme:light dark;color:var(--color-text);background-color:var(--color-canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root{--color-link: #2997ff;--color-text: #ffffff;--color-text-secondary: #cccccc;--color-text-tertiary: #a1a1a6;--color-canvas: #000000;--color-parchment: #1d1d1f;--color-surface: #272729;--color-surface-hover: #333336;--color-surface-elevated: #2a2a2c;--color-nav: rgba(0, 0, 0, .8);--color-hairline: #424245;--color-divider-soft: #2a2a2c}}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-canvas);color:var(--color-text)}a{font-weight:var(--font-regular);color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);line-height:1.15}button{border:none;border-radius:var(--radius-pill);padding:var(--space-md) var(--space-xl);font-family:inherit;font-size:var(--fs-body);font-weight:var(--font-regular);line-height:1.2;background-color:var(--color-primary);color:var(--color-on-primary);cursor:pointer;transition:background-color var(--duration) var(--ease),transform var(--duration) var(--ease)}button:hover{background-color:var(--color-primary-focus)}button:active{transform:scale(.95)}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important}}#root{width:100%;min-height:100vh;margin:0;padding:calc(var(--header-height) + var(--category-nav-height) + var(--space-xl)) var(--space-xl) calc(var(--footer-height) + var(--space-xxxl));box-sizing:border-box;color:var(--color-text)}.header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--color-nav);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--color-hairline)}.header-bar{height:var(--header-height);padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--space-base);box-sizing:border-box}.category-nav{height:var(--category-nav-height);padding:0 var(--space-xl);display:flex;align-items:center;gap:var(--space-xs);overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--color-divider-soft);box-sizing:border-box}.category-nav::-webkit-scrollbar{display:none}.category-chip{flex-shrink:0;padding:var(--space-xs) var(--space-md);background:var(--color-parchment);color:var(--color-text);font-size:var(--fs-caption);white-space:nowrap}.category-chip:hover{background:var(--color-surface-hover)}.category-chip:active{transform:scale(.96)}.category-chip[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}.category-chip[aria-pressed=true]:hover{background:var(--color-primary-focus)}.header-left{display:flex;align-items:center;gap:var(--space-md);min-width:0}.header-logo{display:block;height:28px}.header .title-container{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.header h1{margin:0;font-size:var(--fs-callout);font-weight:var(--font-semibold);letter-spacing:normal;line-height:1.2;color:var(--color-text);white-space:nowrap}.header .subtitle{margin:0;font-size:var(--fs-caption);line-height:1.2;color:var(--color-text-tertiary);white-space:nowrap}.header-right{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.header-search{height:36px;width:300px;min-width:0;box-sizing:border-box;padding:0 var(--space-base);border-radius:var(--radius-pill);border:1px solid transparent;background:var(--color-parchment);color:var(--color-text);font-family:inherit;font-size:var(--fs-callout);transition:border-color var(--duration) var(--ease)}.header-search::placeholder{color:var(--color-text-tertiary)}.header-search:focus,.header-search:focus-visible{outline:none;border-color:var(--color-primary)}.icon-button{flex-shrink:0;width:32px;height:32px;padding:0;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;background:var(--color-parchment);color:var(--color-text-secondary);overflow:hidden;transition:background-color var(--duration) var(--ease),color var(--duration) var(--ease),transform var(--duration) var(--ease)}.icon-button:hover{background:var(--color-surface-hover);color:var(--color-primary);text-decoration:none}.icon-button:active{transform:scale(.95)}.header-user-icon-image{width:60%;height:60%;object-fit:contain;display:block}.header-upn{font-size:var(--fs-caption);color:var(--color-text-secondary);white-space:nowrap}@media(max-width:860px){.header .subtitle,.header-upn{display:none}}@media(max-width:640px){.header-bar,.category-nav{padding:0 var(--space-base)}.header .title-container{display:none}.header-right{flex:1;justify-content:flex-end}.header-search{flex:1;width:auto}}.footer-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;height:var(--footer-height);padding:0 var(--space-xl);display:flex;align-items:center;justify-content:center;background:var(--color-parchment);border-top:1px solid var(--color-hairline)}.footer-text{margin:0;font-size:var(--fs-caption);color:var(--color-text-tertiary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.maintenance-banner{display:flex;align-items:baseline;gap:var(--space-sm);margin:0 0 var(--space-xl);padding:var(--space-base) var(--space-lg);border-radius:var(--radius-lg);background:var(--color-parchment);color:var(--color-text);font-size:var(--fs-callout);line-height:1.4}.maintenance-banner:before{content:"";flex-shrink:0;width:8px;height:8px;border-radius:var(--radius-pill);background:var(--color-warning);transform:translateY(-1px)}.maintenance-banner strong{font-weight:var(--font-semibold)}.loading-text{margin:0;padding:var(--space-base) 0;color:var(--color-text-tertiary)}.empty-state{padding:var(--space-huge) var(--space-xl);text-align:center}.empty-state p{margin:0}.empty-state-title{font-size:var(--fs-headline);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.empty-state-text{margin-top:var(--space-xs);font-size:var(--fs-callout);color:var(--color-text-tertiary)}.section+.section{margin-top:var(--space-xxxl)}.section-title{margin:0 0 var(--space-base);font-size:var(--fs-title3);color:var(--color-text);text-align:left}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:var(--space-base)}.card{position:relative;display:flex;align-items:center;gap:var(--space-base);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-surface);box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration) var(--ease),transform var(--duration) var(--ease)}.card.enabled:hover{background:var(--color-surface-hover)}.card.enabled:active{transform:scale(.98)}.card:hover,.card:focus-visible{z-index:10}.card.disabled{cursor:not-allowed;opacity:.5}.card-image{flex-shrink:0;width:72px;height:72px;object-fit:contain}.card .text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xxs);min-width:0;overflow-wrap:anywhere}.card .text p{margin:0}.card .asset-tag{font-size:var(--fs-body);font-weight:var(--font-semibold);color:var(--color-text)}.card .model{font-size:var(--fs-callout);color:var(--color-text-secondary)}.card .category{margin-top:var(--space-xs);padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-canvas);font-size:var(--fs-caption);color:var(--color-text-secondary)}.card .status{padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-canvas);font-size:var(--fs-caption);font-weight:var(--font-semibold)}.card.enabled .status{color:var(--color-success)}.card.disabled .status{color:var(--color-text-tertiary)}.card-details{position:absolute;top:calc(100% + var(--space-sm));left:0;right:0;z-index:1;margin:0;padding:var(--space-base);display:grid;gap:var(--space-xs);border-radius:var(--radius-lg);border:1px solid var(--color-hairline);background:var(--color-surface-elevated);font-size:var(--fs-caption);pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease),visibility 0s linear var(--duration)}.card:hover .card-details,.card:focus-visible .card-details{opacity:1;visibility:visible;transform:none;transition:opacity var(--duration) var(--ease) .4s,transform var(--duration) var(--ease) .4s,visibility 0s linear .4s}.card-details div{display:flex;justify-content:space-between;gap:var(--space-md)}.card-details dt{flex-shrink:0;color:var(--color-text-tertiary)}.card-details dd{margin:0;color:var(--color-text);text-align:right;overflow-wrap:anywhere}.app-dialog{width:min(420px,calc(100vw - 2 * var(--space-xl)));padding:0;border:none;border-radius:var(--radius-lg);background:var(--color-surface-elevated);color:var(--color-text)}.app-dialog[open]{animation:dialog-in var(--duration) var(--ease)}.app-dialog::backdrop{background:#00000073}@keyframes dialog-in{0%{opacity:0;transform:scale(.97)}}.app-dialog-content{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-xl)}.app-dialog-title{margin:0;font-size:var(--fs-headline)}.dialog-list{margin:0;display:grid;gap:var(--space-md)}.dialog-list div{display:grid;gap:var(--space-xxs);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-divider-soft)}.dialog-list div:last-child{padding-bottom:0;border-bottom:none}.dialog-list dt{font-size:var(--fs-caption);color:var(--color-text-tertiary)}.dialog-list dd{margin:0;font-size:var(--fs-callout);overflow-wrap:anywhere}.app-dialog form{margin:0}.app-dialog form button{width:100%}.login-container{display:flex;align-items:center;justify-content:center;min-height:60vh}.login-box{width:100%;max-width:360px;box-sizing:border-box;padding:var(--space-xxxl) var(--space-xxl);border-radius:var(--radius-xl);background:var(--color-surface);text-align:center}.login-box h1{margin:0 0 var(--space-sm);font-size:var(--fs-title3);color:var(--color-text)}.login-box p{margin:0 0 var(--space-xl);font-size:var(--fs-body);color:var(--color-text-secondary)}.login-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.ms-logo{height:20px;width:auto}
