.page { display: flex; flex-direction: column; gap: 20px; max-width: 760px; } /* Header */ .pageHeader { display: flex; align-items: center; gap: 12px; } .title { font-size: 28px; font-weight: 800; } .roleBadge { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); background: rgba(254,174,50,0.1); border: 1px solid rgba(254,174,50,0.2); padding: 3px 10px; border-radius: 20px; } .hint { font-size: 13px; color: var(--text-secondary); padding: 12px 16px; background: var(--surface-mid); border-radius: var(--radius-sm); border-left: 3px solid var(--primary); line-height: 1.5; } /* Cards grid */ .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; } .actionCard { padding: 24px; display: flex; flex-direction: column; gap: 16px; transition: box-shadow 0.2s, transform 0.15s; } .actionCard:hover { transform: translateY(-1px); box-shadow: 0 16px 36px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.10); } /* Card top row: icon + text */ .cardTop { display: flex; gap: 16px; align-items: flex-start; } .cardIcon { width: 44px; height: 44px; border-radius: 12px; background: var(--primary-dim); border: 1px solid rgba(75,183,248,0.15); display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--primary); flex-shrink: 0; font-family: monospace; } .cardTitle { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 16px; font-weight: 700; color: var(--text-primary); margin-bottom: 4px; } .cardDesc { font-size: 12px; color: var(--text-secondary); line-height: 1.5; } /* Result bar */ .resultBar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: var(--radius-sm); font-size: 12px; } .resultSuccess { background: rgba(52,211,153,0.08); border: 1px solid rgba(52,211,153,0.15); color: var(--success); } .resultError { background: rgba(248,113,113,0.08); border: 1px solid rgba(248,113,113,0.15); color: var(--error); } .resultDot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; } .resultMsg { flex: 1; } .resultTime { font-size: 11px; opacity: 0.6; white-space: nowrap; font-variant-numeric: tabular-nums; } /* Action button */ .actionBtn { width: 100%; padding: 11px 20px; border-radius: var(--radius-sm); background: var(--primary); color: #fff; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.03em; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.15s; box-shadow: 0 4px 14px rgba(75,183,248,0.25); } .actionBtn:hover:not(:disabled) { background: #6bc4fa; box-shadow: 0 6px 20px rgba(75,183,248,0.35); } .actionBtn:disabled { opacity: 0.6; cursor: not-allowed; box-shadow: none; } .actionBtnLoading { opacity: 0.75; } /* Spinner inline */ .spinner { width: 14px; height: 14px; border: 2px solid var(--surface-high); border-top-color: var(--text-primary); border-radius: 50%; animation: spin 0.7s linear infinite; flex-shrink: 0; } @keyframes spin { to { transform: rotate(360deg); } }