.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--mhs-red);color:var(--mhs-white);min-height:56px;position:sticky;top:0;z-index:100}.header__left{display:flex;align-items:center}.header__brand{display:flex;align-items:center;gap:var(--space-sm);color:var(--mhs-white);text-decoration:none}.header__logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--mhs-white);padding:2px;object-fit:contain}.header__title{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;white-space:nowrap}.header__right{display:flex;align-items:center;gap:var(--space-md);font-size:.875rem;flex-wrap:wrap;justify-content:flex-end}.header__link{color:var(--mhs-white);opacity:.85;font-weight:600;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:opacity .15s,background .15s}.header__link:hover{opacity:1;background:#ffffff1a}.header__link.active{opacity:1;background:#ffffff26}.header__user{opacity:.8;display:none}@media(min-width:640px){.header__user{display:inline}}.header__logout{background:#ffffff26;color:var(--mhs-white);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;transition:background .15s}.header__logout:hover{background:#ffffff40}.layout__main{max-width:1200px;margin:0 auto;padding:var(--space-xl) var(--space-md)}@media(max-width:600px){.layout__main{padding:var(--space-lg) var(--space-md)}}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-md);background:var(--mhs-bg)}.login__card{background:var(--mhs-white);border-radius:var(--radius-lg);box-shadow:0 2px 12px #00000014;padding:var(--space-xl);max-width:400px;width:100%;text-align:center}.login__logo{width:72px;height:72px;object-fit:contain;margin:0 auto var(--space-md);display:block}.login__title{font-family:var(--font-heading);color:var(--mhs-blue);font-size:1.75rem;margin-bottom:var(--space-xs)}.login__subtitle{color:var(--mhs-grey);font-size:.875rem;margin-bottom:var(--space-lg)}.login__error{background:var(--color-error-bg);color:var(--color-error);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:var(--space-md)}.login__sso{width:100%;background:var(--mhs-red);color:var(--mhs-white);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:1rem;font-weight:700;transition:background .15s}.login__sso:hover{background:var(--mhs-red-dark)}.login__divider{position:relative;margin:var(--space-lg) 0;height:1px;background:var(--mhs-grey-light)}.login__divider span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--mhs-white);padding:0 var(--space-sm);color:var(--mhs-grey);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.login__dev{width:100%;background:var(--mhs-grey-light);color:var(--mhs-blue-dark);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;transition:background .15s}.login__dev:hover{background:var(--mhs-grey);color:var(--mhs-white)}.login__dev-note{color:var(--mhs-grey);font-size:.75rem;margin-top:var(--space-sm)}.toast{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:200;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:600;font-size:.875rem;max-width:90vw;text-align:center;transition:opacity .3s,transform .3s}.toast--success{background:var(--color-success-bg);color:var(--color-success)}.toast--error{background:var(--color-error-bg);color:var(--color-error)}.toast--warning{background:var(--color-warning-bg);color:var(--color-warning)}.toast--show{opacity:1;transform:translate(-50%) translateY(0)}.toast--hide{opacity:0;transform:translate(-50%) translateY(-10px)}.launcher__welcome{margin-bottom:var(--space-xl)}.launcher__title{font-family:var(--font-heading);color:var(--mhs-blue);font-size:2rem;margin-bottom:var(--space-xs)}.launcher__subtitle{color:var(--mhs-grey);font-size:.95rem}.launcher__section{margin-bottom:var(--space-xl)}.launcher__section-title{font-family:var(--font-heading);color:var(--mhs-blue);font-size:1.25rem;margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--mhs-grey-light)}.launcher__grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.launcher__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.launcher__grid{grid-template-columns:repeat(3,1fr)}}.launcher__card{display:flex;flex-direction:column;background:var(--mhs-white);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000f;overflow:hidden;border-left:4px solid var(--mhs-red)}.launcher__card--muted{border-left-color:var(--mhs-grey-light);opacity:.92}.launcher__card-body{padding:var(--space-md) var(--space-md) var(--space-sm);flex:1}.launcher__card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.launcher__card-title{font-family:var(--font-heading);color:var(--mhs-blue);font-size:1.125rem;margin-bottom:var(--space-xs)}.launcher__card-header .launcher__card-title{margin-bottom:0}.launcher__card-header .launcher__badge{flex-shrink:0}.launcher__card-desc{color:#555;font-size:.875rem;margin-bottom:var(--space-sm)}.launcher__card-meta{display:flex;gap:var(--space-xs);flex-wrap:wrap}.launcher__badge{display:inline-block;padding:2px 8px;background:var(--mhs-bg);color:var(--mhs-blue);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;border-radius:var(--radius-sm)}.launcher__badge--external{background:var(--color-warning-bg);color:var(--color-warning)}.launcher__launch,.launcher__request{width:100%;padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:700;color:var(--mhs-white);border-radius:0;transition:background .15s}.launcher__launch{background:var(--mhs-blue)}.launcher__launch:hover:not(:disabled){background:var(--mhs-blue-dark)}.launcher__request{background:var(--mhs-grey)}.launcher__request:hover:not(:disabled){background:var(--mhs-blue)}.launcher__launch:disabled,.launcher__request:disabled{opacity:.6;cursor:not-allowed}.launcher__pending{display:block;text-align:center;padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:600;color:var(--color-warning);background:var(--color-warning-bg)}.launcher__empty{background:var(--mhs-white);border-radius:var(--radius-md);padding:var(--space-xl);text-align:center;color:var(--mhs-grey)}.admin__title{font-family:var(--font-heading);color:var(--mhs-blue);font-size:1.75rem;margin-bottom:var(--space-lg)}.admin__subtitle{font-family:var(--font-heading);color:var(--mhs-blue);font-size:1.125rem;margin:var(--space-lg) 0 var(--space-sm)}.admin__card{background:var(--mhs-white);border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000f;padding:var(--space-md);margin-bottom:var(--space-md)}.admin__table{width:100%;border-collapse:collapse;background:var(--mhs-white);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 2px 8px #0000000f;font-size:.875rem}.admin__table th,.admin__table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--mhs-grey-light);vertical-align:top}.admin__table th{background:var(--mhs-bg);font-weight:600;color:#555;text-transform:uppercase;font-size:.75rem;letter-spacing:.03em}.admin__table tr:last-child td{border-bottom:none}.admin__chip{display:inline-block;padding:2px 8px;margin:1px;background:var(--mhs-bg);color:var(--mhs-blue);font-size:.75rem;font-weight:600;border-radius:var(--radius-sm)}.admin__chip--manual{background:var(--color-warning-bg);color:var(--color-warning)}.admin__chip--admin{background:var(--mhs-red);color:var(--mhs-white)}.admin__btn{background:var(--mhs-blue);color:var(--mhs-white);padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);transition:background .15s}.admin__btn:hover:not(:disabled){background:var(--mhs-blue-dark)}.admin__btn:disabled{opacity:.6;cursor:not-allowed}.admin__btn--danger{background:var(--mhs-red)}.admin__btn--danger:hover:not(:disabled){background:var(--mhs-red-dark)}.admin__btn--ghost{background:transparent;color:var(--mhs-blue);border:1px solid var(--mhs-grey-light)}.admin__btn--ghost:hover:not(:disabled){background:var(--mhs-bg)}.admin__input{padding:var(--space-xs) var(--space-sm);border:1px solid var(--mhs-grey-light);border-radius:var(--radius-sm);font-size:.875rem;width:100%;background:var(--mhs-white)}.admin__input:focus{outline:none;border-color:var(--mhs-blue);box-shadow:0 0 0 2px #23346a26}.admin__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.admin__empty{background:var(--mhs-white);border-radius:var(--radius-md);padding:var(--space-xl);text-align:center;color:var(--mhs-grey)}.admin__loading{padding:var(--space-lg);text-align:center;color:var(--mhs-grey)}.admin__error{background:var(--color-error-bg);color:var(--color-error);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-md);font-size:.875rem}:root{--mhs-red: #e13a3e;--mhs-red-dark: #c4292d;--mhs-blue: #23346a;--mhs-blue-dark: #1a2750;--mhs-white: #ffffff;--mhs-grey: #a7a9ac;--mhs-grey-light: #d1d3d4;--mhs-bg: #f4f5f7;--color-success: #2e7d32;--color-success-bg: #e8f5e9;--color-warning: #f57c00;--color-warning-bg: #fff3e0;--color-error: #e13a3e;--color-error-bg: #fce4ec;--font-heading: "Orpheus Pro", Georgia, "Times New Roman", serif;--font-body: "Franklin Gothic Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 50%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background:var(--mhs-bg);color:#1a1a1a;line-height:1.5;min-height:100dvh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2}a{color:var(--mhs-blue);text-decoration:none}button{font-family:var(--font-body);cursor:pointer;border:none;font-size:1rem}input,select,textarea{font-family:var(--font-body);font-size:1rem}
