eminiar 0.12.0 → 0.13.0

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.
@@ -2790,3 +2790,821 @@ button.sw-release {
2790
2790
  text-overflow: ellipsis;
2791
2791
  white-space: nowrap;
2792
2792
  }
2793
+
2794
+ /* --- adjudicator tab (adj-*) ------------------------------------------------------------
2795
+ Source hues (heuristic blue, blend violet, cache teal, fallback amber) are fixed in both
2796
+ themes like the kind colours; everything else uses the theme tokens. Every coloured mark
2797
+ sits next to a word, so colour is never the only signal. */
2798
+ .adj-page .adj-t-ok {
2799
+ color: var(--ok);
2800
+ }
2801
+ .adj-page .adj-t-warn {
2802
+ color: var(--warn);
2803
+ }
2804
+ .adj-page .adj-t-bad {
2805
+ color: var(--bad);
2806
+ }
2807
+ .adj-page .adj-t-muted {
2808
+ color: var(--muted);
2809
+ }
2810
+ .adj-page .adj-t-accent {
2811
+ color: var(--accent);
2812
+ }
2813
+ .adj-page .tag.adj-t-ok,
2814
+ .adj-page .tag.adj-t-warn,
2815
+ .adj-page .tag.adj-t-bad,
2816
+ .adj-page .tag.adj-t-accent {
2817
+ border-color: currentColor;
2818
+ }
2819
+ .adj-page :is(a, button, [tabindex], select, textarea, input):focus-visible {
2820
+ outline: 2px solid var(--accent);
2821
+ outline-offset: 2px;
2822
+ }
2823
+ .adj-page .kv dd {
2824
+ word-break: break-word;
2825
+ }
2826
+ .adj-cmd {
2827
+ font: 12px var(--mono);
2828
+ background: var(--code);
2829
+ border: 1px solid var(--line);
2830
+ border-radius: 4px;
2831
+ padding: 1px 6px;
2832
+ white-space: nowrap;
2833
+ }
2834
+ .adj-link {
2835
+ border: 0;
2836
+ background: none;
2837
+ padding: 0;
2838
+ color: var(--accent);
2839
+ font: inherit;
2840
+ cursor: pointer;
2841
+ text-decoration: underline dotted;
2842
+ }
2843
+ .adj-intro p {
2844
+ margin: 0 0 8px;
2845
+ max-width: 80ch;
2846
+ line-height: 1.5;
2847
+ }
2848
+ .adj-intro .reasons {
2849
+ font-size: 12.5px;
2850
+ max-width: 80ch;
2851
+ }
2852
+ .adj-intro {
2853
+ margin-bottom: 14px;
2854
+ }
2855
+ .adj-assume {
2856
+ margin: -4px 0 14px;
2857
+ }
2858
+ .adj-kpis .card {
2859
+ min-width: 0;
2860
+ }
2861
+ .adj-kpis .sub {
2862
+ overflow-wrap: anywhere;
2863
+ }
2864
+ /* a wide table or chart scrolls inside its own box, so phone widths never scroll the page */
2865
+ .adj-scroll,
2866
+ .scroll-x {
2867
+ overflow-x: auto;
2868
+ max-width: 100%;
2869
+ }
2870
+ /* cells keep one line: a squeezed table scrolls instead of stacking a cell's labels */
2871
+ .scroll-x > table th,
2872
+ .scroll-x > table td {
2873
+ white-space: nowrap;
2874
+ }
2875
+ .adj-filters {
2876
+ margin-bottom: 8px;
2877
+ }
2878
+ .adj-filter {
2879
+ display: inline-flex;
2880
+ align-items: center;
2881
+ gap: 4px;
2882
+ }
2883
+ .adj-pager {
2884
+ justify-content: center;
2885
+ margin-top: 8px;
2886
+ }
2887
+ .adj-log {
2888
+ margin-bottom: 14px;
2889
+ }
2890
+ table.adj-calls {
2891
+ font-size: 12.5px;
2892
+ }
2893
+ table.adj-calls td {
2894
+ vertical-align: middle;
2895
+ }
2896
+ .adj-headcell {
2897
+ max-width: 280px;
2898
+ min-width: 140px;
2899
+ overflow: hidden;
2900
+ text-overflow: ellipsis;
2901
+ white-space: nowrap;
2902
+ }
2903
+ .adj-cx {
2904
+ display: inline-block;
2905
+ width: 26px;
2906
+ height: 5px;
2907
+ border-radius: 3px;
2908
+ background: var(--line);
2909
+ margin-right: 5px;
2910
+ vertical-align: middle;
2911
+ overflow: hidden;
2912
+ }
2913
+ .adj-cx i {
2914
+ display: block;
2915
+ height: 100%;
2916
+ background: var(--accent);
2917
+ }
2918
+ /* complexity histogram */
2919
+ .adj-hist {
2920
+ display: grid;
2921
+ grid-template-columns: repeat(5, minmax(0, 1fr));
2922
+ gap: 8px;
2923
+ align-items: end;
2924
+ }
2925
+ .adj-hist-col {
2926
+ display: flex;
2927
+ flex-direction: column;
2928
+ align-items: center;
2929
+ gap: 2px;
2930
+ min-width: 0;
2931
+ font-size: 11px;
2932
+ }
2933
+ .adj-hist-col .n {
2934
+ font-variant-numeric: tabular-nums;
2935
+ }
2936
+ .adj-hist-col .k {
2937
+ font-weight: 600;
2938
+ }
2939
+ .adj-hist-col .lbl {
2940
+ font-size: 10.5px;
2941
+ text-align: center;
2942
+ overflow-wrap: anywhere;
2943
+ }
2944
+ .adj-hist-track {
2945
+ height: 110px;
2946
+ width: 100%;
2947
+ max-width: 54px;
2948
+ display: flex;
2949
+ align-items: flex-end;
2950
+ border-bottom: 1px solid var(--line);
2951
+ }
2952
+ .adj-hist-bar {
2953
+ width: 100%;
2954
+ min-height: 1px;
2955
+ background: var(--accent);
2956
+ border-radius: 3px 3px 0 0;
2957
+ }
2958
+ /* tier matrix */
2959
+ table.adj-matrix {
2960
+ width: auto;
2961
+ min-width: 60%;
2962
+ font-size: 12.5px;
2963
+ }
2964
+ table.adj-matrix th.corner {
2965
+ font-weight: 400;
2966
+ font-size: 11px;
2967
+ }
2968
+ table.adj-matrix td.cell {
2969
+ min-width: 56px;
2970
+ text-align: center;
2971
+ border: 1px solid var(--line);
2972
+ font-variant-numeric: tabular-nums;
2973
+ }
2974
+ table.adj-matrix td.diag {
2975
+ box-shadow: inset 0 0 0 2px var(--ok);
2976
+ }
2977
+ table.adj-matrix td.strong {
2978
+ color: var(--card);
2979
+ font-weight: 600;
2980
+ }
2981
+ /* health */
2982
+ .adj-health {
2983
+ border-top: 1px solid var(--line);
2984
+ margin-top: 10px;
2985
+ padding-top: 8px;
2986
+ }
2987
+ .adj-health-grid {
2988
+ display: grid;
2989
+ grid-template-columns: auto minmax(0, 1fr);
2990
+ gap: 3px 12px;
2991
+ font-size: 12.5px;
2992
+ margin-top: 4px;
2993
+ }
2994
+ .adj-more summary {
2995
+ cursor: pointer;
2996
+ margin-top: 8px;
2997
+ }
2998
+ /* savings */
2999
+ .adj-figs {
3000
+ display: grid;
3001
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
3002
+ gap: 10px;
3003
+ margin-bottom: 10px;
3004
+ }
3005
+ .adj-figs .big {
3006
+ font-size: 20px;
3007
+ }
3008
+ table.adj-tiers td {
3009
+ vertical-align: middle;
3010
+ font-size: 12.5px;
3011
+ }
3012
+ table.adj-tiers .bar {
3013
+ max-width: 100%;
3014
+ }
3015
+ table.adj-eval {
3016
+ font-size: 12px;
3017
+ }
3018
+ /* try-it */
3019
+ .adj-try textarea {
3020
+ width: 100%;
3021
+ resize: vertical;
3022
+ min-height: 70px;
3023
+ }
3024
+ .adj-try-out {
3025
+ margin-top: 10px;
3026
+ border-top: 1px solid var(--line);
3027
+ padding-top: 10px;
3028
+ }
3029
+ /* drawer */
3030
+ .adj-backdrop {
3031
+ position: fixed;
3032
+ inset: 0;
3033
+ background: rgba(0, 0, 0, 0.35);
3034
+ z-index: 40;
3035
+ }
3036
+ .adj-drawer {
3037
+ position: fixed;
3038
+ top: 0;
3039
+ right: 0;
3040
+ bottom: 0;
3041
+ width: min(680px, 100vw);
3042
+ background: var(--bg);
3043
+ border-left: 1px solid var(--line);
3044
+ box-shadow: var(--shadow);
3045
+ z-index: 41;
3046
+ display: flex;
3047
+ flex-direction: column;
3048
+ outline: none;
3049
+ }
3050
+ .adj-drawer-head {
3051
+ display: flex;
3052
+ align-items: center;
3053
+ gap: 8px;
3054
+ flex-wrap: wrap;
3055
+ padding: 10px 16px;
3056
+ background: var(--card);
3057
+ border-bottom: 1px solid var(--line);
3058
+ flex: none;
3059
+ }
3060
+ .adj-drawer-body {
3061
+ flex: 1;
3062
+ min-height: 0;
3063
+ overflow-y: auto;
3064
+ overflow-x: hidden;
3065
+ padding: 12px 16px 24px;
3066
+ }
3067
+ .adj-drawer-body section {
3068
+ background: var(--card);
3069
+ border: 1px solid var(--line);
3070
+ border-radius: 10px;
3071
+ padding: 12px;
3072
+ margin-bottom: 10px;
3073
+ min-width: 0;
3074
+ }
3075
+ .adj-h {
3076
+ font-size: 11.5px;
3077
+ color: var(--muted);
3078
+ text-transform: uppercase;
3079
+ letter-spacing: 0.04em;
3080
+ font-weight: 600;
3081
+ display: flex;
3082
+ align-items: center;
3083
+ gap: 8px;
3084
+ margin: 0 0 6px;
3085
+ }
3086
+ .adj-h .right {
3087
+ margin-left: auto;
3088
+ text-transform: none;
3089
+ letter-spacing: 0;
3090
+ font-weight: 400;
3091
+ }
3092
+ .adj-head {
3093
+ margin: 0 0 4px;
3094
+ padding: 8px 10px;
3095
+ border-left: 3px solid var(--accent);
3096
+ background: var(--code);
3097
+ border-radius: 0 6px 6px 0;
3098
+ font: 12.5px / 1.5 var(--mono);
3099
+ white-space: pre-wrap;
3100
+ overflow-wrap: anywhere;
3101
+ }
3102
+ .adj-summary {
3103
+ display: grid;
3104
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
3105
+ gap: 8px;
3106
+ }
3107
+ .adj-summary > div,
3108
+ .adj-savings-row > div {
3109
+ display: flex;
3110
+ flex-direction: column;
3111
+ min-width: 0;
3112
+ }
3113
+ .adj-summary .k,
3114
+ .adj-savings-row .k {
3115
+ font-size: 11px;
3116
+ color: var(--muted);
3117
+ }
3118
+ .adj-summary b,
3119
+ .adj-savings-row b {
3120
+ font-size: 17px;
3121
+ overflow-wrap: anywhere;
3122
+ }
3123
+ .adj-summary .s {
3124
+ font-size: 11px;
3125
+ color: var(--muted);
3126
+ }
3127
+ .adj-summary.small4 b {
3128
+ font-size: 15px;
3129
+ }
3130
+ .adj-savings-row {
3131
+ display: flex;
3132
+ align-items: center;
3133
+ gap: 10px;
3134
+ flex-wrap: wrap;
3135
+ margin-bottom: 4px;
3136
+ }
3137
+ .adj-savings-row .op {
3138
+ color: var(--muted);
3139
+ font-size: 18px;
3140
+ }
3141
+ .adj-alpha {
3142
+ display: inline-flex;
3143
+ align-items: center;
3144
+ gap: 4px;
3145
+ font-size: 12px;
3146
+ margin-right: 8px;
3147
+ }
3148
+ .adj-alpha .scorebar {
3149
+ width: 48px;
3150
+ display: inline-block;
3151
+ margin: 0;
3152
+ }
3153
+ .adj-intents {
3154
+ display: flex;
3155
+ flex-wrap: wrap;
3156
+ gap: 4px 4px;
3157
+ }
3158
+ .adj-legend {
3159
+ margin-bottom: 6px;
3160
+ }
3161
+ /* score tables */
3162
+ .adj-table {
3163
+ margin-top: 12px;
3164
+ }
3165
+ .adj-table:first-of-type {
3166
+ margin-top: 6px;
3167
+ }
3168
+ .adj-verdict-line {
3169
+ margin-bottom: 6px;
3170
+ font-size: 13px;
3171
+ }
3172
+ .adj-choice {
3173
+ font-size: 16px;
3174
+ }
3175
+ .adj-entries {
3176
+ display: flex;
3177
+ flex-direction: column;
3178
+ gap: 2px;
3179
+ }
3180
+ .adj-entry {
3181
+ border-radius: 6px;
3182
+ }
3183
+ .adj-entry.chosen {
3184
+ background: var(--accent-soft);
3185
+ }
3186
+ .adj-entry-row {
3187
+ display: grid;
3188
+ grid-template-columns: minmax(70px, 150px) minmax(0, 1fr) 40px;
3189
+ align-items: center;
3190
+ gap: 8px;
3191
+ width: 100%;
3192
+ margin: 0;
3193
+ padding: 3px 6px;
3194
+ border: 0;
3195
+ background: none;
3196
+ color: inherit;
3197
+ font: inherit;
3198
+ font-size: 12.5px;
3199
+ text-align: left;
3200
+ cursor: pointer;
3201
+ border-radius: 6px;
3202
+ }
3203
+ .adj-entry-row:hover {
3204
+ background: var(--hover);
3205
+ }
3206
+ .adj-entry.chosen .adj-entry-row:hover {
3207
+ background: transparent;
3208
+ }
3209
+ .adj-entry-row .opt {
3210
+ overflow: hidden;
3211
+ text-overflow: ellipsis;
3212
+ white-space: nowrap;
3213
+ }
3214
+ .adj-entry.chosen .opt {
3215
+ font-weight: 600;
3216
+ }
3217
+ .adj-entry-row .mark {
3218
+ display: inline-block;
3219
+ width: 16px;
3220
+ text-align: center;
3221
+ font-size: 11px;
3222
+ color: var(--ok);
3223
+ font-weight: 700;
3224
+ }
3225
+ .adj-entry-row .mark.ru {
3226
+ color: var(--muted);
3227
+ border: 1px solid var(--line);
3228
+ border-radius: 50%;
3229
+ width: 15px;
3230
+ height: 15px;
3231
+ line-height: 13px;
3232
+ font-size: 9.5px;
3233
+ margin-right: 1px;
3234
+ }
3235
+ .adj-entry-row .pc {
3236
+ text-align: right;
3237
+ font-size: 12px;
3238
+ }
3239
+ .adj-sbar {
3240
+ display: flex;
3241
+ height: 9px;
3242
+ background: var(--line);
3243
+ border-radius: 3px;
3244
+ overflow: hidden;
3245
+ }
3246
+ .adj-sbar i {
3247
+ display: block;
3248
+ height: 100%;
3249
+ }
3250
+ .adj-sbar i + i {
3251
+ box-shadow: inset 1px 0 0 var(--card);
3252
+ }
3253
+ .adj-reasons {
3254
+ list-style: none;
3255
+ margin: 2px 0 6px;
3256
+ padding: 0 6px 0 30px;
3257
+ font-size: 12px;
3258
+ }
3259
+ .adj-reasons li {
3260
+ display: grid;
3261
+ grid-template-columns: minmax(70px, 140px) 80px 44px minmax(0, 1fr);
3262
+ align-items: center;
3263
+ gap: 6px;
3264
+ padding: 1px 0;
3265
+ }
3266
+ .adj-reasons .f {
3267
+ overflow: hidden;
3268
+ text-overflow: ellipsis;
3269
+ white-space: nowrap;
3270
+ }
3271
+ .adj-reasons .w {
3272
+ text-align: right;
3273
+ font-size: 11.5px;
3274
+ }
3275
+ .adj-reasons .note {
3276
+ color: var(--muted);
3277
+ overflow-wrap: anywhere;
3278
+ }
3279
+ .adj-div {
3280
+ position: relative;
3281
+ height: 7px;
3282
+ background: linear-gradient(var(--line), var(--line)) center / 1px 100% no-repeat;
3283
+ }
3284
+ .adj-div i {
3285
+ position: absolute;
3286
+ top: 0;
3287
+ bottom: 0;
3288
+ border-radius: 2px;
3289
+ }
3290
+ .adj-div i.pos {
3291
+ background: var(--accent);
3292
+ }
3293
+ .adj-div i.neg {
3294
+ background: var(--bad);
3295
+ }
3296
+ .adj-div i.prov {
3297
+ background: #7c3aed;
3298
+ }
3299
+ .adj-div i.learn {
3300
+ background: #d97706;
3301
+ }
3302
+ /* complexity scale */
3303
+ .adj-scale {
3304
+ position: relative;
3305
+ display: grid;
3306
+ grid-template-columns: repeat(5, minmax(0, 1fr));
3307
+ gap: 2px;
3308
+ margin: 4px 0 8px;
3309
+ padding-top: 10px;
3310
+ }
3311
+ .adj-scale span {
3312
+ font-size: 10.5px;
3313
+ text-align: center;
3314
+ padding: 3px 2px;
3315
+ background: var(--line);
3316
+ color: var(--muted);
3317
+ overflow: hidden;
3318
+ text-overflow: ellipsis;
3319
+ white-space: nowrap;
3320
+ }
3321
+ .adj-scale span:first-child {
3322
+ border-radius: 4px 0 0 4px;
3323
+ }
3324
+ .adj-scale span:nth-child(5) {
3325
+ border-radius: 0 4px 4px 0;
3326
+ }
3327
+ .adj-scale span.on {
3328
+ background: var(--accent-soft);
3329
+ color: var(--fg);
3330
+ font-weight: 600;
3331
+ }
3332
+ .adj-scale .mk {
3333
+ position: absolute;
3334
+ top: 0;
3335
+ width: 0;
3336
+ height: 0;
3337
+ margin-left: -6px;
3338
+ border: 6px solid transparent;
3339
+ border-top: 9px solid var(--fg);
3340
+ }
3341
+ .adj-scale .mk.heur {
3342
+ border-top-color: var(--muted);
3343
+ opacity: 0.7;
3344
+ }
3345
+ @media (max-width: 600px) {
3346
+ .adj-reasons {
3347
+ padding-left: 6px;
3348
+ }
3349
+ .adj-reasons li {
3350
+ grid-template-columns: minmax(0, 1fr) 60px 44px;
3351
+ }
3352
+ .adj-reasons .note {
3353
+ grid-column: 1 / -1;
3354
+ padding-left: 8px;
3355
+ }
3356
+ .adj-entry-row {
3357
+ grid-template-columns: minmax(60px, 110px) minmax(0, 1fr) 36px;
3358
+ }
3359
+ .adj-scale span {
3360
+ font-size: 9.5px;
3361
+ }
3362
+ }
3363
+ .adj-more-opts {
3364
+ align-self: flex-start;
3365
+ margin: 2px 0 0 28px;
3366
+ }
3367
+ /* phone width: the tab strip gets its own row and scrolls inside it, so thirteen tabs never
3368
+ widen the page */
3369
+ @media (max-width: 900px) {
3370
+ nav.tabs {
3371
+ order: 10;
3372
+ flex: 1 0 100%;
3373
+ min-width: 0;
3374
+ overflow-x: auto;
3375
+ }
3376
+ nav.tabs button {
3377
+ flex: none;
3378
+ }
3379
+ }
3380
+
3381
+ /* --- Jev impact panel (inside the adjudicator tab) -------------------------------------
3382
+ Reuses the adj-* tokens, tags and tables; only the verdict line, the notes and the
3383
+ evidence list are new. Colours come from the theme tokens, so light and dark both work. */
3384
+ .jev-impact {
3385
+ margin-bottom: 14px;
3386
+ }
3387
+ .jev-impact > .grid {
3388
+ margin-top: 12px;
3389
+ }
3390
+ .jev-impact .grid .card {
3391
+ min-width: 0;
3392
+ }
3393
+ .jev-verdict {
3394
+ display: flex;
3395
+ flex-wrap: wrap;
3396
+ align-items: center;
3397
+ gap: 6px 10px;
3398
+ margin: 4px 0 6px;
3399
+ }
3400
+ .jev-why-line {
3401
+ min-width: 0;
3402
+ overflow-wrap: anywhere;
3403
+ }
3404
+ .jev-rule {
3405
+ margin: 4px 0 8px;
3406
+ max-width: 80ch;
3407
+ }
3408
+ .jev-rule p {
3409
+ margin: 0 0 6px;
3410
+ }
3411
+ .jev-warn {
3412
+ margin: 4px 0 0;
3413
+ padding-left: 18px;
3414
+ }
3415
+ .jev-banner {
3416
+ margin: 4px 0 8px;
3417
+ padding: 6px 10px;
3418
+ border: 1px solid var(--warn);
3419
+ border-radius: 6px;
3420
+ overflow-wrap: anywhere;
3421
+ }
3422
+ .jev-notes,
3423
+ .jev-foot {
3424
+ margin-top: 8px;
3425
+ overflow-wrap: anywhere;
3426
+ }
3427
+ .jev-foot {
3428
+ margin-top: 12px;
3429
+ }
3430
+ .jev-lines {
3431
+ list-style: none;
3432
+ margin: 8px 0 0;
3433
+ padding: 0;
3434
+ font-size: 12.5px;
3435
+ display: grid;
3436
+ gap: 3px;
3437
+ }
3438
+ .jev-lines b {
3439
+ display: inline-block;
3440
+ min-width: 68px;
3441
+ }
3442
+ .jev-evidence {
3443
+ list-style: none;
3444
+ margin: 6px 0 0;
3445
+ padding: 0;
3446
+ display: grid;
3447
+ gap: 5px;
3448
+ font-size: 12.5px;
3449
+ }
3450
+ .jev-evidence li {
3451
+ display: flex;
3452
+ flex-wrap: wrap;
3453
+ align-items: baseline;
3454
+ gap: 2px 8px;
3455
+ min-width: 0;
3456
+ }
3457
+ .jev-move {
3458
+ font-variant-numeric: tabular-nums;
3459
+ }
3460
+ .jev-why {
3461
+ flex-basis: 100%;
3462
+ overflow-wrap: anywhere;
3463
+ }
3464
+ @media (min-width: 601px) {
3465
+ .jev-why {
3466
+ flex-basis: auto;
3467
+ }
3468
+ }
3469
+
3470
+ /* --- Jev request log (inside the Jev impact panel) ---------------------------------------
3471
+ Table, timing bar and body viewer of the stored Jev requests. Theme tokens only, so light
3472
+ and dark both work; every coloured mark has a word beside it (legend, label or title). */
3473
+ .jev-xchg {
3474
+ margin-bottom: 14px;
3475
+ }
3476
+ .jev-xchg .jev-banner {
3477
+ margin-top: 6px;
3478
+ line-height: 1.45;
3479
+ }
3480
+ .xchg-row {
3481
+ cursor: pointer;
3482
+ }
3483
+ .xchg-row:hover td {
3484
+ background: var(--accent-soft);
3485
+ }
3486
+ .xchg-table td,
3487
+ .xchg-table th {
3488
+ white-space: nowrap;
3489
+ }
3490
+ .xchg-dur {
3491
+ display: inline-flex;
3492
+ align-items: center;
3493
+ gap: 8px;
3494
+ }
3495
+ .xchg-meter {
3496
+ display: inline-block;
3497
+ width: 56px;
3498
+ height: 5px;
3499
+ border-radius: 3px;
3500
+ background: var(--line);
3501
+ overflow: hidden;
3502
+ }
3503
+ .xchg-meter-fill {
3504
+ display: block;
3505
+ height: 100%;
3506
+ background: var(--accent);
3507
+ }
3508
+ .xchg-meter-fill.over {
3509
+ background: var(--bad);
3510
+ }
3511
+ .xchg-ids {
3512
+ display: inline-flex;
3513
+ flex-wrap: wrap;
3514
+ gap: 2px 8px;
3515
+ }
3516
+ /* timing bar: absolutely placed segments on a track, a marker for the deadline */
3517
+ .xchg-bar {
3518
+ position: relative;
3519
+ height: 16px;
3520
+ border-radius: 4px;
3521
+ background: var(--code);
3522
+ border: 1px solid var(--line);
3523
+ overflow: hidden;
3524
+ margin: 4px 0 6px;
3525
+ }
3526
+ .xchg-seg {
3527
+ position: absolute;
3528
+ top: 0;
3529
+ bottom: 0;
3530
+ min-width: 2px;
3531
+ }
3532
+ .xchg-seg-job {
3533
+ background: var(--muted);
3534
+ }
3535
+ .xchg-seg-wait {
3536
+ background: var(--warn);
3537
+ }
3538
+ .xchg-seg-retry {
3539
+ background: var(--bad);
3540
+ }
3541
+ .xchg-seg-ttfb {
3542
+ background: var(--accent);
3543
+ }
3544
+ .xchg-seg-rest {
3545
+ background: color-mix(in srgb, var(--accent) 45%, transparent);
3546
+ }
3547
+ .xchg-deadline {
3548
+ position: absolute;
3549
+ top: -1px;
3550
+ bottom: -1px;
3551
+ width: 0;
3552
+ border-left: 2px dashed var(--fg);
3553
+ }
3554
+ .xchg-legend {
3555
+ list-style: none;
3556
+ margin: 0 0 10px;
3557
+ padding: 0;
3558
+ display: flex;
3559
+ flex-wrap: wrap;
3560
+ gap: 2px 14px;
3561
+ }
3562
+ .xchg-legend li {
3563
+ display: inline-flex;
3564
+ align-items: center;
3565
+ gap: 5px;
3566
+ }
3567
+ .xchg-dot {
3568
+ display: inline-block;
3569
+ width: 9px;
3570
+ height: 9px;
3571
+ border-radius: 2px;
3572
+ min-width: 0;
3573
+ }
3574
+ .xchg-dot-deadline {
3575
+ background: none;
3576
+ border-left: 2px dashed var(--fg);
3577
+ border-radius: 0;
3578
+ width: 0;
3579
+ }
3580
+ .xchg-facts dd {
3581
+ word-break: normal;
3582
+ overflow-wrap: anywhere;
3583
+ }
3584
+ .xchg-body-head {
3585
+ display: flex;
3586
+ align-items: center;
3587
+ justify-content: space-between;
3588
+ gap: 8px;
3589
+ margin-bottom: 4px;
3590
+ }
3591
+ .xchg-trunc {
3592
+ margin-bottom: 4px;
3593
+ overflow-wrap: anywhere;
3594
+ }
3595
+ .xchg-json {
3596
+ margin: 0;
3597
+ padding: 8px 10px;
3598
+ max-height: 60vh;
3599
+ overflow: auto;
3600
+ white-space: pre;
3601
+ background: var(--code);
3602
+ border: 1px solid var(--line);
3603
+ border-radius: 6px;
3604
+ font: 12px / 1.5 var(--mono);
3605
+ tab-size: 2;
3606
+ }
3607
+ .adj-drawer-body .adj-h .right {
3608
+ overflow-wrap: anywhere;
3609
+ text-align: right;
3610
+ }