*{box-sizing:border-box}body{color:#14212b;background:#eef3f5;margin:0;font-family:Inter,Segoe UI,Microsoft YaHei,Arial,sans-serif}.center-screen,.login-page{background:#eef3f5;place-items:center;min-height:100vh;display:grid}.login-card{border:1px solid #d8e2e7;width:min(420px,100vw - 32px);box-shadow:0 12px 28px #20354314}.login-brand{text-align:center;margin-bottom:24px}.login-brand-logo{object-fit:contain;width:56px;height:56px;margin-bottom:12px}.login-brand-title{letter-spacing:0;color:#14212b!important;margin:0!important}.login-brand-subtitle{color:#354a58;letter-spacing:0;margin-top:4px;font-size:16px;font-weight:600;display:block}.login-brand-entry{margin:8px 0 0!important}.form-alert{margin-bottom:16px}.app-shell{min-height:100vh}.app-sider{border-right:1px solid #d8e2e7}.sider-brand{align-items:center;gap:10px;min-height:68px;padding:16px 18px 14px;display:flex}.sider-brand-logo{object-fit:contain;flex:none;width:36px;height:36px}.sider-brand-name{color:#14212b;letter-spacing:0;font-size:17px;font-weight:700;line-height:1.2}.sider-brand-subtitle{color:#5c7180;letter-spacing:0;margin-top:3px;font-size:12px;line-height:1.2}.app-header{background:#fff;border-bottom:1px solid #d8e2e7;justify-content:space-between;align-items:center;height:58px;padding:0 24px;display:flex}.app-content{padding:20px;overflow:auto}.mobile-nav-trigger{display:none}.page-stack,.full-width{width:100%}.page-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.filter-bar{gap:10px 0}.filter-bar .ant-input-search{width:360px}.image-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;display:grid}.image-tile{background:#fff;border:1px solid #d8e2e7;border-radius:6px;padding:8px}.image-object{object-fit:cover;border-radius:4px}.muted{color:#5c7180;font-size:12px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-box{background:#f8fbfc}.log-row{color:#354a58;border-bottom:1px solid #edf1f3;padding:6px 0}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (width<=900px){.app-sider{display:none}.mobile-nav-trigger{display:inline-flex}.app-header{padding:0 12px}.app-content{padding:12px}.page-title-row{flex-direction:column;align-items:flex-start}.filter-bar .ant-input-search{width:100%}.stat-row{grid-template-columns:1fr}}
