|
2836 | 2836 | background: var(--danger) !important; color: #fff !important; |
2837 | 2837 | } |
2838 | 2838 |
|
| 2839 | + /* ── UID format migration overlay ───────────────────────────────────── |
| 2840 | + Lock-screen modal shown while Tiger Studio is migrating legacy |
| 2841 | + decimal-format inventory ids to the new hex canonical form. Z-index |
| 2842 | + above everything so the user CAN'T interact with the rest of the UI |
| 2843 | + and CAN'T dismiss the modal until the queue drains. The message |
| 2844 | + explicitly warns the user not to close the app. */ |
| 2845 | + .uid-migr-overlay { |
| 2846 | + z-index: 10000; |
| 2847 | + } |
| 2848 | + .uid-migr-card { |
| 2849 | + max-width: 480px; |
| 2850 | + text-align: center; |
| 2851 | + padding: 32px 28px 28px; |
| 2852 | + } |
| 2853 | + .uid-migr-icon { |
| 2854 | + width: 64px; height: 64px; |
| 2855 | + margin: 0 auto 18px; |
| 2856 | + border-radius: 50%; |
| 2857 | + background: var(--primary-soft, rgba(255,122,24,.12)); |
| 2858 | + display: flex; align-items: center; justify-content: center; |
| 2859 | + color: var(--primary); |
| 2860 | + animation: uidMigrSpin 1.6s linear infinite; |
| 2861 | + } |
| 2862 | + .uid-migr-icon .icon { |
| 2863 | + background: var(--primary); |
| 2864 | + width: 28px; height: 28px; |
| 2865 | + } |
| 2866 | + .uid-migr-card.uid-migr--done .uid-migr-icon { |
| 2867 | + background: rgba(16,185,129,.14); |
| 2868 | + color: #10b981; |
| 2869 | + animation: none; |
| 2870 | + } |
| 2871 | + .uid-migr-card.uid-migr--done .uid-migr-icon .icon { |
| 2872 | + background: #10b981; |
| 2873 | + /* Switch from refresh-arrow to check via mask swap */ |
| 2874 | + -webkit-mask-image: url('../assets/svg/icons/icon_check.svg'); |
| 2875 | + mask-image: url('../assets/svg/icons/icon_check.svg'); |
| 2876 | + } |
| 2877 | + @keyframes uidMigrSpin { |
| 2878 | + from { transform: rotate(0deg); } |
| 2879 | + to { transform: rotate(360deg); } |
| 2880 | + } |
| 2881 | + .uid-migr-title { |
| 2882 | + font-size: 20px; |
| 2883 | + font-weight: 700; |
| 2884 | + color: var(--text); |
| 2885 | + margin: 0 0 12px; |
| 2886 | + letter-spacing: -.01em; |
| 2887 | + } |
| 2888 | + .uid-migr-msg { |
| 2889 | + font-size: 14px; |
| 2890 | + color: var(--muted); |
| 2891 | + line-height: 1.5; |
| 2892 | + margin: 0 0 22px; |
| 2893 | + } |
| 2894 | + .uid-migr-msg strong { |
| 2895 | + color: var(--text); |
| 2896 | + font-weight: 700; |
| 2897 | + } |
| 2898 | + .uid-migr-progress { |
| 2899 | + margin-bottom: 16px; |
| 2900 | + } |
| 2901 | + .uid-migr-progress-track { |
| 2902 | + height: 8px; |
| 2903 | + background: var(--border); |
| 2904 | + border-radius: 8px; |
| 2905 | + overflow: hidden; |
| 2906 | + margin-bottom: 8px; |
| 2907 | + } |
| 2908 | + .uid-migr-progress-fill { |
| 2909 | + height: 100%; |
| 2910 | + background: linear-gradient(90deg, var(--primary), #ffb056); |
| 2911 | + width: 0%; |
| 2912 | + transition: width .25s ease; |
| 2913 | + border-radius: 8px; |
| 2914 | + } |
| 2915 | + .uid-migr-count { |
| 2916 | + font-size: 13px; |
| 2917 | + font-weight: 600; |
| 2918 | + color: var(--text); |
| 2919 | + font-variant-numeric: tabular-nums; |
| 2920 | + } |
| 2921 | + .uid-migr-warn { |
| 2922 | + font-size: 12px; |
| 2923 | + color: var(--muted); |
| 2924 | + background: var(--surface-2); |
| 2925 | + border: 1px solid var(--border); |
| 2926 | + border-radius: 8px; |
| 2927 | + padding: 10px 12px; |
| 2928 | + line-height: 1.4; |
| 2929 | + } |
| 2930 | + .uid-migr-card.uid-migr--done .uid-migr-warn { |
| 2931 | + display: none; |
| 2932 | + } |
| 2933 | + .uid-migr-card.uid-migr--done .uid-migr-msg { |
| 2934 | + /* In success state, simplify to a one-liner */ |
| 2935 | + display: none; |
| 2936 | + } |
| 2937 | + .uid-migr-card.uid-migr--done .uid-migr-title::after { |
| 2938 | + content: " — done"; |
| 2939 | + color: #10b981; |
| 2940 | + } |
| 2941 | + |
| 2942 | + /* ── Confirm modal (phase 1) — user consent before migration starts ── |
| 2943 | + Same visual base as the progress modal but DISMISSIBLE, with three |
| 2944 | + action buttons. The icon doesn't spin (no operation in progress yet). */ |
| 2945 | + .uid-migr-confirm-card { |
| 2946 | + max-width: 480px; |
| 2947 | + text-align: center; |
| 2948 | + padding: 32px 28px 24px; |
| 2949 | + } |
| 2950 | + .uid-migr-confirm-icon { |
| 2951 | + animation: none; /* override the spinning animation from .uid-migr-icon */ |
| 2952 | + } |
| 2953 | + #uidMigrationConfirmCount { |
| 2954 | + font-weight: 700; |
| 2955 | + color: var(--text); |
| 2956 | + } |
| 2957 | + .uid-migr-confirm-actions { |
| 2958 | + display: flex; flex-wrap: wrap; |
| 2959 | + justify-content: center; |
| 2960 | + gap: 8px; |
| 2961 | + margin-top: 20px; |
| 2962 | + } |
| 2963 | + .uid-migr-confirm-btn { |
| 2964 | + flex: 1 1 auto; |
| 2965 | + min-width: 110px; |
| 2966 | + height: 38px; |
| 2967 | + padding: 0 18px; |
| 2968 | + border-radius: 10px; |
| 2969 | + font-size: 13px; |
| 2970 | + font-weight: 600; |
| 2971 | + cursor: pointer; |
| 2972 | + font-family: inherit; |
| 2973 | + transition: background .15s, border-color .15s, color .15s; |
| 2974 | + } |
| 2975 | + .uid-migr-confirm-btn.ghost { |
| 2976 | + background: transparent; |
| 2977 | + border: 1.5px solid var(--border); |
| 2978 | + color: var(--text); |
| 2979 | + } |
| 2980 | + .uid-migr-confirm-btn.ghost:hover { |
| 2981 | + border-color: var(--primary); |
| 2982 | + color: var(--primary); |
| 2983 | + background: var(--primary-soft, rgba(255,122,24,.06)); |
| 2984 | + } |
| 2985 | + .uid-migr-confirm-btn.primary { |
| 2986 | + background: var(--primary); |
| 2987 | + border: 1.5px solid var(--primary); |
| 2988 | + color: #fff; |
| 2989 | + box-shadow: 0 2px 10px rgba(255,122,24,.25); |
| 2990 | + } |
| 2991 | + .uid-migr-confirm-btn.primary:hover { |
| 2992 | + background: var(--primary-hover, #ff8a30); |
| 2993 | + } |
| 2994 | + |
2839 | 2995 | /* Friend view — full error state inside card-inv */ |
2840 | 2996 | .friend-inv-error { |
2841 | 2997 | text-align: center; |
|
0 commit comments