:root{--colorBackground:#eef1f3;--colorSurface:#fff;--colorSurfaceSunken:#f6f8f9;--colorBorder:#cbd3da;--colorBorderStrong:#7d8995;--colorText:#15212b;--colorTextSecondary:#556472;--colorAccent:#136f63;--colorAccentHover:#0e5a50;--colorAccentText:#fff;--colorDanger:#b42318;--colorWarning:#b54708;--colorSuccess:#067647;--colorInfo:#1d5fc2;--colorFocus:#1d5fc2;--colorDisabled:#9aa6b1;--colorDisabledSurface:#e3e8ec;--colorSelected:#ddefea;--fontPlate:"Bahnschrift", "DIN Alternate", "Segoe UI Variable Display", "Segoe UI", "Malgun Gothic", sans-serif;--fontSans:"Segoe UI Variable Text", "Segoe UI", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;--fontMono:"Cascadia Mono", "Consolas", "SF Mono", "Menlo", monospace;--textXs:12px;--textSm:13px;--textMd:15px;--textLg:18px;--textXl:24px;--textPlate:88px;--textPlateSub:32px;--space1:4px;--space2:8px;--space3:12px;--space4:16px;--space5:20px;--space6:24px;--space8:32px;--space10:40px;--space12:48px;--space16:64px;--radiusCard:8px;--radiusControl:8px;--shadowFloat:0 12px 32px #15212b2e;--controlHeight:44px;--controlHeightCompact:36px;--layerToast:80;--layerModal:70;--rootWidth:1680px;--rootWidthPhone:390px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--colorBackground);color:var(--colorText);font-family:var(--fontSans);font-size:var(--textMd);line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--colorAccent)}:focus-visible{outline:2px solid var(--colorFocus);outline-offset:2px}.productRoot{background:var(--colorBackground);flex-direction:column;min-height:100dvh;display:flex}.siteHeader{height:64px;padding:0 var(--space12);border-bottom:1px solid var(--colorBorder);background:var(--colorSurface);justify-content:space-between;align-items:center;display:flex}.wordmark{align-items:baseline;gap:var(--space2);color:var(--colorText);text-decoration:none;display:flex}.wordmarkBrand{font-family:var(--fontPlate);font-weight:700;font-size:var(--textLg);letter-spacing:.01em}.wordmarkProduct{font-family:var(--fontPlate);font-stretch:87.5%;font-size:var(--textLg);color:var(--colorAccent)}.siteHeaderLink{color:var(--colorTextSecondary);font-size:var(--textSm);padding:var(--space3) 0;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.siteHeaderLink:hover{color:var(--colorText);text-decoration:underline}.publicApp{column-gap:var(--space16);padding:var(--space12) var(--space12) var(--space16);grid-template-columns:minmax(0,880px) 400px;align-items:start;display:grid}.appTitle{align-items:center;gap:var(--space4);margin:0 0 var(--space2);display:flex}.appIcon{object-fit:cover;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.appIconLg{width:56px;height:56px}.appIconSm{border-radius:8px;width:32px;height:32px}.appIconFallback{background:var(--colorSelected);color:var(--colorAccent);font-family:var(--fontPlate);font-weight:700;font-size:var(--textXl)}.appIconSm.appIconFallback{font-size:var(--textMd)}.appName{font-size:var(--textXl);margin:0;font-weight:600}.appSummary{margin:0 0 var(--space8);padding-left:calc(56px + var(--space4));color:var(--colorTextSecondary);max-width:64ch}.releasePlate{background:var(--colorSurface);border:1px solid var(--colorBorder);border-top:6px solid var(--colorAccent);border-radius:var(--radiusCard);padding:var(--space8) var(--space10) var(--space8)}.plateVersion{align-items:baseline;column-gap:var(--space4);font-family:var(--fontPlate);letter-spacing:-.01em;flex-wrap:wrap;margin:0;font-weight:600;font-stretch:87.5%;line-height:.95;display:flex}.plateVersionMain{font-size:var(--textPlate)}.plateVersionBuild{font-size:var(--textPlateSub);color:var(--colorTextSecondary);font-weight:500}.plateMeta{margin:var(--space3) 0 var(--space8);color:var(--colorTextSecondary);font-size:var(--textSm)}.downloadList{gap:var(--space3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.downloadButton{column-gap:var(--space3);min-width:280px;min-height:64px;padding:var(--space3) var(--space5);border-radius:var(--radiusControl);border:1px solid var(--colorAccent);background:var(--colorSurface);color:var(--colorAccent);grid-template-columns:24px auto;align-items:center;text-decoration:none;display:grid}.downloadButton:hover{background:var(--colorSelected)}.downloadButtonPrimary{background:var(--colorAccent);color:var(--colorAccentText)}.downloadButtonPrimary:hover{background:var(--colorAccentHover)}.downloadButtonIcon{grid-row:1/span 2;width:24px;height:24px}.downloadButtonLabel{font-weight:600;font-size:var(--textMd);line-height:1.3}.downloadButtonFile{font-size:var(--textXs);opacity:.85;line-height:1.3}.checksumList{margin:var(--space8) 0 0;padding:var(--space5) 0 0;border-top:1px dashed var(--colorBorder);gap:var(--space3);display:grid}.checksumRow{row-gap:var(--space1);display:grid}.checksumValueRow{justify-content:space-between;align-items:center;gap:var(--space4);margin:0;display:flex}.checksumPlatform{font-size:var(--textXs);color:var(--colorTextSecondary)}.checksumValue{font-family:var(--fontMono);font-size:var(--textSm);column-gap:var(--space2);word-break:break-all;flex-wrap:wrap;flex:1;margin:0;display:flex}.checksumGroup:nth-child(odd){color:var(--colorText)}.checksumGroup:nth-child(2n){color:var(--colorTextSecondary)}.button{justify-content:center;align-items:center;gap:var(--space2);height:var(--controlHeight);min-width:44px;padding:0 var(--space4);border-radius:var(--radiusControl);border:1px solid var(--colorBorder);background:var(--colorSurface);cursor:pointer;white-space:nowrap;color:var(--colorText);text-decoration:none;display:inline-flex}.button:hover{border-color:var(--colorBorderStrong)}.buttonCompact{height:var(--controlHeightCompact);padding:0 var(--space3);font-size:var(--textSm)}.buttonPrimary{background:var(--colorAccent);border-color:var(--colorAccent);color:var(--colorAccentText)}.buttonPrimary:hover{background:var(--colorAccentHover)}.buttonDanger{color:var(--colorDanger);border-color:var(--colorDanger)}.button:disabled{background:var(--colorDisabledSurface);border-color:var(--colorDisabledSurface);color:var(--colorDisabled);cursor:not-allowed}.iconSm{width:16px;height:16px}.releaseNotes{margin-top:var(--space10);max-width:72ch}.sectionTitle{font-size:var(--textLg);margin:0 0 var(--space3);font-weight:600}.releaseNotes ul{padding-left:var(--space5);margin:0}.releaseNotes li+li{margin-top:var(--space1)}.versionLedger{border-left:1px solid var(--colorBorder);padding-left:var(--space8)}.ledgerList{margin:0;padding:0;list-style:none}.ledgerItem{padding:var(--space4) 0;border-bottom:1px solid var(--colorBorder)}.ledgerItem:first-child{padding-top:0}.ledgerHead{justify-content:space-between;align-items:baseline;gap:var(--space3);display:flex}.ledgerVersion{font-family:var(--fontPlate);font-stretch:87.5%;font-size:var(--textLg);font-weight:600}.ledgerDate{color:var(--colorTextSecondary);font-size:var(--textSm)}.ledgerLinks{gap:var(--space1) var(--space4);margin-top:var(--space1);font-size:var(--textSm);flex-wrap:wrap;display:flex}.ledgerLinks a{align-items:center;min-height:44px;display:inline-flex}.latestTag{font-size:var(--textXs);color:var(--colorAccent);border:1px solid var(--colorAccent);padding:0 var(--space1);margin-left:var(--space2);border-radius:4px}.statePanel{padding:var(--space16) var(--space12);max-width:720px}.statePanelTitle{font-size:var(--textXl);margin:0 0 var(--space2);font-weight:600}.statePanelText{margin:0 0 var(--space6);color:var(--colorTextSecondary)}.skeleton{background:var(--colorDisabledSurface);border-radius:4px}.skeletonPlate{width:420px;height:84px}.skeletonLine{width:280px;height:16px;margin-top:var(--space4)}.skeletonButtons{gap:var(--space3);margin-top:var(--space8);display:flex}.skeletonButton{width:280px;height:64px}.visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.toastStack{z-index:var(--layerToast);gap:var(--space2);flex-direction:column;width:360px;display:flex;position:fixed}.toastStackInfo{right:var(--space6);bottom:var(--space6)}.toastStackAlert{left:var(--space6);top:var(--space6)}.toast{column-gap:var(--space3);padding:var(--space3) var(--space2) var(--space3) var(--space4);background:var(--colorSurface);border:1px solid var(--colorBorder);border-left:4px solid var(--colorInfo);border-radius:var(--radiusCard);box-shadow:var(--shadowFloat);grid-template-columns:20px minmax(0,1fr) 32px;align-items:center;display:grid}.toastError{border-left-color:var(--colorDanger)}.toastSuccess{border-left-color:var(--colorSuccess)}.toastClose{cursor:pointer;width:32px;height:32px;color:var(--colorTextSecondary);background:0 0;border:0;border-radius:6px}.toastClose:hover{background:var(--colorSurfaceSunken)}.publicHome{padding:var(--space12);max-width:1040px}.pageTitle{font-size:var(--textXl);margin:0 0 var(--space6);font-weight:600}.appRowList{border-top:1px solid var(--colorBorder);margin:0;padding:0;list-style:none}.appRow{border-bottom:1px solid var(--colorBorder)}.appRowLink{column-gap:var(--space4);padding:var(--space5) var(--space2);color:var(--colorText);grid-template-columns:56px minmax(0,1fr) auto;align-items:center;text-decoration:none;display:grid}.appRowLink:hover{background:var(--colorSurface)}.appRowName{font-weight:600;font-size:var(--textLg)}.appRowDesc{color:var(--colorTextSecondary);font-size:var(--textSm)}.appRowVersion{font-family:var(--fontPlate);font-stretch:87.5%;font-size:var(--textLg);color:var(--colorAccent);font-weight:600}.appRowVersionNone{font-size:var(--textSm);color:var(--colorTextSecondary)}.loginPage{padding:var(--space12);flex:1;justify-content:center;align-items:center;display:flex}.loginPanel{background:var(--colorSurface);border:1px solid var(--colorBorder);border-top:6px solid var(--colorAccent);border-radius:var(--radiusCard);width:400px;padding:var(--space10) var(--space8)}.loginTitle{font-size:var(--textXl);margin:var(--space6) 0;font-weight:600}.loginButton{width:100%}.loginNote{margin:var(--space4) 0 0;font-size:var(--textSm);color:var(--colorTextSecondary)}.consoleHeader{align-items:center;gap:var(--space6);height:64px;padding:0 var(--space12);background:var(--colorSurface);border-bottom:1px solid var(--colorBorder);display:flex}.consoleBadge{font-size:var(--textXs);color:var(--colorTextSecondary);border:1px solid var(--colorBorder);padding:0 var(--space2);border-radius:4px}.consoleUser{align-items:center;gap:var(--space4);font-size:var(--textSm);margin-left:auto;display:flex}.consoleRole{color:var(--colorTextSecondary)}.consoleMain{padding:var(--space10) var(--space12) var(--space16)}.breadcrumb{align-items:center;gap:var(--space2);font-size:var(--textSm);color:var(--colorTextSecondary);margin:0 0 var(--space2);display:flex}.breadcrumbItem{align-items:center;gap:var(--space2);display:inline-flex}.breadcrumbLink{min-width:44px;min-height:44px;color:var(--colorTextSecondary);justify-content:center;align-items:center;display:inline-flex}.pageHead{align-items:center;gap:var(--space4);margin:0 0 var(--space6);display:flex}.pageHead .pageTitle{margin:0}.pageHeadActions{gap:var(--space3);align-items:center;margin-left:auto;display:flex}.disabledReason{font-size:var(--textSm);color:var(--colorTextSecondary)}.dataTable{border-collapse:separate;border-spacing:0;background:var(--colorSurface);border:1px solid var(--colorBorder);border-radius:var(--radiusCard);width:100%}.dataTable th{text-align:left;font-weight:600;font-size:var(--textSm);color:var(--colorTextSecondary);padding:var(--space3) var(--space4);border-bottom:1px solid var(--colorBorder);background:var(--colorSurfaceSunken)}.dataTable td{padding:var(--space3) var(--space4);border-bottom:1px solid var(--colorBorder);vertical-align:middle}.dataTable tbody tr:last-child td{border-bottom:0}.dataTable tbody tr:hover td{background:var(--colorSurfaceSunken)}.dataTable .cellNum{text-align:right;font-variant-numeric:tabular-nums}.dataTable .cellActions{white-space:nowrap;text-align:right;width:1%}.cellApp{align-items:center;gap:var(--space3);color:var(--colorText);min-height:44px;text-decoration:none;display:flex}.cellApp:hover .cellAppName{text-decoration:underline}.cellAppName{font-weight:600}.cellAppSlug{color:var(--colorTextSecondary);font-size:var(--textSm)}.cellVersion{font-family:var(--fontPlate);font-weight:600;font-stretch:87.5%;font-size:var(--textMd)}.emptyRow{text-align:center;color:var(--colorTextSecondary);padding:var(--space10) var(--space4)}.status{height:24px;padding:0 var(--space2);font-size:var(--textXs);white-space:nowrap;border:1px solid;border-radius:4px;align-items:center;font-weight:600;display:inline-flex}.statusActive,.statusPublished{color:var(--colorSuccess)}.statusDraft{color:var(--colorInfo)}.statusArchived,.statusWithdrawn{color:var(--colorTextSecondary)}.statusDeleted{color:var(--colorDanger)}.statusUploading{color:var(--colorWarning)}.panel{background:var(--colorSurface);border:1px solid var(--colorBorder);border-radius:var(--radiusCard);padding:var(--space6)}.panelStack{gap:var(--space6);display:grid}.panelTitle{font-size:var(--textLg);margin:0 0 var(--space4);font-weight:600}.panelText{margin:0 0 var(--space4);color:var(--colorTextSecondary);font-size:var(--textSm)}.detailGrid{gap:var(--space6);grid-template-columns:minmax(0,1fr) 440px;align-items:start;display:grid}.field{gap:var(--space1);margin-bottom:var(--space4);display:grid}.fieldLabel{font-size:var(--textSm);font-weight:600}.fieldHint{font-size:var(--textXs);color:var(--colorTextSecondary)}.input,.textarea,.select{width:100%;min-height:var(--controlHeight);padding:var(--space2) var(--space3);border:1px solid var(--colorBorderStrong);border-radius:var(--radiusControl);background:var(--colorSurface)}.textarea{resize:vertical;min-height:120px;line-height:1.5}.input:disabled,.textarea:disabled{background:var(--colorDisabledSurface);color:var(--colorTextSecondary)}.input:focus,.textarea:focus,.select:focus{border-color:var(--colorFocus);box-shadow:inset 0 0 0 1px var(--colorFocus);outline:none}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true],.input[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus,.select[aria-invalid=true]:focus{border-color:var(--colorDanger);box-shadow:inset 0 0 0 1px var(--colorDanger)}.fieldControl{position:relative}.fieldTip{left:0;top:calc(100% + var(--space1));z-index:1;max-width:360px;padding:var(--space2) var(--space3);background:var(--colorText);color:var(--colorSurface);font-size:var(--textXs);border-radius:6px;line-height:1.4;display:none;position:absolute}.fieldControl:hover .fieldTip,.fieldControl:focus-within .fieldTip{display:block}.inputMono{font-family:var(--fontMono)}.iconPicker{align-items:center;gap:var(--space3);display:flex}.iconPreview{display:inline-flex}.iconPreview[aria-busy=true]{opacity:.5}.formActions{justify-content:flex-end;gap:var(--space3);margin-top:var(--space2);display:flex}.artifactTable td{vertical-align:top}.artifactFile{gap:var(--space1);display:grid}.artifactName{overflow-wrap:anywhere;font-weight:600}.artifactMeta{font-size:var(--textXs);color:var(--colorTextSecondary)}.artifactHash{font-family:var(--fontMono);font-size:var(--textXs);color:var(--colorTextSecondary);word-break:break-all}.progress{gap:var(--space1);min-width:240px;display:grid}.progressBar{appearance:none;background:var(--colorDisabledSurface);width:100%;height:8px;color:var(--colorAccent);border:0;border-radius:4px;overflow:hidden}.progressBar::-webkit-progress-bar{background:var(--colorDisabledSurface);border-radius:4px}.progressBar::-webkit-progress-value{background:var(--colorAccent);border-radius:4px}.progressBar::-moz-progress-bar{background:var(--colorAccent);border-radius:4px}.progressBarWarn::-webkit-progress-value{background:var(--colorWarning)}.progressBarWarn::-moz-progress-bar{background:var(--colorWarning)}.progressText{font-size:var(--textXs);color:var(--colorTextSecondary)}.progressError{font-size:var(--textXs);color:var(--colorDanger)}.rowActions{gap:var(--space2);justify-content:flex-end;display:flex}.addArtifact{gap:var(--space3);margin-top:var(--space4);align-items:center;display:flex}.addArtifact .select{width:260px}.publishBar{align-items:center;gap:var(--space4);margin-top:var(--space6);padding-top:var(--space6);border-top:1px solid var(--colorBorder);display:flex}.publishBar .disabledReason{margin-right:auto}.pageTitleVersion{font-family:var(--fontPlate);font-stretch:87.5%;font-size:var(--textXl);margin:0;font-weight:600}.versionInput{font-family:var(--fontPlate);font-stretch:87.5%;font-size:var(--textXl);font-weight:600}.modalBackdrop{z-index:var(--layerModal);background:#15212b73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--colorSurface);border-radius:var(--radiusCard);width:520px;max-width:calc(100vw - 32px);box-shadow:var(--shadowFloat);padding:var(--space6)}.modalTitle{font-size:var(--textLg);margin:0 0 var(--space3);font-weight:600}.modalText{margin:0 0 var(--space4)}.modalList{margin:0 0 var(--space4);padding-left:var(--space5);color:var(--colorTextSecondary);font-size:var(--textSm)}@media (width<=640px){.siteHeader{padding:0 var(--space4)}.publicApp{padding:var(--space6) var(--space4) var(--space12);row-gap:var(--space10);grid-template-columns:minmax(0,1fr)}.releasePlate{padding:var(--space6) var(--space5)}.plateVersionMain{font-size:56px}.plateVersionBuild{font-size:var(--textXl)}.downloadButton{width:100%;min-width:0}.downloadList{flex-direction:column}.versionLedger{border-left:0;border-top:1px solid var(--colorBorder);padding-left:0;padding-top:var(--space6)}.statePanel{padding:var(--space10) var(--space4)}.publicHome{padding:var(--space6) var(--space4)}.appRowLink{row-gap:var(--space1);grid-template-columns:56px minmax(0,1fr)}.appRowVersion,.appRowVersionNone{grid-column:2}.loginPage{padding:var(--space6) var(--space4)}.loginPanel{width:100%;padding:var(--space8) var(--space5)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
