.platform-page { min-height: 100vh; padding: 28px; background: var(--tiku-page); color: var(--tiku-text); } .platform-shell { display: flex; flex-direction: column; gap: 26px; } .platform-header { position: relative; overflow: hidden; padding: 30px; border-radius: 30px; background: linear-gradient(135deg, #0f172a, #1152d4 62%, #38bdf8); box-shadow: var(--tiku-shadow-blue); } .platform-header::after { content: ""; position: absolute; right: -64px; bottom: -84px; width: 240px; height: 240px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); } .platform-kicker, .platform-title, .platform-subtitle { position: relative; z-index: 1; display: block; } .platform-kicker { color: rgba(255, 255, 255, 0.78); font-size: 22px; font-weight: 850; } .platform-title { margin-top: 8px; color: #fff; font-size: 38px; font-weight: 920; line-height: 1.2; } .platform-subtitle { margin-top: 10px; color: rgba(255, 255, 255, 0.82); font-size: 24px; line-height: 1.45; } .platform-tabs, .platform-actions { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; } .platform-shell > .platform-actions, .platform-shell > .platform-tabs, .platform-section > .platform-actions:first-child { padding: 14px; border: 1px solid var(--tiku-border); border-radius: 24px; background: #fff; box-shadow: var(--tiku-shadow); } .platform-button, .platform-mini-button { border: 1px solid var(--tiku-border); background: #fff; color: var(--tiku-primary); font-weight: 820; } .platform-button { min-width: 132px; height: 62px; border-radius: 16px; font-size: 23px; line-height: 62px; } .platform-mini-button { min-width: 116px; height: 54px; border-radius: 14px; font-size: 21px; line-height: 54px; } .platform-button.primary { border-color: var(--tiku-primary); background: linear-gradient(135deg, var(--tiku-primary), #2563eb); color: #fff; box-shadow: 0 10px 20px rgba(17, 82, 212, 0.16); } .platform-button.active, .platform-mini-button.active { border-color: var(--tiku-primary); background: var(--tiku-primary-soft); color: var(--tiku-primary); } .platform-mini-button.danger { border-color: #fecdd3; background: #fff1f2; color: #be123c; } .platform-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .platform-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .platform-metric { min-height: 112px; padding: 20px; border: 1px solid var(--tiku-border); border-radius: 24px; background: #fff; box-shadow: var(--tiku-shadow); } .platform-metric-label { display: block; color: var(--tiku-muted); font-size: 21px; } .platform-metric-value { display: block; margin-top: 12px; color: var(--tiku-text); font-size: 31px; font-weight: 900; line-height: 1.2; } .platform-section { margin-top: 4px; padding: 24px; border: 1px solid var(--tiku-border); border-radius: 28px; background: rgba(255, 255, 255, 0.72); box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04); } .platform-section-title { display: block; margin-bottom: 14px; color: var(--tiku-text); font-size: 29px; font-weight: 900; } .platform-list { display: flex; flex-direction: column; gap: 12px; } .platform-row { padding: 20px; border: 1px solid var(--tiku-border); border-radius: 22px; background: #fff; box-shadow: 0 5px 16px rgba(15, 23, 42, 0.04); } .platform-row:nth-child(4n + 1) { border-color: #dbeafe; } .platform-row:nth-child(4n + 2) { border-color: #dcfce7; } .platform-row:nth-child(4n + 3) { border-color: #fae8ff; } .platform-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .platform-module-card { position: relative; overflow: hidden; min-height: 170px; padding: 22px; border-radius: 28px; background: linear-gradient(135deg, #1152d4, #38bdf8); box-shadow: 0 12px 24px rgba(17, 82, 212, 0.14); } .platform-module-card:nth-child(2) { background: linear-gradient(135deg, #10b981, #2dd4bf); } .platform-module-card:nth-child(3) { background: linear-gradient(135deg, #7c3aed, #a78bfa); } .platform-module-card:nth-child(4) { background: linear-gradient(135deg, #f97316, #fbbf24); } .platform-module-card::after { content: ""; position: absolute; right: -28px; bottom: -44px; width: 130px; height: 130px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); } .platform-module-card .platform-row-main, .platform-module-card .platform-row-meta, .platform-module-label { position: relative; z-index: 1; } .platform-module-card .platform-row-main { margin-top: 30px; color: #fff; font-size: 30px; font-weight: 950; } .platform-module-card .platform-row-meta { color: rgba(255, 255, 255, 0.82); } .platform-module-label { display: block; color: rgba(255, 255, 255, 0.82); font-size: 20px; font-weight: 850; } .platform-row-main { display: block; color: var(--tiku-text); font-size: 26px; font-weight: 820; line-height: 1.35; } .platform-row-meta { display: block; margin-top: 8px; color: var(--tiku-muted); font-size: 21px; line-height: 1.45; } .platform-empty { padding: 32px 22px; border: 1px dashed var(--tiku-border-strong); border-radius: 22px; background: #fff; color: var(--tiku-muted); font-size: 23px; line-height: 1.45; } .platform-input { width: 100%; height: 66px; padding: 0 18px; border: 1px solid var(--tiku-border); border-radius: 16px; background: #fff; color: var(--tiku-text); font-size: 24px; } .platform-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; padding: 16px; border: 1px solid var(--tiku-border); border-radius: 22px; background: #f8fafc; } .platform-form.compact { margin-top: 12px; } .platform-field { min-width: 0; } .platform-field.wide { grid-column: 1 / -1; } .platform-field-label { display: block; margin-bottom: 8px; color: var(--tiku-muted); font-size: 20px; font-weight: 760; } .platform-row-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; overflow-x: visible; } .platform-permission-panel { display: flex; flex-direction: column; gap: 16px; margin: 8px 0 16px; padding: 18px; border: 1px solid var(--tiku-border); border-radius: 22px; background: #fff; } .platform-permission-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .platform-permission-group { display: flex; flex-direction: column; gap: 8px; } .platform-chip-list { display: flex; flex-wrap: wrap; gap: 10px; } .platform-chip-list.compact { margin-top: 14px; } .platform-chip { display: inline-flex; align-items: center; max-width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--tiku-border); border-radius: 999px; background: #f8fafc; color: #334155; font-size: 20px; font-weight: 720; line-height: 1.25; } .platform-chip.active { border-color: var(--tiku-primary); background: var(--tiku-primary-soft); color: var(--tiku-primary); } .platform-chip.readonly { border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; } .platform-error { display: block; margin-top: 12px; color: #be123c; font-size: 22px; } @media (min-width: 980px) { .platform-page { max-width: 1240px; margin: 0 auto; padding: 38px; } .platform-shell { gap: 30px; } .platform-header { padding: 38px; } .platform-title { font-size: 44px; } .platform-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .platform-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .platform-module-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .platform-section .platform-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .platform-permission-panel { padding: 22px; } } @media (max-width: 520px) { .platform-page { padding: 20px; } .platform-grid, .platform-grid.three, .platform-module-grid, .platform-form { grid-template-columns: minmax(0, 1fr); } .platform-title { font-size: 34px; } .platform-section { padding: 18px; border-radius: 24px; } .platform-actions, .platform-tabs, .platform-row-actions, .platform-permission-header { flex-wrap: wrap; overflow-x: visible; } .platform-button, .platform-mini-button { min-width: 0; flex: 1 1 138px; } }