@imenam/mcp-messenger 1.0.32 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2621,9 +2621,1190 @@ body {
2621
2621
  font-size: 13px;
2622
2622
  }
2623
2623
 
2624
+ /* --- Menu du compte ------------------------------------------------------- */
2625
+
2626
+ .pill--warn {
2627
+ background: var(--warn-soft);
2628
+ color: var(--warn);
2629
+ }
2630
+
2631
+ .account {
2632
+ position: relative;
2633
+ flex: none;
2634
+ margin-left: auto;
2635
+ }
2636
+
2637
+ /* Les contrôles des boîtes, quand ils sont là, poussent déjà le menu au bord droit. */
2638
+ .topbar-controls:not([hidden]) + .account {
2639
+ margin-left: 0;
2640
+ }
2641
+
2642
+ .account-button {
2643
+ display: inline-flex;
2644
+ align-items: center;
2645
+ gap: 8px;
2646
+ height: 32px;
2647
+ padding: 0 10px 0 4px;
2648
+ border-radius: 999px;
2649
+ border: 1px solid var(--border);
2650
+ background: var(--panel);
2651
+ color: var(--text);
2652
+ font: inherit;
2653
+ font-size: 13px;
2654
+ cursor: pointer;
2655
+ }
2656
+
2657
+ .account-button:hover,
2658
+ .account-button[aria-expanded="true"] {
2659
+ border-color: var(--accent);
2660
+ }
2661
+
2662
+ .account-button[aria-expanded="true"] {
2663
+ background: var(--accent-soft);
2664
+ }
2665
+
2666
+ .account-button:focus-visible {
2667
+ outline: 2px solid var(--accent);
2668
+ outline-offset: 2px;
2669
+ }
2670
+
2671
+ .account-button .icon {
2672
+ width: 14px;
2673
+ height: 14px;
2674
+ color: var(--muted);
2675
+ }
2676
+
2677
+ .account-avatar {
2678
+ width: 24px;
2679
+ height: 24px;
2680
+ border-radius: 50%;
2681
+ display: grid;
2682
+ place-items: center;
2683
+ flex: none;
2684
+ background: var(--text);
2685
+ color: var(--panel);
2686
+ font-size: 11px;
2687
+ font-weight: 700;
2688
+ }
2689
+
2690
+ .account-avatar--lg {
2691
+ width: 36px;
2692
+ height: 36px;
2693
+ font-size: 14px;
2694
+ }
2695
+
2696
+ .account-menu {
2697
+ position: absolute;
2698
+ right: 0;
2699
+ top: calc(100% + 6px);
2700
+ z-index: 20;
2701
+ width: 200px;
2702
+ padding: 6px;
2703
+ border-radius: 10px;
2704
+ border: 1px solid var(--border);
2705
+ background: var(--panel);
2706
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
2707
+ }
2708
+
2709
+ .account-item {
2710
+ display: flex;
2711
+ align-items: center;
2712
+ gap: 10px;
2713
+ width: 100%;
2714
+ padding: 8px 10px;
2715
+ border: 0;
2716
+ border-radius: 6px;
2717
+ background: none;
2718
+ color: var(--text);
2719
+ font: inherit;
2720
+ font-size: 13px;
2721
+ text-align: left;
2722
+ cursor: pointer;
2723
+ }
2724
+
2725
+ .account-item .icon {
2726
+ color: var(--muted);
2727
+ }
2728
+
2729
+ .account-item:hover,
2730
+ .account-item:focus-visible {
2731
+ background: var(--bg);
2732
+ outline: none;
2733
+ }
2734
+
2735
+ .account-item.is-active {
2736
+ background: var(--accent-soft);
2737
+ color: var(--accent);
2738
+ font-weight: 600;
2739
+ }
2740
+
2741
+ .account-item.is-active .icon {
2742
+ color: var(--accent);
2743
+ }
2744
+
2745
+ .account-sep {
2746
+ height: 1px;
2747
+ margin: 6px -6px;
2748
+ background: var(--border-soft);
2749
+ }
2750
+
2751
+ /* --- Formulaires d'identifiants ------------------------------------------- */
2752
+
2753
+ .field--tight {
2754
+ margin: 16px 0 0;
2755
+ }
2756
+
2757
+ .field-hint {
2758
+ display: block;
2759
+ margin-top: 6px;
2760
+ font-size: 12px;
2761
+ font-weight: 400;
2762
+ line-height: 1.4;
2763
+ color: var(--muted);
2764
+ }
2765
+
2766
+ .field-hint.is-weak {
2767
+ color: var(--danger);
2768
+ }
2769
+
2770
+ .field-hint.is-strong {
2771
+ color: var(--ok);
2772
+ }
2773
+
2774
+ .field-input input.mono {
2775
+ font-size: 14px;
2776
+ letter-spacing: 0.04em;
2777
+ }
2778
+
2779
+ .field-input--spaced {
2780
+ gap: 10px;
2781
+ }
2782
+
2783
+ .field-input--area {
2784
+ height: auto;
2785
+ margin-top: 12px;
2786
+ padding: 8px 12px;
2787
+ }
2788
+
2789
+ .field-input textarea,
2790
+ .inline-area {
2791
+ flex: 1;
2792
+ min-width: 0;
2793
+ border: 0;
2794
+ background: none;
2795
+ font: inherit;
2796
+ font-size: 13px;
2797
+ line-height: 1.4;
2798
+ color: var(--text);
2799
+ resize: vertical;
2800
+ outline: none;
2801
+ }
2802
+
2803
+ .inline-area {
2804
+ width: 100%;
2805
+ padding: 6px 10px;
2806
+ border: 1px solid var(--accent);
2807
+ border-radius: var(--radius);
2808
+ background: var(--panel);
2809
+ }
2810
+
2811
+ .props-value {
2812
+ line-height: 1.4;
2813
+ }
2814
+
2815
+ .props-edit {
2816
+ flex: none;
2817
+ padding: 4px;
2818
+ }
2819
+
2820
+ .field-tag {
2821
+ font-size: 12px;
2822
+ color: var(--accent);
2823
+ flex: none;
2824
+ }
2825
+
2826
+ .card-rule {
2827
+ height: 1px;
2828
+ margin: 20px 0 4px;
2829
+ background: var(--border-soft);
2830
+ }
2831
+
2832
+ .card-note--rule {
2833
+ padding-top: 12px;
2834
+ border-top: 1px solid var(--border-soft);
2835
+ }
2836
+
2837
+ .card-note code {
2838
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
2839
+ font-size: 11px;
2840
+ }
2841
+
2842
+ .check {
2843
+ display: flex;
2844
+ align-items: center;
2845
+ gap: 10px;
2846
+ margin: 16px 0;
2847
+ font-size: 13px;
2848
+ text-align: left;
2849
+ cursor: pointer;
2850
+ }
2851
+
2852
+ .check input {
2853
+ width: 16px;
2854
+ height: 16px;
2855
+ margin: 0;
2856
+ accent-color: var(--accent);
2857
+ }
2858
+
2859
+ /* Robustesse d'un mot de passe : quatre segments, colorés selon le niveau atteint. */
2860
+ .meter {
2861
+ display: grid;
2862
+ grid-template-columns: repeat(4, 1fr);
2863
+ gap: 6px;
2864
+ margin-top: 10px;
2865
+ }
2866
+
2867
+ .meter span {
2868
+ height: 4px;
2869
+ border-radius: 2px;
2870
+ background: var(--neutral-soft);
2871
+ }
2872
+
2873
+ .meter[data-level="1"] span:nth-child(-n + 1) {
2874
+ background: var(--danger);
2875
+ }
2876
+
2877
+ .meter[data-level="2"] span:nth-child(-n + 2) {
2878
+ background: var(--warn);
2879
+ }
2880
+
2881
+ .meter[data-level="3"] span:nth-child(-n + 3),
2882
+ .meter[data-level="4"] span {
2883
+ background: var(--ok);
2884
+ }
2885
+
2886
+ .form-banner {
2887
+ display: flex;
2888
+ align-items: flex-start;
2889
+ gap: 10px;
2890
+ margin: 16px 0 0;
2891
+ padding: 10px 12px;
2892
+ border-radius: var(--radius);
2893
+ font-size: 13px;
2894
+ line-height: 1.4;
2895
+ text-align: left;
2896
+ background: var(--danger-soft);
2897
+ color: var(--danger);
2898
+ }
2899
+
2900
+ .form-banner .icon {
2901
+ margin-top: 1px;
2902
+ }
2903
+
2904
+ .form-banner--warn {
2905
+ background: var(--warn-soft);
2906
+ color: var(--warn);
2907
+ }
2908
+
2909
+ .form-banner--ok {
2910
+ background: var(--ok-soft);
2911
+ color: var(--ok);
2912
+ }
2913
+
2914
+ .login .btn--block {
2915
+ margin-top: 20px;
2916
+ }
2917
+
2918
+ /* --- Pages (clés, compte) -------------------------------------------------- */
2919
+
2920
+ .page {
2921
+ max-width: var(--app-max);
2922
+ margin: 0 auto;
2923
+ padding: 32px 40px 48px;
2924
+ }
2925
+
2926
+ .page--narrow {
2927
+ max-width: 800px;
2928
+ }
2929
+
2930
+ .page-head {
2931
+ display: flex;
2932
+ align-items: flex-start;
2933
+ justify-content: space-between;
2934
+ gap: 24px;
2935
+ }
2936
+
2937
+ .page-head h2 {
2938
+ margin: 0;
2939
+ font-size: 22px;
2940
+ }
2941
+
2942
+ .page-head p {
2943
+ margin: 4px 0 0;
2944
+ font-size: 13px;
2945
+ }
2946
+
2947
+ .page-tools {
2948
+ display: flex;
2949
+ align-items: center;
2950
+ justify-content: space-between;
2951
+ gap: 16px;
2952
+ margin: 20px 0 16px;
2953
+ }
2954
+
2955
+ .page-tools .chips {
2956
+ margin: 0;
2957
+ }
2958
+
2959
+ .chip-count {
2960
+ margin-left: 4px;
2961
+ font-weight: 400;
2962
+ opacity: 0.7;
2963
+ }
2964
+
2965
+ .page-search {
2966
+ display: flex;
2967
+ align-items: center;
2968
+ gap: 8px;
2969
+ width: 300px;
2970
+ height: 36px;
2971
+ padding: 0 12px;
2972
+ border-radius: var(--radius);
2973
+ border: 1px solid var(--border);
2974
+ background: var(--panel);
2975
+ color: var(--muted);
2976
+ }
2977
+
2978
+ .page-search:focus-within {
2979
+ border-color: var(--accent);
2980
+ }
2981
+
2982
+ .page-search input {
2983
+ flex: 1;
2984
+ min-width: 0;
2985
+ border: 0;
2986
+ background: none;
2987
+ font: inherit;
2988
+ font-size: 13px;
2989
+ color: var(--text);
2990
+ outline: none;
2991
+ }
2992
+
2993
+ .page-note {
2994
+ display: flex;
2995
+ align-items: center;
2996
+ gap: 12px;
2997
+ margin: 24px 0 0;
2998
+ padding: 14px 16px;
2999
+ border-radius: var(--radius);
3000
+ background: var(--neutral-soft);
3001
+ color: var(--muted);
3002
+ font-size: 13px;
3003
+ }
3004
+
3005
+ /* Liste des clés : une grille de colonnes fixes, une ligne par clé. */
3006
+ .key-table {
3007
+ border: 1px solid var(--border);
3008
+ border-radius: 10px;
3009
+ background: var(--panel);
3010
+ overflow: hidden;
3011
+ }
3012
+
3013
+ .key-row {
3014
+ display: grid;
3015
+ grid-template-columns: minmax(200px, 2.4fr) minmax(130px, 1.3fr) minmax(150px, 1.6fr) minmax(140px, 1.5fr) minmax(120px, 1.3fr) 130px;
3016
+ align-items: center;
3017
+ gap: 16px;
3018
+ min-height: 64px;
3019
+ padding: 10px 20px 10px 24px;
3020
+ border-top: 1px solid var(--border-soft);
3021
+ font-size: 13px;
3022
+ cursor: pointer;
3023
+ }
3024
+
3025
+ .key-row:hover,
3026
+ .key-row:focus-visible {
3027
+ background: var(--bg);
3028
+ outline: none;
3029
+ }
3030
+
3031
+ .key-row.is-selected {
3032
+ background: var(--accent-soft);
3033
+ }
3034
+
3035
+ .key-row--head {
3036
+ min-height: 40px;
3037
+ border-top: 0;
3038
+ border-bottom: 1px solid var(--border);
3039
+ font-size: 11px;
3040
+ font-weight: 700;
3041
+ letter-spacing: 0.04em;
3042
+ text-transform: uppercase;
3043
+ color: var(--muted);
3044
+ cursor: default;
3045
+ }
3046
+
3047
+ .key-row--head:hover {
3048
+ background: none;
3049
+ }
3050
+
3051
+ .key-row--head + .key-row {
3052
+ border-top: 0;
3053
+ }
3054
+
3055
+ .key-name {
3056
+ display: grid;
3057
+ gap: 2px;
3058
+ min-width: 0;
3059
+ }
3060
+
3061
+ .key-name strong {
3062
+ font-size: 14px;
3063
+ font-weight: 600;
3064
+ overflow: hidden;
3065
+ text-overflow: ellipsis;
3066
+ white-space: nowrap;
3067
+ }
3068
+
3069
+ .key-sub,
3070
+ .key-muted {
3071
+ font-size: 12px;
3072
+ color: var(--muted);
3073
+ }
3074
+
3075
+ .key-recent {
3076
+ color: var(--ok);
3077
+ }
3078
+
3079
+ .key-agent {
3080
+ display: inline-flex;
3081
+ align-items: center;
3082
+ gap: 8px;
3083
+ min-width: 0;
3084
+ }
3085
+
3086
+ .key-agent.is-muted {
3087
+ color: var(--muted);
3088
+ }
3089
+
3090
+ .key-dot {
3091
+ width: 14px;
3092
+ height: 14px;
3093
+ border-radius: 50%;
3094
+ flex: none;
3095
+ }
3096
+
3097
+ .key-actions {
3098
+ display: flex;
3099
+ align-items: center;
3100
+ justify-content: flex-end;
3101
+ gap: 12px;
3102
+ color: var(--muted);
3103
+ }
3104
+
3105
+ /* « Révoquer » n'apparaît qu'au survol : la liste se lit d'abord, elle s'édite ensuite. */
3106
+ .key-revoke {
3107
+ visibility: hidden;
3108
+ padding: 5px 12px;
3109
+ color: var(--danger);
3110
+ font-weight: 600;
3111
+ }
3112
+
3113
+ .key-row:hover .key-revoke,
3114
+ .key-row:focus-within .key-revoke {
3115
+ visibility: visible;
3116
+ }
3117
+
3118
+ .key-revoke:hover {
3119
+ border-color: var(--danger);
3120
+ }
3121
+
3122
+ .key-empty {
3123
+ margin: 0;
3124
+ padding: 28px 24px;
3125
+ color: var(--muted);
3126
+ font-size: 13px;
3127
+ }
3128
+
3129
+ .tag--muted {
3130
+ background: var(--neutral-soft);
3131
+ color: var(--muted);
3132
+ }
3133
+
3134
+ /* --- Volet des clés -------------------------------------------------------- */
3135
+
3136
+ .drawer {
3137
+ position: fixed;
3138
+ inset: var(--topbar-h) 0 0 auto;
3139
+ width: min(480px, 100vw);
3140
+ height: auto;
3141
+ max-width: none;
3142
+ max-height: none;
3143
+ margin: 0;
3144
+ padding: 0;
3145
+ border: 0;
3146
+ border-left: 1px solid var(--border);
3147
+ background: var(--panel);
3148
+ color: var(--text);
3149
+ }
3150
+
3151
+ .drawer::backdrop {
3152
+ background: rgba(28, 32, 36, 0.28);
3153
+ }
3154
+
3155
+ .drawer-body {
3156
+ display: flex;
3157
+ flex-direction: column;
3158
+ height: 100%;
3159
+ }
3160
+
3161
+ .drawer-head {
3162
+ display: flex;
3163
+ align-items: flex-start;
3164
+ justify-content: space-between;
3165
+ gap: 12px;
3166
+ padding: 28px 32px 20px;
3167
+ border-bottom: 1px solid var(--border-soft);
3168
+ }
3169
+
3170
+ .drawer-title h2 {
3171
+ margin: 0;
3172
+ font-size: 18px;
3173
+ }
3174
+
3175
+ .drawer-title p {
3176
+ margin: 6px 0 0;
3177
+ font-size: 13px;
3178
+ }
3179
+
3180
+ .drawer-name {
3181
+ display: flex;
3182
+ align-items: center;
3183
+ gap: 6px;
3184
+ }
3185
+
3186
+ .drawer-name .btn--icon {
3187
+ padding: 4px;
3188
+ }
3189
+
3190
+ .inline-input {
3191
+ width: 100%;
3192
+ height: 34px;
3193
+ padding: 0 10px;
3194
+ border-radius: var(--radius);
3195
+ border: 1px solid var(--accent);
3196
+ background: var(--panel);
3197
+ color: var(--text);
3198
+ font: inherit;
3199
+ font-size: 15px;
3200
+ font-weight: 600;
3201
+ outline: none;
3202
+ }
3203
+
3204
+ .drawer-content {
3205
+ flex: 1;
3206
+ overflow-y: auto;
3207
+ padding: 4px 32px 24px;
3208
+ }
3209
+
3210
+ .drawer-foot {
3211
+ display: flex;
3212
+ justify-content: flex-end;
3213
+ align-items: center;
3214
+ gap: 12px;
3215
+ padding: 16px 32px;
3216
+ border-top: 1px solid var(--border-soft);
3217
+ }
3218
+
3219
+ .drawer-tags {
3220
+ display: flex;
3221
+ gap: 8px;
3222
+ margin: 20px 0 4px;
3223
+ }
3224
+
3225
+ .drawer-tags .tag {
3226
+ font-size: 12px;
3227
+ padding: 2px 10px;
3228
+ }
3229
+
3230
+ .drawer-section {
3231
+ margin-top: 20px;
3232
+ padding-top: 20px;
3233
+ border-top: 1px solid var(--border-soft);
3234
+ }
3235
+
3236
+ .drawer-section h3 {
3237
+ margin: 0;
3238
+ font-size: 14px;
3239
+ }
3240
+
3241
+ .drawer-section-head {
3242
+ display: flex;
3243
+ justify-content: space-between;
3244
+ align-items: baseline;
3245
+ margin-bottom: 12px;
3246
+ }
3247
+
3248
+ .drawer-row {
3249
+ display: flex;
3250
+ align-items: flex-start;
3251
+ justify-content: space-between;
3252
+ gap: 16px;
3253
+ }
3254
+
3255
+ .drawer-row p {
3256
+ margin: 6px 0 0;
3257
+ }
3258
+
3259
+ .drawer-row .btn {
3260
+ flex: none;
3261
+ }
3262
+
3263
+ .segmented {
3264
+ display: grid;
3265
+ grid-template-columns: 1fr 1fr;
3266
+ gap: 2px;
3267
+ padding: 3px;
3268
+ margin-bottom: 12px;
3269
+ border-radius: var(--radius);
3270
+ background: var(--neutral-soft);
3271
+ }
3272
+
3273
+ .segmented-item {
3274
+ height: 30px;
3275
+ border: 1px solid transparent;
3276
+ border-radius: 6px;
3277
+ background: none;
3278
+ color: var(--muted);
3279
+ font: inherit;
3280
+ font-size: 13px;
3281
+ cursor: pointer;
3282
+ }
3283
+
3284
+ .segmented-item.is-active {
3285
+ border-color: var(--border);
3286
+ background: var(--panel);
3287
+ color: var(--text);
3288
+ font-weight: 600;
3289
+ }
3290
+
3291
+ .choice {
3292
+ display: grid;
3293
+ grid-template-columns: repeat(4, 1fr);
3294
+ gap: 10px;
3295
+ }
3296
+
3297
+ .choice-item {
3298
+ height: 34px;
3299
+ border-radius: var(--radius);
3300
+ border: 1px solid var(--border);
3301
+ background: var(--panel);
3302
+ color: var(--text);
3303
+ font: inherit;
3304
+ font-size: 13px;
3305
+ cursor: pointer;
3306
+ }
3307
+
3308
+ .choice-item:hover {
3309
+ border-color: var(--accent);
3310
+ }
3311
+
3312
+ .choice-item.is-active {
3313
+ border-color: var(--accent);
3314
+ background: var(--accent-soft);
3315
+ color: var(--accent);
3316
+ font-weight: 600;
3317
+ }
3318
+
3319
+ .segmented-item:focus-visible,
3320
+ .choice-item:focus-visible,
3321
+ .subtab:focus-visible {
3322
+ outline: 2px solid var(--accent);
3323
+ outline-offset: 2px;
3324
+ }
3325
+
3326
+ .notice {
3327
+ display: flex;
3328
+ gap: 12px;
3329
+ margin-top: 20px;
3330
+ padding: 12px 14px;
3331
+ border-radius: var(--radius);
3332
+ font-size: 12px;
3333
+ }
3334
+
3335
+ .notice .icon {
3336
+ width: 18px;
3337
+ height: 18px;
3338
+ margin-top: 1px;
3339
+ }
3340
+
3341
+ .notice div {
3342
+ display: grid;
3343
+ gap: 2px;
3344
+ }
3345
+
3346
+ .notice strong {
3347
+ font-size: 13px;
3348
+ }
3349
+
3350
+ .notice--ok {
3351
+ background: var(--ok-soft);
3352
+ color: var(--ok);
3353
+ }
3354
+
3355
+ .secret {
3356
+ display: flex;
3357
+ align-items: center;
3358
+ gap: 12px;
3359
+ padding: 8px 8px 8px 14px;
3360
+ border-radius: var(--radius);
3361
+ border: 1px solid var(--border);
3362
+ background: var(--bg);
3363
+ }
3364
+
3365
+ .secret-value {
3366
+ flex: 1;
3367
+ min-width: 0;
3368
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
3369
+ font-size: 13px;
3370
+ overflow-wrap: anywhere;
3371
+ user-select: all;
3372
+ }
3373
+
3374
+ .secret-warning {
3375
+ display: flex;
3376
+ gap: 8px;
3377
+ margin: 10px 0 0;
3378
+ font-size: 12px;
3379
+ line-height: 1.4;
3380
+ color: var(--warn);
3381
+ }
3382
+
3383
+ .secret-warning .icon {
3384
+ width: 14px;
3385
+ height: 14px;
3386
+ margin-top: 1px;
3387
+ }
3388
+
3389
+ .btn--small {
3390
+ padding: 5px 10px;
3391
+ font-size: 12px;
3392
+ }
3393
+
3394
+ .btn--primary.btn--small {
3395
+ padding: 7px 12px;
3396
+ font-size: 13px;
3397
+ }
3398
+
3399
+ .btn--danger-text {
3400
+ color: var(--danger);
3401
+ font-weight: 600;
3402
+ }
3403
+
3404
+ .btn--danger-text:hover {
3405
+ border-color: var(--danger);
3406
+ }
3407
+
3408
+ .btn--link.btn--danger-text {
3409
+ padding-left: 0;
3410
+ font-weight: 400;
3411
+ }
3412
+
3413
+ .subtabs {
3414
+ display: flex;
3415
+ gap: 20px;
3416
+ margin-bottom: 12px;
3417
+ border-bottom: 1px solid var(--border-soft);
3418
+ }
3419
+
3420
+ .subtab {
3421
+ padding: 6px 0;
3422
+ border: 0;
3423
+ border-bottom: 2px solid transparent;
3424
+ background: none;
3425
+ color: var(--muted);
3426
+ font: inherit;
3427
+ font-size: 13px;
3428
+ cursor: pointer;
3429
+ }
3430
+
3431
+ .subtab.is-active {
3432
+ border-bottom-color: var(--accent);
3433
+ color: var(--accent);
3434
+ font-weight: 600;
3435
+ }
3436
+
3437
+ /* Bloc de code sombre dans les deux thèmes : c'est ce qui se colle dans un fichier. */
3438
+ .code-block {
3439
+ position: relative;
3440
+ border-radius: var(--radius);
3441
+ background: #1c2024;
3442
+ }
3443
+
3444
+ .code-block pre {
3445
+ margin: 0;
3446
+ padding: 14px 44px 14px 16px;
3447
+ overflow-x: auto;
3448
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
3449
+ font-size: 12px;
3450
+ line-height: 1.5;
3451
+ color: #e6e9ee;
3452
+ white-space: pre;
3453
+ }
3454
+
3455
+ .code-block .copy {
3456
+ position: absolute;
3457
+ top: 10px;
3458
+ right: 10px;
3459
+ color: #98a1b0;
3460
+ }
3461
+
3462
+ .props {
3463
+ display: grid;
3464
+ grid-template-columns: 150px minmax(0, 1fr);
3465
+ margin: 16px 0 0;
3466
+ padding-top: 12px;
3467
+ border-top: 1px solid var(--border-soft);
3468
+ font-size: 13px;
3469
+ }
3470
+
3471
+ .props dt {
3472
+ padding: 7px 0;
3473
+ color: var(--muted);
3474
+ }
3475
+
3476
+ .props dd {
3477
+ display: flex;
3478
+ align-items: center;
3479
+ justify-content: space-between;
3480
+ gap: 12px;
3481
+ margin: 0;
3482
+ padding: 7px 0;
3483
+ min-width: 0;
3484
+ }
3485
+
3486
+ /* Prolonger : l'action courante en un clic, les autres durées derrière la flèche. */
3487
+ .split {
3488
+ position: relative;
3489
+ display: inline-flex;
3490
+ }
3491
+
3492
+ .split-main {
3493
+ border-top-right-radius: 0;
3494
+ border-bottom-right-radius: 0;
3495
+ font-weight: 600;
3496
+ }
3497
+
3498
+ .split-more {
3499
+ margin-left: -1px;
3500
+ padding: 5px 6px;
3501
+ border-top-left-radius: 0;
3502
+ border-bottom-left-radius: 0;
3503
+ }
3504
+
3505
+ .split-more .icon {
3506
+ width: 12px;
3507
+ height: 12px;
3508
+ }
3509
+
3510
+ .split-menu {
3511
+ position: absolute;
3512
+ right: 0;
3513
+ top: calc(100% + 4px);
3514
+ z-index: 5;
3515
+ min-width: 190px;
3516
+ padding: 4px;
3517
+ border-radius: var(--radius);
3518
+ border: 1px solid var(--border);
3519
+ background: var(--panel);
3520
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
3521
+ }
3522
+
3523
+ .split-item {
3524
+ display: block;
3525
+ width: 100%;
3526
+ padding: 7px 10px;
3527
+ border: 0;
3528
+ border-radius: 6px;
3529
+ background: none;
3530
+ color: var(--text);
3531
+ font: inherit;
3532
+ font-size: 13px;
3533
+ text-align: left;
3534
+ cursor: pointer;
3535
+ }
3536
+
3537
+ .split-item:hover {
3538
+ background: var(--bg);
3539
+ }
3540
+
3541
+ .key-boxes {
3542
+ list-style: none;
3543
+ margin: 0;
3544
+ padding: 0;
3545
+ display: grid;
3546
+ gap: 4px;
3547
+ }
3548
+
3549
+ .key-box {
3550
+ display: flex;
3551
+ align-items: center;
3552
+ gap: 12px;
3553
+ width: 100%;
3554
+ padding: 6px 8px;
3555
+ margin: 0 -8px;
3556
+ border: 0;
3557
+ border-radius: var(--radius);
3558
+ background: none;
3559
+ color: var(--text);
3560
+ font: inherit;
3561
+ text-align: left;
3562
+ cursor: pointer;
3563
+ }
3564
+
3565
+ .key-box:hover {
3566
+ background: var(--bg);
3567
+ }
3568
+
3569
+ .key-box .key-name {
3570
+ flex: 1;
3571
+ }
3572
+
3573
+ .key-box strong {
3574
+ font-size: 13px;
3575
+ }
3576
+
3577
+ .key-box > .icon {
3578
+ color: var(--muted);
3579
+ }
3580
+
3581
+ .danger-zone {
3582
+ display: flex;
3583
+ align-items: center;
3584
+ justify-content: space-between;
3585
+ gap: 16px;
3586
+ margin-top: 24px;
3587
+ padding: 16px;
3588
+ border-radius: var(--radius);
3589
+ background: var(--danger-soft);
3590
+ color: var(--danger);
3591
+ }
3592
+
3593
+ .danger-zone h3 {
3594
+ margin: 0;
3595
+ font-size: 14px;
3596
+ }
3597
+
3598
+ .danger-zone p {
3599
+ margin: 4px 0 0;
3600
+ font-size: 12px;
3601
+ }
3602
+
3603
+ /* --- Confirmation de révocation ------------------------------------------- */
3604
+
3605
+ .modal--confirm {
3606
+ width: min(440px, calc(100vw - 32px));
3607
+ }
3608
+
3609
+ .modal--confirm .modal-card {
3610
+ padding: 24px 24px 16px;
3611
+ }
3612
+
3613
+ .confirm-head {
3614
+ display: flex;
3615
+ gap: 16px;
3616
+ }
3617
+
3618
+ .confirm-head h2 {
3619
+ margin: 0;
3620
+ font-size: 17px;
3621
+ }
3622
+
3623
+ .confirm-head p {
3624
+ margin: 4px 0 0;
3625
+ }
3626
+
3627
+ .confirm-badge {
3628
+ width: 40px;
3629
+ height: 40px;
3630
+ border-radius: 50%;
3631
+ display: grid;
3632
+ place-items: center;
3633
+ flex: none;
3634
+ background: var(--danger-soft);
3635
+ color: var(--danger);
3636
+ }
3637
+
3638
+ .confirm-list {
3639
+ list-style: none;
3640
+ margin: 20px 0 0 56px;
3641
+ padding: 0;
3642
+ display: grid;
3643
+ gap: 12px;
3644
+ font-size: 13px;
3645
+ }
3646
+
3647
+ .confirm-list li {
3648
+ display: flex;
3649
+ gap: 8px;
3650
+ }
3651
+
3652
+ .confirm-list .icon {
3653
+ width: 14px;
3654
+ height: 14px;
3655
+ margin-top: 2px;
3656
+ stroke-width: 2.5;
3657
+ }
3658
+
3659
+ .confirm-list .is-lost .icon {
3660
+ color: var(--danger);
3661
+ }
3662
+
3663
+ .confirm-list .is-kept .icon {
3664
+ color: var(--ok);
3665
+ }
3666
+
3667
+ .confirm-note {
3668
+ margin: 12px 0 0 56px;
3669
+ font-size: 12px;
3670
+ color: var(--muted);
3671
+ }
3672
+
3673
+ .modal--confirm .modal-foot {
3674
+ margin: 20px -24px 0;
3675
+ padding: 16px 24px 0;
3676
+ border-top: 1px solid var(--border-soft);
3677
+ }
3678
+
3679
+ /* --- Mon compte ------------------------------------------------------------ */
3680
+
3681
+ .panel-card {
3682
+ margin-top: 24px;
3683
+ padding: 20px 24px;
3684
+ border-radius: 10px;
3685
+ border: 1px solid var(--border);
3686
+ background: var(--panel);
3687
+ }
3688
+
3689
+ .panel-card h3 {
3690
+ margin: 0;
3691
+ font-size: 15px;
3692
+ }
3693
+
3694
+ .panel-card h3 + .key-muted {
3695
+ margin: 4px 0 0;
3696
+ }
3697
+
3698
+ .panel-card--row {
3699
+ display: flex;
3700
+ align-items: center;
3701
+ gap: 16px;
3702
+ }
3703
+
3704
+ .panel-card-main {
3705
+ flex: 1;
3706
+ display: grid;
3707
+ gap: 2px;
3708
+ min-width: 0;
3709
+ }
3710
+
3711
+ .panel-card-title {
3712
+ font-size: 15px;
3713
+ }
3714
+
3715
+ .panel-card--flush {
3716
+ padding: 0;
3717
+ }
3718
+
3719
+ .panel-card-head {
3720
+ padding: 20px 24px 16px;
3721
+ border-bottom: 1px solid var(--border-soft);
3722
+ }
3723
+
3724
+ .panel-card-foot {
3725
+ display: flex;
3726
+ justify-content: flex-end;
3727
+ align-items: center;
3728
+ gap: 12px;
3729
+ margin-top: 16px;
3730
+ }
3731
+
3732
+ .panel-card-foot--start {
3733
+ justify-content: flex-start;
3734
+ flex-wrap: wrap;
3735
+ margin: 0;
3736
+ padding: 8px 24px 16px;
3737
+ }
3738
+
3739
+ .panel-card-foot--start .form-banner {
3740
+ margin: 0;
3741
+ }
3742
+
3743
+ .form-grid {
3744
+ display: grid;
3745
+ grid-template-columns: 1fr 1fr;
3746
+ column-gap: 24px;
3747
+ max-width: 680px;
3748
+ }
3749
+
3750
+ .form-grid-full {
3751
+ grid-column: 1 / -1;
3752
+ max-width: calc(50% - 12px);
3753
+ }
3754
+
3755
+ .session-list {
3756
+ list-style: none;
3757
+ margin: 0;
3758
+ padding: 0 24px;
3759
+ }
3760
+
3761
+ .session {
3762
+ display: flex;
3763
+ align-items: center;
3764
+ gap: 16px;
3765
+ padding: 14px 0;
3766
+ font-size: 13px;
3767
+ }
3768
+
3769
+ .session + .session {
3770
+ border-top: 1px solid var(--border-soft);
3771
+ }
3772
+
3773
+ .session > .icon {
3774
+ width: 20px;
3775
+ height: 20px;
3776
+ color: var(--muted);
3777
+ }
3778
+
3779
+ .session .key-name {
3780
+ flex: 1;
3781
+ }
3782
+
3783
+ .session .key-name strong {
3784
+ font-size: 13px;
3785
+ }
3786
+
3787
+ .session .tag {
3788
+ font-size: 12px;
3789
+ padding: 2px 10px;
3790
+ }
3791
+
2624
3792
  /* --- Écrans étroits ------------------------------------------------------- */
2625
3793
 
2626
3794
  @media (max-width: 1000px) {
3795
+ .page {
3796
+ padding: 24px 20px 40px;
3797
+ }
3798
+
3799
+ .key-row {
3800
+ grid-template-columns: minmax(160px, 2fr) minmax(120px, 1.2fr) minmax(0, 1.4fr) 100px;
3801
+ }
3802
+
3803
+ .key-row > :nth-child(4),
3804
+ .key-row > :nth-child(5) {
3805
+ display: none;
3806
+ }
3807
+
2627
3808
  .topbar-search {
2628
3809
  max-width: 240px;
2629
3810
  }