@umituz/web-design-system 6.15.0 → 6.17.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.
@@ -3027,3 +3027,3732 @@ a.entity-row:hover,
3027
3027
  flex-direction: column;
3028
3028
  gap: 0.5rem;
3029
3029
  }
3030
+
3031
+ .chart-total {
3032
+ font-family: var(--font-mono, monospace);
3033
+ font-size: 20px;
3034
+ font-weight: 600;
3035
+ color: var(--ink-900, var(--color-foreground));
3036
+ }
3037
+
3038
+ .axis-tick {
3039
+ font-family: var(--font-mono, monospace);
3040
+ font-size: 9.5px;
3041
+ fill: var(--ink-300, var(--color-muted-foreground));
3042
+ }
3043
+
3044
+ .axis-grid-line {
3045
+ stroke: var(--line, var(--color-border));
3046
+ stroke-width: 1;
3047
+ stroke-dasharray: 1 4;
3048
+ }
3049
+
3050
+ .chart-bar-label {
3051
+ font-family: var(--font-mono, monospace);
3052
+ font-size: 10px;
3053
+ fill: var(--ink-500, var(--color-muted-foreground));
3054
+ }
3055
+
3056
+ .ch-series-0 { fill: var(--chart-1, var(--color-primary)); stroke: var(--chart-1, var(--color-primary)); background: var(--chart-1, var(--color-primary)); }
3057
+ .ch-series-1 { fill: var(--chart-2, var(--color-accent)); stroke: var(--chart-2, var(--color-accent)); background: var(--chart-2, var(--color-accent)); }
3058
+ .ch-series-2 { fill: var(--chart-3, var(--color-info)); stroke: var(--chart-3, var(--color-info)); background: var(--chart-3, var(--color-info)); }
3059
+ .ch-series-3 { fill: var(--chart-4, #7a6ba8); stroke: var(--chart-4, #7a6ba8); background: var(--chart-4, #7a6ba8); }
3060
+ .ch-series-4 { fill: var(--chart-5, #8a5a3b); stroke: var(--chart-5, #8a5a3b); background: var(--chart-5, #8a5a3b); }
3061
+ .ch-series-5 { fill: var(--chart-6, #5e7d5a); stroke: var(--chart-6, #5e7d5a); background: var(--chart-6, #5e7d5a); }
3062
+ .ch-faint { fill: var(--chart-faint, var(--color-muted)); }
3063
+
3064
+ .font-display {
3065
+ font-family: var(--font-display, serif);
3066
+ font-weight: 600;
3067
+ letter-spacing: -0.01em;
3068
+ }
3069
+
3070
+ .font-mono {
3071
+ font-family: var(--font-mono, monospace);
3072
+ font-size: 0.93em;
3073
+ letter-spacing: -0.02em;
3074
+ }
3075
+
3076
+ .tnum {
3077
+ font-variant-numeric: tabular-nums;
3078
+ }
3079
+
3080
+ .overline {
3081
+ font-size: var(--text-xs, 11px);
3082
+ font-weight: 600;
3083
+ letter-spacing: 0.09em;
3084
+ text-transform: uppercase;
3085
+ color: var(--ink-400, var(--color-muted-foreground));
3086
+ }
3087
+
3088
+ .contour-bg {
3089
+ background-image: repeating-radial-gradient(
3090
+ circle at 30% 20%,
3091
+ transparent 0,
3092
+ transparent 22px,
3093
+ rgba(127, 148, 132, 0.16) 22px,
3094
+ rgba(127, 148, 132, 0.16) 23px
3095
+ );
3096
+ }
3097
+
3098
+ .cond-pips {
3099
+ display: inline-flex;
3100
+ align-items: center;
3101
+ gap: 3px;
3102
+ }
3103
+
3104
+ .cond-pips .pip {
3105
+ width: 7px;
3106
+ height: 7px;
3107
+ border-radius: 50%;
3108
+ background: var(--line-strong, var(--color-border));
3109
+ transition: background 120ms ease;
3110
+ }
3111
+
3112
+ .cond-pips .pip.on {
3113
+ background: var(--primary-600, var(--color-primary));
3114
+ }
3115
+
3116
+ .timeline {
3117
+ display: flex;
3118
+ flex-direction: column;
3119
+ position: relative;
3120
+ }
3121
+
3122
+ .tl-item {
3123
+ display: flex;
3124
+ align-items: flex-start;
3125
+ gap: 12px;
3126
+ padding: 8px 0;
3127
+ position: relative;
3128
+ text-align: left;
3129
+ background: transparent;
3130
+ border: none;
3131
+ font: inherit;
3132
+ color: inherit;
3133
+ }
3134
+
3135
+ .tl-item::before {
3136
+ content: '';
3137
+ position: absolute;
3138
+ top: 24px;
3139
+ bottom: -4px;
3140
+ left: 11px;
3141
+ width: 1px;
3142
+ background: var(--line, var(--color-border));
3143
+ }
3144
+
3145
+ .tl-item:last-child::before {
3146
+ display: none;
3147
+ }
3148
+
3149
+ .tl-marker {
3150
+ width: 23px;
3151
+ height: 23px;
3152
+ border-radius: 50%;
3153
+ background: var(--surface, var(--color-card));
3154
+ border: 1px solid var(--line-strong, var(--color-border));
3155
+ display: flex;
3156
+ align-items: center;
3157
+ justify-content: center;
3158
+ flex-shrink: 0;
3159
+ color: var(--ink-500, var(--color-muted-foreground));
3160
+ z-index: 1;
3161
+ }
3162
+
3163
+ .tl-item.tone-primary .tl-marker { color: var(--primary-600, var(--color-primary)); border-color: var(--primary-500, var(--color-primary)); }
3164
+ .tl-item.tone-success .tl-marker { color: var(--status-success, #2f6b40); border-color: var(--status-success, #2f6b40); }
3165
+ .tl-item.tone-warning .tl-marker { color: var(--status-warning, #96690f); border-color: var(--status-warning, #96690f); }
3166
+ .tl-item.tone-danger .tl-marker { color: var(--status-danger, #a53f2a); border-color: var(--status-danger, #a53f2a); }
3167
+ .tl-item.tone-info .tl-marker { color: var(--status-info, #3e5f80); border-color: var(--status-info, #3e5f80); }
3168
+
3169
+ .tl-content {
3170
+ display: flex;
3171
+ flex-direction: column;
3172
+ gap: 2px;
3173
+ min-width: 0;
3174
+ flex: 1;
3175
+ }
3176
+
3177
+ .tl-title {
3178
+ font-size: var(--text-sm, 12.5px);
3179
+ font-weight: 600;
3180
+ color: var(--ink-800, var(--color-foreground));
3181
+ }
3182
+
3183
+ .tl-sub {
3184
+ font-size: var(--text-sm, 12px);
3185
+ color: var(--ink-600, var(--color-muted-foreground));
3186
+ }
3187
+
3188
+ .tl-date {
3189
+ font-size: var(--text-xs, 11px);
3190
+ color: var(--ink-400, var(--color-muted-foreground));
3191
+ margin-top: 2px;
3192
+ }
3193
+
3194
+ .section-head {
3195
+ display: flex;
3196
+ align-items: center;
3197
+ justify-content: space-between;
3198
+ gap: 12px;
3199
+ margin-bottom: 12px;
3200
+ }
3201
+
3202
+ .section-title {
3203
+ font-size: var(--text-md, 15px);
3204
+ font-weight: 600;
3205
+ color: var(--ink-900, var(--color-foreground));
3206
+ }
3207
+
3208
+ .detail-grid {
3209
+ display: grid;
3210
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3211
+ gap: 12px;
3212
+ }
3213
+
3214
+ .detail-item {
3215
+ display: flex;
3216
+ flex-direction: column;
3217
+ gap: 2px;
3218
+ }
3219
+
3220
+ .d-label {
3221
+ font-size: var(--text-xs, 11px);
3222
+ font-weight: 600;
3223
+ letter-spacing: 0.06em;
3224
+ text-transform: uppercase;
3225
+ color: var(--ink-400, var(--color-muted-foreground));
3226
+ }
3227
+
3228
+ .d-value {
3229
+ font-size: var(--text-sm, 13px);
3230
+ color: var(--ink-800, var(--color-foreground));
3231
+ }
3232
+
3233
+ .data-toolbar {
3234
+ display: flex;
3235
+ align-items: center;
3236
+ gap: 8px;
3237
+ padding: 10px 14px;
3238
+ background: var(--surface, var(--color-card));
3239
+ border: 1px solid var(--line, var(--color-border));
3240
+ border-radius: var(--r-md, 6px);
3241
+ margin-bottom: 12px;
3242
+ flex-wrap: wrap;
3243
+ }
3244
+
3245
+ .data-toolbar .search-field {
3246
+ position: relative;
3247
+ display: flex;
3248
+ align-items: center;
3249
+ flex: 1;
3250
+ min-width: 180px;
3251
+ }
3252
+
3253
+ .data-toolbar .search-field svg {
3254
+ position: absolute;
3255
+ left: 9px;
3256
+ color: var(--ink-400, var(--color-muted-foreground));
3257
+ pointer-events: none;
3258
+ }
3259
+
3260
+ .data-toolbar .search-field .input {
3261
+ padding-left: 28px;
3262
+ padding-right: 28px;
3263
+ }
3264
+
3265
+ .data-toolbar .result-count {
3266
+ font-size: var(--text-xs, 11px);
3267
+ color: var(--ink-400, var(--color-muted-foreground));
3268
+ margin-left: auto;
3269
+ font-weight: 500;
3270
+ }
3271
+
3272
+ .field {
3273
+ display: flex;
3274
+ flex-direction: column;
3275
+ gap: 5px;
3276
+ min-width: 0;
3277
+ }
3278
+
3279
+ .field-label {
3280
+ font-size: var(--text-sm, 12.5px);
3281
+ font-weight: 600;
3282
+ color: var(--ink-700, var(--color-foreground));
3283
+ display: flex;
3284
+ justify-content: space-between;
3285
+ align-items: baseline;
3286
+ }
3287
+
3288
+ .field-label .req {
3289
+ color: var(--status-danger, var(--color-destructive));
3290
+ margin-inline-start: 3px;
3291
+ }
3292
+
3293
+ .field-error {
3294
+ font-size: var(--text-sm, 12px);
3295
+ color: var(--status-danger, var(--color-destructive));
3296
+ display: flex;
3297
+ align-items: center;
3298
+ gap: 4px;
3299
+ }
3300
+
3301
+ .field-hint {
3302
+ font-size: var(--text-sm, 12px);
3303
+ color: var(--ink-400, var(--color-muted-foreground));
3304
+ }
3305
+
3306
+ .form-grid {
3307
+ display: grid;
3308
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3309
+ gap: 14px;
3310
+ }
3311
+
3312
+ .form-row {
3313
+ display: flex;
3314
+ flex-direction: column;
3315
+ gap: 6px;
3316
+ }
3317
+
3318
+ .form-row.span-2 {
3319
+ grid-column: span 2;
3320
+ }
3321
+
3322
+ .kpi-card {
3323
+ background: var(--surface, var(--color-card));
3324
+ border: 1px solid var(--line, var(--color-border));
3325
+ border-radius: var(--r-lg, 9px);
3326
+ padding: 15px 17px 13px;
3327
+ display: flex;
3328
+ flex-direction: column;
3329
+ gap: 6px;
3330
+ min-width: 0;
3331
+ position: relative;
3332
+ }
3333
+
3334
+ .kpi-card.is-clickable {
3335
+ transition: border-color var(--dur-1, 110ms) ease, box-shadow var(--dur-1, 110ms) ease;
3336
+ }
3337
+
3338
+ .kpi-card.is-clickable:hover {
3339
+ border-color: var(--ink-300, var(--color-border));
3340
+ box-shadow: var(--shadow-2, 0 2px 6px rgba(26, 35, 28, 0.07));
3341
+ }
3342
+
3343
+ .kpi-label {
3344
+ display: flex;
3345
+ align-items: center;
3346
+ gap: 7px;
3347
+ font-size: var(--text-xs, 11px);
3348
+ font-weight: 600;
3349
+ letter-spacing: 0.08em;
3350
+ text-transform: uppercase;
3351
+ color: var(--ink-400, var(--color-muted-foreground));
3352
+ }
3353
+
3354
+ .kpi-value {
3355
+ font-family: var(--font-mono, monospace);
3356
+ font-size: 23px;
3357
+ font-weight: 600;
3358
+ letter-spacing: -0.03em;
3359
+ color: var(--ink-900, var(--color-foreground));
3360
+ line-height: 1.15;
3361
+ white-space: nowrap;
3362
+ overflow: hidden;
3363
+ text-overflow: ellipsis;
3364
+ }
3365
+
3366
+ .kpi-value small {
3367
+ font-size: 13px;
3368
+ font-weight: 500;
3369
+ color: var(--ink-400, var(--color-muted-foreground));
3370
+ margin-inline-start: 2px;
3371
+ }
3372
+
3373
+ .kpi-value.kpi-warn { color: var(--status-warning, #96690f); }
3374
+ .kpi-value.kpi-danger { color: var(--status-danger, #a53f2a); }
3375
+
3376
+ .kpi-delta {
3377
+ display: inline-flex;
3378
+ align-items: center;
3379
+ gap: 3px;
3380
+ font-size: var(--text-sm, 12.5px);
3381
+ font-weight: 600;
3382
+ }
3383
+
3384
+ .kpi-delta.up { color: var(--status-success, #2f6b40); }
3385
+ .kpi-delta.down { color: var(--status-danger, #a53f2a); }
3386
+ .kpi-delta svg { width: 12px; height: 12px; }
3387
+ .kpi-delta .delta-base {
3388
+ color: var(--ink-400, var(--color-muted-foreground));
3389
+ font-weight: 400;
3390
+ }
3391
+
3392
+ .app-shell {
3393
+ display: flex;
3394
+ height: 100vh;
3395
+ overflow: hidden;
3396
+ background: var(--paper, var(--color-background));
3397
+ color: var(--ink-800, var(--color-foreground));
3398
+ }
3399
+
3400
+ .sidebar-brand {
3401
+ height: var(--topbar-h, 54px);
3402
+ display: flex;
3403
+ align-items: center;
3404
+ gap: 10px;
3405
+ padding: 0 16px;
3406
+ border-bottom: 1px solid var(--chrome-line, #2a3f30);
3407
+ }
3408
+
3409
+ .brand-mark {
3410
+ width: 28px;
3411
+ height: 28px;
3412
+ border-radius: var(--r-md, 6px);
3413
+ background: var(--primary-600, var(--color-primary));
3414
+ display: flex;
3415
+ align-items: center;
3416
+ justify-content: center;
3417
+ color: #ffffff;
3418
+ flex-shrink: 0;
3419
+ }
3420
+
3421
+ .brand-text {
3422
+ display: flex;
3423
+ flex-direction: column;
3424
+ min-width: 0;
3425
+ }
3426
+
3427
+ .brand-name {
3428
+ font-family: var(--font-display, serif);
3429
+ font-size: 16px;
3430
+ font-weight: 600;
3431
+ color: #ffffff;
3432
+ line-height: 1.1;
3433
+ }
3434
+
3435
+ .brand-tag {
3436
+ font-size: 10.5px;
3437
+ color: var(--chrome-text-dim, #7f9484);
3438
+ letter-spacing: 0.04em;
3439
+ }
3440
+
3441
+ .farm-switcher {
3442
+ display: flex;
3443
+ align-items: center;
3444
+ gap: 9px;
3445
+ margin: 10px 10px 4px;
3446
+ padding: 8px 10px;
3447
+ border-radius: var(--r-md, 6px);
3448
+ background: var(--chrome-700, #1c2e21);
3449
+ border: 1px solid var(--chrome-line, #2a3f30);
3450
+ color: #ffffff;
3451
+ cursor: pointer;
3452
+ transition: background var(--dur-1, 110ms) ease;
3453
+ text-align: left;
3454
+ }
3455
+
3456
+ .farm-switcher:hover {
3457
+ background: var(--chrome-600, #233a2a);
3458
+ }
3459
+
3460
+ .fs-glyph {
3461
+ width: 22px;
3462
+ height: 22px;
3463
+ border-radius: 4px;
3464
+ background: rgba(121, 183, 136, 0.16);
3465
+ display: flex;
3466
+ align-items: center;
3467
+ justify-content: center;
3468
+ color: #9dc9a5;
3469
+ flex-shrink: 0;
3470
+ }
3471
+
3472
+ .fs-text {
3473
+ display: flex;
3474
+ flex-direction: column;
3475
+ min-width: 0;
3476
+ flex: 1;
3477
+ }
3478
+
3479
+ .fs-name {
3480
+ font-size: var(--text-sm, 12.5px);
3481
+ font-weight: 600;
3482
+ white-space: nowrap;
3483
+ overflow: hidden;
3484
+ text-overflow: ellipsis;
3485
+ }
3486
+
3487
+ .fs-sub {
3488
+ font-size: 10px;
3489
+ color: var(--chrome-text-dim, #7f9484);
3490
+ }
3491
+
3492
+ .fs-caret {
3493
+ color: var(--chrome-text-dim, #7f9484);
3494
+ flex-shrink: 0;
3495
+ }
3496
+
3497
+ .sidebar-nav {
3498
+ flex: 1;
3499
+ overflow-y: auto;
3500
+ padding: 8px 10px;
3501
+ display: flex;
3502
+ flex-direction: column;
3503
+ gap: 2px;
3504
+ }
3505
+
3506
+ .nav-group-label {
3507
+ font-size: 10px;
3508
+ font-weight: 600;
3509
+ letter-spacing: 0.08em;
3510
+ text-transform: uppercase;
3511
+ color: var(--chrome-text-dim, #7f9484);
3512
+ padding: 12px 10px 4px;
3513
+ }
3514
+
3515
+ .nav-item {
3516
+ display: flex;
3517
+ align-items: center;
3518
+ gap: 9px;
3519
+ padding: 7px 10px;
3520
+ border-radius: var(--r-md, 6px);
3521
+ font-size: var(--text-sm, 12.5px);
3522
+ color: var(--chrome-text, #c5cfc4);
3523
+ text-decoration: none;
3524
+ transition: background var(--dur-1, 110ms) ease, color var(--dur-1, 110ms) ease;
3525
+ }
3526
+
3527
+ .nav-item:hover {
3528
+ background: var(--chrome-700, #1c2e21);
3529
+ color: #ffffff;
3530
+ }
3531
+
3532
+ .nav-item.active {
3533
+ background: var(--chrome-600, #233a2a);
3534
+ color: var(--chrome-active, #d8e6d4);
3535
+ font-weight: 600;
3536
+ }
3537
+
3538
+ .nav-item .nav-badge {
3539
+ margin-left: auto;
3540
+ font-size: 10px;
3541
+ padding: 1px 6px;
3542
+ border-radius: 999px;
3543
+ background: var(--chrome-700, #1c2e21);
3544
+ color: var(--chrome-text, #c5cfc4);
3545
+ }
3546
+
3547
+ .nav-item .nav-badge-live {
3548
+ width: 6px;
3549
+ height: 6px;
3550
+ border-radius: 50%;
3551
+ background: #79b788;
3552
+ margin-left: auto;
3553
+ }
3554
+
3555
+ .nav-sub {
3556
+ display: block;
3557
+ padding: 5px 10px 5px 32px;
3558
+ font-size: 12px;
3559
+ color: var(--chrome-text-dim, #7f9484);
3560
+ border-radius: var(--r-sm, 4px);
3561
+ text-decoration: none;
3562
+ }
3563
+
3564
+ .nav-sub:hover {
3565
+ color: #dfe8db;
3566
+ background: var(--chrome-700, #1c2e21);
3567
+ }
3568
+
3569
+ .nav-sub.active {
3570
+ color: #ffffff;
3571
+ font-weight: 600;
3572
+ }
3573
+
3574
+ .sidebar-foot {
3575
+ padding: 10px;
3576
+ border-top: 1px solid var(--chrome-line, #2a3f30);
3577
+ }
3578
+
3579
+ .sidebar-user {
3580
+ display: flex;
3581
+ align-items: center;
3582
+ gap: 9px;
3583
+ padding: 6px 8px;
3584
+ border-radius: var(--r-md, 6px);
3585
+ cursor: pointer;
3586
+ width: 100%;
3587
+ text-align: left;
3588
+ }
3589
+
3590
+ .sidebar-user:hover {
3591
+ background: var(--chrome-700, #1c2e21);
3592
+ }
3593
+
3594
+ .sidebar-user .su-name {
3595
+ font-size: var(--text-sm, 12.5px);
3596
+ font-weight: 600;
3597
+ color: #ffffff;
3598
+ }
3599
+
3600
+ .sidebar-user .su-role {
3601
+ font-size: 10.5px;
3602
+ color: var(--chrome-text-dim, #7f9484);
3603
+ }
3604
+
3605
+ .main-area {
3606
+ flex: 1;
3607
+ display: flex;
3608
+ flex-direction: column;
3609
+ min-width: 0;
3610
+ overflow: hidden;
3611
+ }
3612
+
3613
+ .topbar-crumb {
3614
+ display: flex;
3615
+ align-items: center;
3616
+ gap: 6px;
3617
+ font-size: var(--text-sm, 12.5px);
3618
+ color: var(--ink-500, var(--color-muted-foreground));
3619
+ }
3620
+
3621
+ .topbar-crumb .crumb-sep {
3622
+ color: var(--ink-200, var(--color-border));
3623
+ }
3624
+
3625
+ .topbar-crumb .crumb-current {
3626
+ color: var(--ink-900, var(--color-foreground));
3627
+ font-weight: 600;
3628
+ }
3629
+
3630
+ .topbar-actions {
3631
+ display: flex;
3632
+ align-items: center;
3633
+ gap: 8px;
3634
+ }
3635
+
3636
+ .udb-period-select__select {
3637
+ height: 100%;
3638
+ border: none;
3639
+ background: transparent;
3640
+ font-family: var(--font-ui, var(--font-sans));
3641
+ font-size: var(--text-sm, 12.5px);
3642
+ color: var(--ink-600, var(--color-muted-foreground));
3643
+ outline: none;
3644
+ cursor: pointer;
3645
+ }
3646
+
3647
+
3648
+ *,
3649
+ *::before,
3650
+ *::after {
3651
+ box-sizing: border-box;
3652
+ }
3653
+
3654
+ html {
3655
+ -webkit-text-size-adjust: 100%;
3656
+ }
3657
+
3658
+ body {
3659
+ margin: 0;
3660
+ font-family: var(--font-body);
3661
+ font-size: 13px;
3662
+ line-height: 1.5;
3663
+ color: var(--text-900);
3664
+ background: var(--bg);
3665
+ -webkit-font-smoothing: antialiased;
3666
+ text-rendering: optimizeLegibility;
3667
+ font-feature-settings: 'cv05' 1;
3668
+ }
3669
+
3670
+ h1, h2, h3, h4, h5 {
3671
+ margin: 0;
3672
+ font-family: var(--font-head);
3673
+ font-weight: 600;
3674
+ color: var(--text-900);
3675
+ letter-spacing: -0.01em;
3676
+ }
3677
+
3678
+ p {
3679
+ margin: 0;
3680
+ }
3681
+
3682
+ a {
3683
+ color: var(--aqua-700);
3684
+ text-decoration: none;
3685
+ }
3686
+
3687
+ a:hover {
3688
+ text-decoration: underline;
3689
+ }
3690
+
3691
+ button {
3692
+ font-family: inherit;
3693
+ font-size: inherit;
3694
+ cursor: pointer;
3695
+ }
3696
+
3697
+ input, select, textarea {
3698
+ font-family: inherit;
3699
+ font-size: inherit;
3700
+ color: inherit;
3701
+ }
3702
+
3703
+ ::selection {
3704
+ background: var(--aqua-100);
3705
+ color: var(--ink-900);
3706
+ }
3707
+
3708
+ :focus-visible {
3709
+ outline: 2px solid var(--aqua-500);
3710
+ outline-offset: 1px;
3711
+ border-radius: 3px;
3712
+ }
3713
+
3714
+ ::-webkit-scrollbar {
3715
+ width: 9px;
3716
+ height: 9px;
3717
+ }
3718
+
3719
+ ::-webkit-scrollbar-track {
3720
+ background: transparent;
3721
+ }
3722
+
3723
+ ::-webkit-scrollbar-thumb {
3724
+ background: #c3d2d8;
3725
+ border-radius: 8px;
3726
+ border: 2px solid transparent;
3727
+ background-clip: content-box;
3728
+ }
3729
+
3730
+ ::-webkit-scrollbar-thumb:hover {
3731
+ background: #9fb4bc;
3732
+ background-clip: content-box;
3733
+ border: 2px solid transparent;
3734
+ }
3735
+
3736
+ .dark-scroll::-webkit-scrollbar-thumb {
3737
+ background: #1e4a5c;
3738
+ border: 2px solid transparent;
3739
+ background-clip: content-box;
3740
+ }
3741
+
3742
+ .mono {
3743
+ font-family: var(--font-mono);
3744
+ font-variant-numeric: tabular-nums;
3745
+ }
3746
+
3747
+ .num {
3748
+ font-family: var(--font-mono);
3749
+ font-variant-numeric: tabular-nums;
3750
+ letter-spacing: -0.02em;
3751
+ }
3752
+
3753
+ .muted {
3754
+ color: var(--text-500);
3755
+ }
3756
+
3757
+ .dim {
3758
+ color: var(--text-400);
3759
+ }
3760
+
3761
+ .strong {
3762
+ font-weight: 600;
3763
+ }
3764
+
3765
+ .right {
3766
+ text-align: right;
3767
+ }
3768
+
3769
+ .nowrap {
3770
+ white-space: nowrap;
3771
+ }
3772
+
3773
+ .ellipsis {
3774
+ overflow: hidden;
3775
+ text-overflow: ellipsis;
3776
+ white-space: nowrap;
3777
+ }
3778
+
3779
+ .tag-label {
3780
+ font-family: var(--font-mono);
3781
+ font-size: 10px;
3782
+ font-weight: 500;
3783
+ letter-spacing: 0.1em;
3784
+ text-transform: uppercase;
3785
+ color: var(--text-400);
3786
+ }
3787
+
3788
+ .row {
3789
+ display: flex;
3790
+ align-items: center;
3791
+ gap: 8px;
3792
+ }
3793
+
3794
+ .row-between {
3795
+ display: flex;
3796
+ align-items: center;
3797
+ justify-content: space-between;
3798
+ gap: 12px;
3799
+ }
3800
+
3801
+ .grow {
3802
+ flex: 1;
3803
+ min-width: 0;
3804
+ }
3805
+
3806
+ .page > * {
3807
+ animation: rise-in var(--dur-3) var(--ease-out) both;
3808
+ }
3809
+
3810
+ .page > *:nth-child(1) { animation-delay: 0ms; }
3811
+ .page > *:nth-child(2) { animation-delay: 40ms; }
3812
+ .page > *:nth-child(3) { animation-delay: 80ms; }
3813
+ .page > *:nth-child(4) { animation-delay: 120ms; }
3814
+ .page > *:nth-child(5) { animation-delay: 160ms; }
3815
+ .page > *:nth-child(6) { animation-delay: 200ms; }
3816
+ .page > *:nth-child(7) { animation-delay: 240ms; }
3817
+ .page > *:nth-child(8) { animation-delay: 280ms; }
3818
+ .page > *:nth-child(n + 9) { animation-delay: 320ms; }
3819
+
3820
+ @keyframes rise-in {
3821
+ from {
3822
+ opacity: 0;
3823
+ transform: translateY(8px);
3824
+ }
3825
+ to {
3826
+ opacity: 1;
3827
+ transform: none;
3828
+ }
3829
+ }
3830
+
3831
+ @media (prefers-reduced-motion: reduce) {
3832
+ *,
3833
+ *::before,
3834
+ *::after {
3835
+ animation-duration: 0.01ms !important;
3836
+ transition-duration: 0.01ms !important;
3837
+ }
3838
+ }
3839
+
3840
+ @keyframes marker-ping {
3841
+ 0% { box-shadow: 0 0 0 0 rgba(191, 59, 43, 0.5); }
3842
+ 70% { box-shadow: 0 0 0 11px rgba(191, 59, 43, 0); }
3843
+ 100% { box-shadow: 0 0 0 0 rgba(191, 59, 43, 0); }
3844
+ }
3845
+
3846
+ .map-frame {
3847
+ position: relative;
3848
+ border: 1px solid var(--line);
3849
+ border-radius: var(--radius);
3850
+ overflow: hidden;
3851
+ background: #dfe9ec;
3852
+ box-shadow: var(--shadow-1);
3853
+ }
3854
+ .map-frame .map-canvas { position: absolute; inset: 0; }
3855
+
3856
+ .gis-marker {
3857
+ background: transparent;
3858
+ border: 0;
3859
+ }
3860
+ .leaflet-div-icon { background: transparent; border: 0; }
3861
+
3862
+ .mk {
3863
+ width: 22px;
3864
+ height: 22px;
3865
+ border-radius: 6px;
3866
+ border: 1.5px solid #fff;
3867
+ display: flex;
3868
+ align-items: center;
3869
+ justify-content: center;
3870
+ font-family: var(--font-mono);
3871
+ font-size: 9px;
3872
+ font-weight: 600;
3873
+ color: #fff;
3874
+ box-shadow: 0 1px 4px rgba(10, 30, 38, 0.35);
3875
+ cursor: pointer;
3876
+ transition: transform var(--dur-1);
3877
+ position: relative;
3878
+ }
3879
+ .mk:hover { transform: scale(1.18); }
3880
+ .mk.sm { width: 16px; height: 16px; border-radius: 4px; font-size: 8px; }
3881
+
3882
+ .mk-plant { background: var(--aqua-700); }
3883
+ .mk-treatment { background: var(--info); }
3884
+ .mk-warehouse { background: var(--hold); }
3885
+ .mk-depot { background: var(--violet); }
3886
+ .mk-distribution { background: var(--aqua-500); }
3887
+ .mk-source { background: var(--ok); }
3888
+
3889
+ .mk-vehicle { background: var(--ink-800); border-color: #cfe8f0; }
3890
+ .mk-vehicle::after {
3891
+ content: "";
3892
+ position: absolute;
3893
+ inset: -5px;
3894
+ border-radius: 8px;
3895
+ border: 1.5px dashed rgba(255, 255, 255, 0.65);
3896
+ }
3897
+
3898
+ .mk-wo { background: var(--warn); }
3899
+ .mk-wo-crit { background: var(--danger); animation: marker-ping 1.9s infinite; }
3900
+
3901
+ .leaflet-tooltip.gis-tip {
3902
+ font-family: var(--font-mono);
3903
+ font-size: 10px;
3904
+ padding: 3px 7px;
3905
+ border-radius: 4px;
3906
+ background: var(--ink-900);
3907
+ color: #d6e6ea;
3908
+ border: 1px solid rgba(255, 255, 255, 0.12);
3909
+ box-shadow: var(--shadow-2);
3910
+ letter-spacing: 0.02em;
3911
+ }
3912
+ .leaflet-tooltip.gis-tip::before { display: none; }
3913
+
3914
+ .leaflet-container { font-family: var(--font-body); background: #e8eff1; }
3915
+ .leaflet-control-zoom {
3916
+ border: 1px solid var(--line) !important;
3917
+ border-radius: var(--radius-sm) !important;
3918
+ overflow: hidden;
3919
+ box-shadow: var(--shadow-2) !important;
3920
+ }
3921
+ .leaflet-control-zoom a {
3922
+ background: var(--surface) !important;
3923
+ color: var(--text-700) !important;
3924
+ border-bottom: 1px solid var(--line) !important;
3925
+ width: 30px !important;
3926
+ height: 30px !important;
3927
+ line-height: 30px !important;
3928
+ font-size: 17px !important;
3929
+ }
3930
+ .leaflet-control-zoom a:hover { background: var(--surface-3) !important; color: var(--text-900) !important; }
3931
+ .leaflet-control-attribution {
3932
+ background: rgba(255, 255, 255, 0.82) !important;
3933
+ font-size: 9px !important;
3934
+ color: var(--text-400) !important;
3935
+ font-family: var(--font-mono);
3936
+ padding: 2px 7px !important;
3937
+ }
3938
+ .leaflet-control-attribution a { color: var(--text-500) !important; }
3939
+
3940
+ .leaflet-popup-content-wrapper {
3941
+ border-radius: var(--radius);
3942
+ background: var(--surface);
3943
+ border: 1px solid var(--line);
3944
+ box-shadow: var(--shadow-3);
3945
+ padding: 0;
3946
+ }
3947
+ .leaflet-popup-content { margin: 0; width: 252px !important; }
3948
+ .leaflet-popup-tip { background: var(--surface); border: 1px solid var(--line); border-top: 0; }
3949
+ .leaflet-popup-close-button { color: var(--text-400) !important; margin: 6px 4px 0 0; }
3950
+
3951
+ .map-pop { padding: 12px 13px; }
3952
+ .map-pop .mp-head { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
3953
+ .map-pop .mp-eyebrow {
3954
+ font-family: var(--font-mono);
3955
+ font-size: 9px;
3956
+ letter-spacing: 0.13em;
3957
+ text-transform: uppercase;
3958
+ color: var(--text-400);
3959
+ }
3960
+ .map-pop .mp-title { font-size: 13.5px; font-weight: 600; color: var(--text-900); line-height: 1.25; }
3961
+ .map-pop .mp-rows { display: flex; flex-direction: column; gap: 3px; margin: 8px 0 10px; }
3962
+ .map-pop .mp-row { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
3963
+ .map-pop .mp-row .k { color: var(--text-400); }
3964
+ .map-pop .mp-row .v { color: var(--text-700); font-weight: 550; text-align: right; }
3965
+
3966
+ .map-layers {
3967
+ position: absolute;
3968
+ top: 10px;
3969
+ right: 10px;
3970
+ z-index: 500;
3971
+ width: 218px;
3972
+ background: var(--surface);
3973
+ border: 1px solid var(--line);
3974
+ border-radius: var(--radius);
3975
+ box-shadow: var(--shadow-2);
3976
+ overflow: hidden;
3977
+ }
3978
+ .map-layers .ml-head {
3979
+ display: flex;
3980
+ align-items: center;
3981
+ justify-content: space-between;
3982
+ padding: 9px 11px;
3983
+ border-bottom: 1px solid var(--line-soft);
3984
+ cursor: pointer;
3985
+ user-select: none;
3986
+ }
3987
+ .map-layers .ml-head .ml-title {
3988
+ font-family: var(--font-mono);
3989
+ font-size: 10px;
3990
+ font-weight: 600;
3991
+ letter-spacing: 0.13em;
3992
+ text-transform: uppercase;
3993
+ color: var(--text-500);
3994
+ display: flex;
3995
+ align-items: center;
3996
+ gap: 7px;
3997
+ }
3998
+ .map-layers .ml-head .ml-title .icon { width: 12px; height: 12px; }
3999
+ .map-layers .ml-body { padding: 7px 8px; display: flex; flex-direction: column; gap: 1px; max-height: 320px; overflow-y: auto; }
4000
+ .map-layer-item {
4001
+ display: flex;
4002
+ align-items: center;
4003
+ gap: 9px;
4004
+ padding: 5.5px 7px;
4005
+ border: 0;
4006
+ border-radius: var(--radius-sm);
4007
+ background: transparent;
4008
+ font-size: 12.5px;
4009
+ color: var(--text-700);
4010
+ cursor: pointer;
4011
+ user-select: none;
4012
+ transition: background var(--dur-1);
4013
+ font-family: inherit;
4014
+ }
4015
+ .map-layer-item:hover { background: var(--surface-3); }
4016
+ .map-layer-item .layer-swatch { width: 11px; height: 11px; border-radius: 3px; flex-shrink: 0; }
4017
+ .map-layer-item .layer-count { margin-left: auto; font-family: var(--font-mono); font-size: 10px; color: var(--text-400); }
4018
+
4019
+ .map-readout {
4020
+ position: absolute;
4021
+ bottom: 24px;
4022
+ left: 10px;
4023
+ z-index: 500;
4024
+ background: var(--ink-900);
4025
+ color: var(--text-inv);
4026
+ border-radius: var(--radius-sm);
4027
+ padding: 5px 10px;
4028
+ font-family: var(--font-mono);
4029
+ font-size: 10px;
4030
+ letter-spacing: 0.04em;
4031
+ display: flex;
4032
+ gap: 12px;
4033
+ box-shadow: var(--shadow-2);
4034
+ border: 1px solid rgba(255, 255, 255, 0.09);
4035
+ }
4036
+ .map-readout .k { color: #6f9aa8; }
4037
+
4038
+ .map-legend {
4039
+ position: absolute;
4040
+ bottom: 24px;
4041
+ right: 10px;
4042
+ z-index: 500;
4043
+ background: var(--surface);
4044
+ border: 1px solid var(--line);
4045
+ border-radius: var(--radius);
4046
+ box-shadow: var(--shadow-2);
4047
+ padding: 9px 11px;
4048
+ display: flex;
4049
+ flex-direction: column;
4050
+ gap: 5px;
4051
+ }
4052
+ .map-legend .lg-title {
4053
+ font-family: var(--font-mono);
4054
+ font-size: 9px;
4055
+ letter-spacing: 0.13em;
4056
+ text-transform: uppercase;
4057
+ color: var(--text-400);
4058
+ margin-bottom: 2px;
4059
+ }
4060
+ .map-legend .lg-row { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--text-700); }
4061
+ .map-legend .lg-swatch { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
4062
+
4063
+ @media (max-width: 860px) {
4064
+ .map-layers { width: 190px; }
4065
+ .map-legend { display: none; }
4066
+ .map-readout { display: none; }
4067
+ }
4068
+
4069
+ .gis-workspace {
4070
+ display: grid;
4071
+ grid-template-columns: 288px minmax(0, 1fr);
4072
+ gap: 14px;
4073
+ height: min(72vh, 720px);
4074
+ }
4075
+ .gis-side {
4076
+ display: flex;
4077
+ flex-direction: column;
4078
+ gap: 10px;
4079
+ min-height: 0;
4080
+ border: 1px solid var(--line);
4081
+ border-radius: var(--radius);
4082
+ background: var(--surface);
4083
+ overflow: hidden;
4084
+ }
4085
+
4086
+ .gis-search { padding: 12px 14px 4px; }
4087
+ .gis-search .search-input {
4088
+ position: relative;
4089
+ display: flex;
4090
+ align-items: center;
4091
+ }
4092
+ .gis-search .search-input input {
4093
+ width: 100%;
4094
+ padding: 8px 28px 8px 32px;
4095
+ border: 1px solid var(--line);
4096
+ border-radius: var(--radius-sm);
4097
+ background: var(--surface-2);
4098
+ font-size: 12.5px;
4099
+ color: var(--text-900);
4100
+ }
4101
+ .gis-search .search-input input:focus {
4102
+ outline: none;
4103
+ border-color: var(--aqua-500);
4104
+ background: var(--surface);
4105
+ box-shadow: 0 0 0 3px var(--aqua-glow);
4106
+ }
4107
+ .gis-search .search-icon {
4108
+ position: absolute;
4109
+ left: 10px;
4110
+ color: var(--text-400);
4111
+ pointer-events: none;
4112
+ }
4113
+ .gis-search .clear-btn {
4114
+ position: absolute;
4115
+ right: 6px;
4116
+ display: flex;
4117
+ align-items: center;
4118
+ justify-content: center;
4119
+ width: 20px;
4120
+ height: 20px;
4121
+ border: 0;
4122
+ border-radius: var(--radius-xs);
4123
+ background: transparent;
4124
+ color: var(--text-400);
4125
+ cursor: pointer;
4126
+ }
4127
+ .gis-search .clear-btn:hover { background: var(--surface-3); color: var(--text-900); }
4128
+
4129
+ .gis-results {
4130
+ margin-top: 8px;
4131
+ border: 1px solid var(--line);
4132
+ border-radius: var(--radius-sm);
4133
+ max-height: 300px;
4134
+ overflow-y: auto;
4135
+ }
4136
+ .gis-results-empty { padding: 12px; font-size: 12px; color: var(--text-400); }
4137
+ .gis-result {
4138
+ display: flex;
4139
+ gap: 9px;
4140
+ align-items: center;
4141
+ width: 100%;
4142
+ padding: 9px 11px;
4143
+ border: 0;
4144
+ border-bottom: 1px solid var(--line-soft);
4145
+ background: transparent;
4146
+ cursor: pointer;
4147
+ font-family: inherit;
4148
+ text-align: left;
4149
+ }
4150
+ .gis-result:last-child { border-bottom: 0; }
4151
+ .gis-result:hover { background: var(--aqua-50); }
4152
+ .gis-code {
4153
+ width: 64px;
4154
+ flex-shrink: 0;
4155
+ font-size: 11px;
4156
+ font-weight: 600;
4157
+ color: var(--aqua-700);
4158
+ }
4159
+
4160
+ .gis-layers { flex: 1; min-height: 0; overflow-y: auto; padding-bottom: 8px; }
4161
+ .gis-layer-group { padding: 4px 0; }
4162
+ .gis-group-title,
4163
+ .gis-layer-title {
4164
+ padding: 6px 14px 4px;
4165
+ font-family: var(--font-mono);
4166
+ font-size: 10px;
4167
+ font-weight: 600;
4168
+ letter-spacing: 0.08em;
4169
+ text-transform: uppercase;
4170
+ color: var(--text-400);
4171
+ }
4172
+ .gis-layer {
4173
+ display: flex;
4174
+ gap: 9px;
4175
+ align-items: center;
4176
+ width: calc(100% - 16px);
4177
+ margin: 0 8px;
4178
+ padding: 6px 8px;
4179
+ border: 0;
4180
+ border-radius: var(--radius-sm);
4181
+ background: transparent;
4182
+ cursor: pointer;
4183
+ font-family: inherit;
4184
+ font-size: 12.5px;
4185
+ color: var(--text-700);
4186
+ }
4187
+ .gis-layer:hover { background: var(--surface-2); }
4188
+ .gis-layer.on { color: var(--text-900); font-weight: 550; }
4189
+ .gis-layer-check {
4190
+ width: 13px;
4191
+ height: 13px;
4192
+ border: 1px solid var(--line-strong);
4193
+ border-radius: 3px;
4194
+ font-size: 10px;
4195
+ line-height: 1;
4196
+ color: var(--aqua-600);
4197
+ display: inline-flex;
4198
+ align-items: center;
4199
+ justify-content: center;
4200
+ flex-shrink: 0;
4201
+ }
4202
+ .gis-layer.on .gis-layer-check { border-color: var(--aqua-500); background: var(--aqua-50); }
4203
+ .gis-swatch {
4204
+ width: 11px;
4205
+ height: 11px;
4206
+ border-radius: 3px;
4207
+ flex-shrink: 0;
4208
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
4209
+ }
4210
+
4211
+ .gis-basemap .seg { width: calc(100% - 28px); }
4212
+ .gis-basemap .seg button { flex: 1; }
4213
+
4214
+ .gis-measure {
4215
+ margin: 0 14px 14px;
4216
+ padding: 10px 12px;
4217
+ border: 1px dashed var(--aqua-500);
4218
+ border-radius: var(--radius-sm);
4219
+ background: var(--aqua-50);
4220
+ }
4221
+
4222
+ .gis-map { position: relative; min-height: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
4223
+
4224
+ .gis-districts {
4225
+ position: absolute;
4226
+ left: 12px;
4227
+ bottom: 26px;
4228
+ z-index: 500;
4229
+ display: flex;
4230
+ gap: 6px;
4231
+ flex-wrap: wrap;
4232
+ max-width: min(70%, 520px);
4233
+ }
4234
+ .gis-districts button {
4235
+ display: inline-flex;
4236
+ gap: 5px;
4237
+ align-items: center;
4238
+ padding: 5px 10px;
4239
+ border: 1px solid var(--line-strong);
4240
+ border-radius: 99px;
4241
+ background: rgba(255, 255, 255, 0.92);
4242
+ font-family: var(--font-mono);
4243
+ font-size: 10.5px;
4244
+ letter-spacing: 0.04em;
4245
+ color: var(--text-700);
4246
+ cursor: pointer;
4247
+ box-shadow: 0 1px 4px rgba(10, 30, 38, 0.12);
4248
+ }
4249
+ .gis-districts button:hover { border-color: var(--aqua-500); color: var(--aqua-700); }
4250
+
4251
+ .gis-route {
4252
+ display: flex;
4253
+ gap: 9px;
4254
+ align-items: center;
4255
+ width: 100%;
4256
+ padding: 9px 11px;
4257
+ border: 1px solid var(--line);
4258
+ border-radius: var(--radius-sm);
4259
+ background: var(--surface);
4260
+ cursor: pointer;
4261
+ font-family: inherit;
4262
+ text-align: left;
4263
+ }
4264
+ .gis-route:hover { border-color: var(--aqua-500); background: var(--aqua-50); }
4265
+ .gis-route-dot { width: 9px; height: 9px; border-radius: 99px; flex-shrink: 0; }
4266
+
4267
+ .btn.active {
4268
+ border-color: var(--aqua-500);
4269
+ color: var(--aqua-700);
4270
+ background: var(--aqua-50);
4271
+ }
4272
+
4273
+ @media (max-width: 960px) {
4274
+ .gis-workspace { grid-template-columns: 1fr; height: auto; }
4275
+ .gis-side { max-height: 320px; }
4276
+ .gis-map { height: 420px; }
4277
+ }
4278
+
4279
+ .app-shell {
4280
+ display: flex;
4281
+ height: 100vh;
4282
+ overflow: hidden;
4283
+ }
4284
+
4285
+ .main-area {
4286
+ flex: 1;
4287
+ min-width: 0;
4288
+ display: flex;
4289
+ flex-direction: column;
4290
+ height: 100vh;
4291
+ }
4292
+
4293
+ .app-content {
4294
+ flex: 1;
4295
+ overflow-y: auto;
4296
+ position: relative;
4297
+ background:
4298
+ radial-gradient(1100px 380px at 85% -8%, rgba(11, 165, 196, 0.07), transparent 62%),
4299
+ var(--bg);
4300
+ }
4301
+
4302
+ .page {
4303
+ max-width: 1480px;
4304
+ margin: 0 auto;
4305
+ padding: 20px 24px 48px;
4306
+ display: flex;
4307
+ flex-direction: column;
4308
+ gap: 16px;
4309
+ }
4310
+
4311
+ .sidebar {
4312
+ width: var(--sidebar-w);
4313
+ flex-shrink: 0;
4314
+ background: linear-gradient(180deg, var(--ink-850) 0%, var(--ink-900) 42%, var(--ink-950) 100%);
4315
+ color: var(--text-inv);
4316
+ display: flex;
4317
+ flex-direction: column;
4318
+ position: relative;
4319
+ z-index: 40;
4320
+ border-right: 1px solid var(--ink-line);
4321
+ }
4322
+
4323
+ .sidebar::after {
4324
+ content: '';
4325
+ position: absolute;
4326
+ inset: 0;
4327
+ pointer-events: none;
4328
+ background:
4329
+ repeating-linear-gradient(0deg, transparent 0 23px, rgba(122, 215, 234, 0.018) 23px 24px);
4330
+ }
4331
+
4332
+ .sb-scroll {
4333
+ flex: 1;
4334
+ overflow-y: auto;
4335
+ padding: 6px 12px 16px;
4336
+ display: flex;
4337
+ flex-direction: column;
4338
+ gap: 2px;
4339
+ }
4340
+
4341
+ .sb-logo {
4342
+ display: flex;
4343
+ align-items: center;
4344
+ gap: 10px;
4345
+ padding: 15px 14px 13px;
4346
+ margin-bottom: 4px;
4347
+ border-bottom: 1px solid var(--ink-line);
4348
+ }
4349
+
4350
+ .sb-logo-mark {
4351
+ width: 32px;
4352
+ height: 32px;
4353
+ flex-shrink: 0;
4354
+ }
4355
+
4356
+ .sb-logo-name {
4357
+ font-family: var(--font-display);
4358
+ font-size: 19px;
4359
+ font-weight: 700;
4360
+ letter-spacing: 0.04em;
4361
+ color: #f2fafc;
4362
+ line-height: 1;
4363
+ }
4364
+
4365
+ .sb-logo-sub {
4366
+ font-family: var(--font-mono);
4367
+ font-size: 8.5px;
4368
+ letter-spacing: 0.22em;
4369
+ text-transform: uppercase;
4370
+ color: var(--aqua-300);
4371
+ margin-top: 3px;
4372
+ }
4373
+
4374
+ .sb-group {
4375
+ margin-top: 14px;
4376
+ }
4377
+
4378
+ .sb-group-label {
4379
+ font-family: var(--font-mono);
4380
+ font-size: 9.5px;
4381
+ font-weight: 500;
4382
+ letter-spacing: 0.18em;
4383
+ text-transform: uppercase;
4384
+ color: rgba(125, 165, 180, 0.75);
4385
+ padding: 0 10px 6px;
4386
+ }
4387
+
4388
+ .sb-item {
4389
+ display: flex;
4390
+ align-items: center;
4391
+ gap: 10px;
4392
+ width: 100%;
4393
+ padding: 7px 10px;
4394
+ border: 0;
4395
+ border-radius: var(--radius-sm);
4396
+ background: transparent;
4397
+ color: #b9cdd6;
4398
+ font-family: var(--font-body);
4399
+ font-size: 13px;
4400
+ font-weight: 500;
4401
+ text-align: left;
4402
+ position: relative;
4403
+ transition: background var(--dur-1), color var(--dur-1);
4404
+ }
4405
+
4406
+ .sb-item:hover {
4407
+ background: rgba(122, 215, 234, 0.07);
4408
+ color: #eaf6fa;
4409
+ }
4410
+
4411
+ .sb-item.active {
4412
+ background: linear-gradient(90deg, rgba(11, 165, 196, 0.22), rgba(11, 165, 196, 0.06));
4413
+ color: #fff;
4414
+ box-shadow: inset 0 0 0 1px rgba(44, 192, 220, 0.25);
4415
+ }
4416
+
4417
+ .sb-item.active::before {
4418
+ content: '';
4419
+ position: absolute;
4420
+ left: -12px;
4421
+ top: 5px;
4422
+ bottom: 5px;
4423
+ width: 3px;
4424
+ border-radius: 0 3px 3px 0;
4425
+ background: var(--aqua-400);
4426
+ box-shadow: 0 0 12px var(--aqua-glow);
4427
+ }
4428
+
4429
+ .sb-item svg {
4430
+ width: 16px;
4431
+ height: 16px;
4432
+ flex-shrink: 0;
4433
+ opacity: 0.8;
4434
+ }
4435
+
4436
+ .sb-item.active svg {
4437
+ opacity: 1;
4438
+ color: var(--aqua-300);
4439
+ }
4440
+
4441
+ .sb-count {
4442
+ margin-left: auto;
4443
+ font-family: var(--font-mono);
4444
+ font-size: 10px;
4445
+ color: var(--text-inv-dim);
4446
+ background: rgba(122, 215, 234, 0.1);
4447
+ border: 1px solid rgba(122, 215, 234, 0.16);
4448
+ padding: 1px 6px;
4449
+ border-radius: 99px;
4450
+ }
4451
+
4452
+ .sb-alert-dot {
4453
+ margin-left: auto;
4454
+ width: 7px;
4455
+ height: 7px;
4456
+ border-radius: 50%;
4457
+ background: var(--danger);
4458
+ box-shadow: 0 0 8px rgba(191, 59, 43, 0.8);
4459
+ }
4460
+
4461
+ .sb-footer {
4462
+ border-top: 1px solid var(--ink-line);
4463
+ padding: 10px 12px;
4464
+ }
4465
+
4466
+ .sb-tenant {
4467
+ display: flex;
4468
+ align-items: center;
4469
+ gap: 9px;
4470
+ padding: 7px 8px;
4471
+ border-radius: var(--radius-sm);
4472
+ transition: background var(--dur-1);
4473
+ width: 100%;
4474
+ border: 0;
4475
+ background: transparent;
4476
+ color: inherit;
4477
+ text-align: left;
4478
+ }
4479
+
4480
+ .sb-tenant:hover {
4481
+ background: rgba(122, 215, 234, 0.07);
4482
+ }
4483
+
4484
+ .sb-tenant-org {
4485
+ font-size: 12.5px;
4486
+ font-weight: 600;
4487
+ color: #e6f3f7;
4488
+ line-height: 1.25;
4489
+ }
4490
+
4491
+ .sb-tenant-plan {
4492
+ font-family: var(--font-mono);
4493
+ font-size: 9px;
4494
+ letter-spacing: 0.12em;
4495
+ text-transform: uppercase;
4496
+ color: var(--aqua-300);
4497
+ }
4498
+
4499
+ .topbar {
4500
+ height: var(--topbar-h);
4501
+ flex-shrink: 0;
4502
+ display: flex;
4503
+ align-items: center;
4504
+ gap: 14px;
4505
+ padding: 0 20px;
4506
+ background: rgba(255, 255, 255, 0.86);
4507
+ backdrop-filter: blur(10px);
4508
+ border-bottom: 1px solid var(--line);
4509
+ z-index: 30;
4510
+ }
4511
+
4512
+ .tb-burger {
4513
+ display: none;
4514
+ }
4515
+
4516
+ .tb-crumb {
4517
+ display: flex;
4518
+ align-items: center;
4519
+ gap: 8px;
4520
+ min-width: 0;
4521
+ }
4522
+
4523
+ .tb-crumb-module {
4524
+ font-family: var(--font-head);
4525
+ font-size: 14px;
4526
+ font-weight: 600;
4527
+ color: var(--text-900);
4528
+ }
4529
+
4530
+ .tb-crumb-sep {
4531
+ color: var(--text-400);
4532
+ font-size: 12px;
4533
+ }
4534
+
4535
+ .tb-crumb-sub {
4536
+ font-size: 12px;
4537
+ color: var(--text-500);
4538
+ }
4539
+
4540
+ .tb-spacer {
4541
+ flex: 1;
4542
+ }
4543
+
4544
+ .tb-search {
4545
+ display: flex;
4546
+ align-items: center;
4547
+ gap: 8px;
4548
+ width: 300px;
4549
+ padding: 6px 10px;
4550
+ border: 1px solid var(--line);
4551
+ border-radius: var(--radius-sm);
4552
+ background: var(--surface-2);
4553
+ color: var(--text-400);
4554
+ font-size: 12.5px;
4555
+ transition: border-color var(--dur-1), box-shadow var(--dur-1);
4556
+ }
4557
+
4558
+ .tb-search:hover {
4559
+ border-color: var(--line-strong);
4560
+ }
4561
+
4562
+ .tb-search kbd {
4563
+ margin-left: auto;
4564
+ font-family: var(--font-mono);
4565
+ font-size: 10px;
4566
+ padding: 1px 5px;
4567
+ border: 1px solid var(--line);
4568
+ border-bottom-width: 2px;
4569
+ border-radius: 4px;
4570
+ background: var(--surface);
4571
+ color: var(--text-500);
4572
+ }
4573
+
4574
+ .icon-btn {
4575
+ position: relative;
4576
+ display: inline-flex;
4577
+ align-items: center;
4578
+ justify-content: center;
4579
+ width: 32px;
4580
+ height: 32px;
4581
+ border-radius: var(--radius-sm);
4582
+ border: 1px solid transparent;
4583
+ background: transparent;
4584
+ color: var(--text-500);
4585
+ transition: background var(--dur-1), color var(--dur-1), border-color var(--dur-1);
4586
+ }
4587
+
4588
+ .icon-btn:hover {
4589
+ background: var(--surface-3);
4590
+ color: var(--text-900);
4591
+ }
4592
+
4593
+ .icon-btn svg {
4594
+ width: 17px;
4595
+ height: 17px;
4596
+ }
4597
+
4598
+ .icon-btn .ping-dot {
4599
+ position: absolute;
4600
+ top: 5px;
4601
+ right: 5px;
4602
+ width: 8px;
4603
+ height: 8px;
4604
+ border-radius: 50%;
4605
+ background: var(--aqua-500);
4606
+ border: 2px solid var(--surface);
4607
+ }
4608
+
4609
+ .tb-user {
4610
+ display: flex;
4611
+ align-items: center;
4612
+ gap: 9px;
4613
+ padding: 4px 8px 4px 4px;
4614
+ border-radius: 99px;
4615
+ border: 1px solid transparent;
4616
+ background: transparent;
4617
+ transition: background var(--dur-1), border-color var(--dur-1);
4618
+ }
4619
+
4620
+ .tb-user:hover {
4621
+ background: var(--surface-3);
4622
+ border-color: var(--line);
4623
+ }
4624
+
4625
+ .tb-user-name {
4626
+ font-size: 12.5px;
4627
+ font-weight: 600;
4628
+ color: var(--text-900);
4629
+ line-height: 1.2;
4630
+ }
4631
+
4632
+ .tb-user-role {
4633
+ font-family: var(--font-mono);
4634
+ font-size: 9px;
4635
+ letter-spacing: 0.08em;
4636
+ text-transform: uppercase;
4637
+ color: var(--text-400);
4638
+ }
4639
+
4640
+ .card {
4641
+ background: var(--surface);
4642
+ border: 1px solid var(--line);
4643
+ border-radius: var(--radius);
4644
+ box-shadow: var(--shadow-1);
4645
+ }
4646
+
4647
+ .card-h {
4648
+ display: flex;
4649
+ align-items: center;
4650
+ justify-content: space-between;
4651
+ gap: 12px;
4652
+ padding: 13px 16px;
4653
+ border-bottom: 1px solid var(--line-soft);
4654
+ min-height: 48px;
4655
+ }
4656
+
4657
+ .card-title {
4658
+ font-family: var(--font-head);
4659
+ font-size: 14px;
4660
+ font-weight: 600;
4661
+ letter-spacing: 0;
4662
+ display: flex;
4663
+ align-items: center;
4664
+ gap: 8px;
4665
+ }
4666
+
4667
+ .card-title svg {
4668
+ width: 15px;
4669
+ height: 15px;
4670
+ color: var(--aqua-600);
4671
+ }
4672
+
4673
+ .card-sub {
4674
+ font-size: 12px;
4675
+ color: var(--text-500);
4676
+ margin-top: 2px;
4677
+ }
4678
+
4679
+ .card-b {
4680
+ padding: 16px;
4681
+ }
4682
+
4683
+ .card-b.flush {
4684
+ padding: 0;
4685
+ }
4686
+
4687
+ .kpi-grid {
4688
+ display: grid;
4689
+ grid-template-columns: repeat(auto-fit, minmax(225px, 1fr));
4690
+ gap: 12px;
4691
+ }
4692
+
4693
+ .kpi {
4694
+ background: var(--surface);
4695
+ border: 1px solid var(--line);
4696
+ border-radius: var(--radius);
4697
+ padding: 13px 15px 12px;
4698
+ box-shadow: var(--shadow-1);
4699
+ position: relative;
4700
+ overflow: hidden;
4701
+ display: flex;
4702
+ flex-direction: column;
4703
+ gap: 7px;
4704
+ transition: border-color var(--dur-2), transform var(--dur-2), box-shadow var(--dur-2);
4705
+ }
4706
+
4707
+ .kpi:hover {
4708
+ border-color: var(--aqua-300);
4709
+ transform: translateY(-1px);
4710
+ box-shadow: var(--shadow-2);
4711
+ }
4712
+
4713
+ .kpi::before {
4714
+ content: '';
4715
+ position: absolute;
4716
+ left: 0;
4717
+ top: 0;
4718
+ bottom: 0;
4719
+ width: 3px;
4720
+ background: var(--kpi-accent, var(--aqua-500));
4721
+ opacity: 0.85;
4722
+ }
4723
+
4724
+ .kpi-label {
4725
+ font-family: var(--font-mono);
4726
+ font-size: 10px;
4727
+ font-weight: 500;
4728
+ letter-spacing: 0.1em;
4729
+ text-transform: uppercase;
4730
+ color: var(--text-400);
4731
+ display: flex;
4732
+ align-items: center;
4733
+ justify-content: space-between;
4734
+ gap: 8px;
4735
+ }
4736
+
4737
+ .kpi-label svg {
4738
+ width: 14px;
4739
+ height: 14px;
4740
+ opacity: 0.55;
4741
+ color: var(--kpi-accent, var(--aqua-500));
4742
+ }
4743
+
4744
+ .kpi-value-row {
4745
+ display: flex;
4746
+ align-items: flex-end;
4747
+ justify-content: space-between;
4748
+ gap: 10px;
4749
+ }
4750
+
4751
+ .kpi-value {
4752
+ font-family: var(--font-display);
4753
+ font-size: 30px;
4754
+ font-weight: 700;
4755
+ line-height: 1;
4756
+ letter-spacing: 0.01em;
4757
+ color: var(--text-900);
4758
+ font-variant-numeric: tabular-nums;
4759
+ white-space: nowrap;
4760
+ }
4761
+
4762
+ .kpi-value .unit {
4763
+ font-size: 14px;
4764
+ font-weight: 600;
4765
+ color: var(--text-400);
4766
+ margin-left: 2px;
4767
+ letter-spacing: 0;
4768
+ }
4769
+
4770
+ .kpi-foot {
4771
+ display: flex;
4772
+ align-items: center;
4773
+ gap: 8px;
4774
+ min-height: 18px;
4775
+ }
4776
+
4777
+ .kpi-delta {
4778
+ display: inline-flex;
4779
+ align-items: center;
4780
+ gap: 3px;
4781
+ font-family: var(--font-mono);
4782
+ font-size: 10.5px;
4783
+ font-weight: 500;
4784
+ padding: 1px 6px;
4785
+ border-radius: 99px;
4786
+ }
4787
+
4788
+ .kpi-delta.up {
4789
+ color: var(--ok);
4790
+ background: var(--ok-bg);
4791
+ }
4792
+
4793
+ .kpi-delta.down {
4794
+ color: var(--danger);
4795
+ background: var(--danger-bg);
4796
+ }
4797
+
4798
+ .kpi-delta.flat {
4799
+ color: var(--text-500);
4800
+ background: var(--surface-3);
4801
+ }
4802
+
4803
+ .kpi-note {
4804
+ font-size: 11px;
4805
+ color: var(--text-400);
4806
+ white-space: nowrap;
4807
+ overflow: hidden;
4808
+ text-overflow: ellipsis;
4809
+ }
4810
+
4811
+ .btn {
4812
+ display: inline-flex;
4813
+ align-items: center;
4814
+ justify-content: center;
4815
+ gap: 7px;
4816
+ height: 34px;
4817
+ padding: 0 14px;
4818
+ border-radius: var(--radius-sm);
4819
+ border: 1px solid var(--line);
4820
+ background: var(--surface);
4821
+ color: var(--text-700);
4822
+ font-family: var(--font-body);
4823
+ font-size: 12.5px;
4824
+ font-weight: 600;
4825
+ white-space: nowrap;
4826
+ transition: background var(--dur-1), border-color var(--dur-1), color var(--dur-1), box-shadow var(--dur-1), transform var(--dur-1);
4827
+ }
4828
+
4829
+ .btn svg {
4830
+ width: 15px;
4831
+ height: 15px;
4832
+ flex-shrink: 0;
4833
+ }
4834
+
4835
+ .btn:hover {
4836
+ border-color: var(--line-strong);
4837
+ background: var(--surface-2);
4838
+ }
4839
+
4840
+ .btn:active {
4841
+ transform: translateY(1px);
4842
+ }
4843
+
4844
+ .btn.primary {
4845
+ background: linear-gradient(180deg, var(--aqua-500), var(--aqua-600));
4846
+ border-color: var(--aqua-700);
4847
+ color: #fff;
4848
+ box-shadow: 0 1px 2px rgba(7, 106, 128, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.22);
4849
+ }
4850
+
4851
+ .btn.primary:hover {
4852
+ background: linear-gradient(180deg, var(--aqua-400), var(--aqua-500));
4853
+ border-color: var(--aqua-600);
4854
+ }
4855
+
4856
+ .btn.dark {
4857
+ background: var(--ink-800);
4858
+ border-color: var(--ink-700);
4859
+ color: var(--text-inv);
4860
+ }
4861
+
4862
+ .btn.dark:hover {
4863
+ background: var(--ink-700);
4864
+ }
4865
+
4866
+ .btn.danger {
4867
+ color: var(--danger);
4868
+ border-color: var(--danger-line);
4869
+ background: var(--surface);
4870
+ }
4871
+
4872
+ .btn.danger:hover {
4873
+ background: var(--danger-bg);
4874
+ }
4875
+
4876
+ .btn.ghost {
4877
+ border-color: transparent;
4878
+ background: transparent;
4879
+ }
4880
+
4881
+ .btn.ghost:hover {
4882
+ background: var(--surface-3);
4883
+ border-color: var(--line);
4884
+ }
4885
+
4886
+ .btn.sm {
4887
+ height: 28px;
4888
+ padding: 0 10px;
4889
+ font-size: 11.5px;
4890
+ gap: 5px;
4891
+ }
4892
+
4893
+ .btn.sm svg {
4894
+ width: 13px;
4895
+ height: 13px;
4896
+ }
4897
+
4898
+ .btn.lg {
4899
+ height: 40px;
4900
+ padding: 0 18px;
4901
+ font-size: 13.5px;
4902
+ }
4903
+
4904
+ .btn:disabled {
4905
+ opacity: 0.45;
4906
+ pointer-events: none;
4907
+ }
4908
+
4909
+ .badge {
4910
+ display: inline-flex;
4911
+ align-items: center;
4912
+ gap: 6px;
4913
+ height: 22px;
4914
+ padding: 0 9px 0 7px;
4915
+ border-radius: 99px;
4916
+ font-family: var(--font-body);
4917
+ font-size: 11px;
4918
+ font-weight: 600;
4919
+ letter-spacing: 0.01em;
4920
+ white-space: nowrap;
4921
+ border: 1px solid;
4922
+ }
4923
+
4924
+ .badge .bdot {
4925
+ width: 6px;
4926
+ height: 6px;
4927
+ border-radius: 50%;
4928
+ background: currentColor;
4929
+ flex-shrink: 0;
4930
+ }
4931
+
4932
+ .badge.sq {
4933
+ border-radius: var(--radius-xs);
4934
+ font-family: var(--font-mono);
4935
+ font-size: 10px;
4936
+ letter-spacing: 0.06em;
4937
+ text-transform: uppercase;
4938
+ }
4939
+
4940
+ .tone-ok { background: var(--ok-bg); color: var(--ok); border-color: var(--ok-line); }
4941
+ .tone-warn { background: var(--warn-bg); color: var(--warn); border-color: var(--warn-line); }
4942
+ .tone-danger { background: var(--danger-bg); color: var(--danger); border-color: var(--danger-line); }
4943
+ .tone-info { background: var(--info-bg); color: var(--info); border-color: var(--info-line); }
4944
+ .tone-hold { background: var(--hold-bg); color: var(--hold); border-color: var(--hold-line); }
4945
+ .tone-violet { background: var(--violet-bg); color: var(--violet); border-color: var(--violet-line); }
4946
+ .tone-aqua { background: var(--aqua-50); color: var(--aqua-700); border-color: var(--aqua-100); }
4947
+
4948
+ .chip {
4949
+ display: inline-flex;
4950
+ align-items: center;
4951
+ gap: 5px;
4952
+ height: 24px;
4953
+ padding: 0 9px;
4954
+ border-radius: var(--radius-sm);
4955
+ background: var(--surface-3);
4956
+ border: 1px solid var(--line-soft);
4957
+ font-size: 11.5px;
4958
+ font-weight: 500;
4959
+ color: var(--text-700);
4960
+ white-space: nowrap;
4961
+ }
4962
+
4963
+ .chip svg {
4964
+ width: 12px;
4965
+ height: 12px;
4966
+ color: var(--text-400);
4967
+ }
4968
+
4969
+ .avatar {
4970
+ display: inline-flex;
4971
+ align-items: center;
4972
+ justify-content: center;
4973
+ width: 30px;
4974
+ height: 30px;
4975
+ border-radius: 50%;
4976
+ background: linear-gradient(135deg, var(--ink-700), var(--ink-800));
4977
+ color: var(--aqua-300);
4978
+ font-family: var(--font-head);
4979
+ font-size: 11px;
4980
+ font-weight: 600;
4981
+ letter-spacing: 0.02em;
4982
+ flex-shrink: 0;
4983
+ border: 1px solid rgba(122, 215, 234, 0.25);
4984
+ }
4985
+
4986
+ .avatar.lg {
4987
+ width: 40px;
4988
+ height: 40px;
4989
+ font-size: 14px;
4990
+ }
4991
+
4992
+ .avatar.aqua {
4993
+ background: linear-gradient(135deg, var(--aqua-500), var(--aqua-700));
4994
+ color: #fff;
4995
+ }
4996
+
4997
+ .field {
4998
+ display: flex;
4999
+ flex-direction: column;
5000
+ gap: 5px;
5001
+ min-width: 0;
5002
+ }
5003
+
5004
+ .field-label {
5005
+ font-family: var(--font-mono);
5006
+ font-size: 10px;
5007
+ font-weight: 500;
5008
+ letter-spacing: 0.08em;
5009
+ text-transform: uppercase;
5010
+ color: var(--text-500);
5011
+ }
5012
+
5013
+ .field-label .req {
5014
+ color: var(--danger);
5015
+ }
5016
+
5017
+ .input,
5018
+ .select,
5019
+ .textarea {
5020
+ width: 100%;
5021
+ height: 34px;
5022
+ padding: 0 10px;
5023
+ border: 1px solid var(--line);
5024
+ border-radius: var(--radius-sm);
5025
+ background: var(--surface);
5026
+ color: var(--text-900);
5027
+ font-size: 12.5px;
5028
+ transition: border-color var(--dur-1), box-shadow var(--dur-1);
5029
+ }
5030
+
5031
+ .textarea {
5032
+ height: auto;
5033
+ min-height: 72px;
5034
+ padding: 8px 10px;
5035
+ resize: vertical;
5036
+ line-height: 1.5;
5037
+ }
5038
+
5039
+ .input:focus,
5040
+ .select:focus,
5041
+ .textarea:focus {
5042
+ outline: none;
5043
+ border-color: var(--aqua-500);
5044
+ box-shadow: 0 0 0 3px rgba(11, 165, 196, 0.14);
5045
+ }
5046
+
5047
+ .input::placeholder,
5048
+ .textarea::placeholder {
5049
+ color: var(--text-400);
5050
+ }
5051
+
5052
+ .select {
5053
+ appearance: none;
5054
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235c7077' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
5055
+ background-repeat: no-repeat;
5056
+ background-position: right 10px center;
5057
+ padding-right: 28px;
5058
+ cursor: pointer;
5059
+ }
5060
+
5061
+ .field-error {
5062
+ font-size: 11px;
5063
+ color: var(--danger);
5064
+ }
5065
+
5066
+ .form-grid {
5067
+ display: grid;
5068
+ grid-template-columns: 1fr 1fr;
5069
+ gap: 13px 14px;
5070
+ }
5071
+
5072
+ .form-grid .span2 {
5073
+ grid-column: 1 / -1;
5074
+ }
5075
+
5076
+ .search {
5077
+ position: relative;
5078
+ display: flex;
5079
+ align-items: center;
5080
+ }
5081
+
5082
+ .search svg.pre {
5083
+ position: absolute;
5084
+ left: 9px;
5085
+ width: 14px;
5086
+ height: 14px;
5087
+ color: var(--text-400);
5088
+ pointer-events: none;
5089
+ }
5090
+
5091
+ .search .input {
5092
+ padding-left: 30px;
5093
+ height: 32px;
5094
+ }
5095
+
5096
+ .search .search-clear {
5097
+ position: absolute;
5098
+ right: 5px;
5099
+ width: 22px;
5100
+ height: 22px;
5101
+ border: 0;
5102
+ border-radius: var(--radius-xs);
5103
+ background: transparent;
5104
+ color: var(--text-400);
5105
+ display: flex;
5106
+ align-items: center;
5107
+ justify-content: center;
5108
+ }
5109
+
5110
+ .search .search-clear:hover {
5111
+ background: var(--surface-3);
5112
+ color: var(--text-700);
5113
+ }
5114
+
5115
+ .search .search-clear svg {
5116
+ width: 12px;
5117
+ height: 12px;
5118
+ }
5119
+
5120
+ .check {
5121
+ display: flex;
5122
+ align-items: center;
5123
+ gap: 8px;
5124
+ font-size: 12.5px;
5125
+ color: var(--text-700);
5126
+ cursor: pointer;
5127
+ user-select: none;
5128
+ }
5129
+
5130
+ .check input {
5131
+ width: 15px;
5132
+ height: 15px;
5133
+ accent-color: var(--aqua-600);
5134
+ cursor: pointer;
5135
+ }
5136
+
5137
+ .filterbar {
5138
+ display: flex;
5139
+ align-items: center;
5140
+ flex-wrap: wrap;
5141
+ gap: 9px;
5142
+ padding: 10px 14px;
5143
+ background: var(--surface);
5144
+ border: 1px solid var(--line);
5145
+ border-radius: var(--radius);
5146
+ box-shadow: var(--shadow-1);
5147
+ }
5148
+
5149
+ .filterbar .select,
5150
+ .filterbar .input {
5151
+ height: 32px;
5152
+ min-width: 130px;
5153
+ font-size: 12px;
5154
+ }
5155
+
5156
+ .filterbar .results-count {
5157
+ font-family: var(--font-mono);
5158
+ font-size: 10.5px;
5159
+ color: var(--text-400);
5160
+ letter-spacing: 0.04em;
5161
+ margin-left: auto;
5162
+ white-space: nowrap;
5163
+ }
5164
+
5165
+ .tabs {
5166
+ display: flex;
5167
+ align-items: center;
5168
+ gap: 2px;
5169
+ border-bottom: 1px solid var(--line);
5170
+ overflow-x: auto;
5171
+ scrollbar-width: none;
5172
+ }
5173
+
5174
+ .tabs::-webkit-scrollbar {
5175
+ display: none;
5176
+ }
5177
+
5178
+ .tab {
5179
+ position: relative;
5180
+ border: 0;
5181
+ background: transparent;
5182
+ padding: 9px 12px;
5183
+ font-family: var(--font-body);
5184
+ font-size: 12.5px;
5185
+ font-weight: 500;
5186
+ color: var(--text-500);
5187
+ white-space: nowrap;
5188
+ display: inline-flex;
5189
+ align-items: center;
5190
+ gap: 7px;
5191
+ transition: color var(--dur-1);
5192
+ }
5193
+
5194
+ .tab:hover {
5195
+ color: var(--text-900);
5196
+ }
5197
+
5198
+ .tab.active {
5199
+ color: var(--aqua-700);
5200
+ font-weight: 600;
5201
+ }
5202
+
5203
+ .tab.active::after {
5204
+ content: '';
5205
+ position: absolute;
5206
+ left: 8px;
5207
+ right: 8px;
5208
+ bottom: -1px;
5209
+ height: 2px;
5210
+ border-radius: 2px;
5211
+ background: var(--aqua-500);
5212
+ box-shadow: 0 0 10px var(--aqua-glow);
5213
+ }
5214
+
5215
+ .tab .tab-count {
5216
+ font-family: var(--font-mono);
5217
+ font-size: 10px;
5218
+ padding: 0 6px;
5219
+ border-radius: 99px;
5220
+ background: var(--surface-3);
5221
+ border: 1px solid var(--line-soft);
5222
+ color: var(--text-500);
5223
+ }
5224
+
5225
+ .tab.active .tab-count {
5226
+ background: var(--aqua-50);
5227
+ border-color: var(--aqua-100);
5228
+ color: var(--aqua-700);
5229
+ }
5230
+
5231
+ .seg {
5232
+ display: inline-flex;
5233
+ padding: 2px;
5234
+ gap: 2px;
5235
+ background: var(--surface-3);
5236
+ border: 1px solid var(--line-soft);
5237
+ border-radius: var(--radius-sm);
5238
+ }
5239
+
5240
+ .seg button {
5241
+ border: 0;
5242
+ background: transparent;
5243
+ padding: 4px 11px;
5244
+ border-radius: var(--radius-xs);
5245
+ font-size: 11.5px;
5246
+ font-weight: 500;
5247
+ color: var(--text-500);
5248
+ transition: all var(--dur-1);
5249
+ white-space: nowrap;
5250
+ }
5251
+
5252
+ .seg button:hover {
5253
+ color: var(--text-900);
5254
+ }
5255
+
5256
+ .seg button.active {
5257
+ background: var(--surface);
5258
+ color: var(--text-900);
5259
+ font-weight: 600;
5260
+ box-shadow: var(--shadow-1);
5261
+ border: 1px solid var(--line);
5262
+ }
5263
+
5264
+ .dt-wrap {
5265
+ background: var(--surface);
5266
+ border: 1px solid var(--line);
5267
+ border-radius: var(--radius);
5268
+ box-shadow: var(--shadow-1);
5269
+ overflow: hidden;
5270
+ display: flex;
5271
+ flex-direction: column;
5272
+ }
5273
+
5274
+ .dt-scroll {
5275
+ overflow-x: auto;
5276
+ }
5277
+
5278
+ table.dt {
5279
+ width: 100%;
5280
+ border-collapse: collapse;
5281
+ font-size: 12.5px;
5282
+ }
5283
+
5284
+ table.dt th {
5285
+ font-family: var(--font-mono);
5286
+ font-size: 10px;
5287
+ font-weight: 500;
5288
+ letter-spacing: 0.09em;
5289
+ text-transform: uppercase;
5290
+ text-align: left;
5291
+ color: var(--text-400);
5292
+ background: var(--surface-2);
5293
+ padding: 9px 14px;
5294
+ border-bottom: 1px solid var(--line);
5295
+ white-space: nowrap;
5296
+ user-select: none;
5297
+ }
5298
+
5299
+ table.dt th.sortable {
5300
+ cursor: pointer;
5301
+ }
5302
+
5303
+ table.dt th.sortable:hover {
5304
+ color: var(--text-700);
5305
+ }
5306
+
5307
+ table.dt th .th-inner {
5308
+ display: inline-flex;
5309
+ align-items: center;
5310
+ gap: 5px;
5311
+ }
5312
+
5313
+ table.dt th .sort-ic {
5314
+ width: 11px;
5315
+ height: 11px;
5316
+ opacity: 0.9;
5317
+ color: var(--aqua-600);
5318
+ }
5319
+
5320
+ table.dt th.align-right,
5321
+ table.dt td.align-right {
5322
+ text-align: right;
5323
+ }
5324
+
5325
+ table.dt th.align-center,
5326
+ table.dt td.align-center {
5327
+ text-align: center;
5328
+ }
5329
+
5330
+ table.dt td {
5331
+ padding: 10px 14px;
5332
+ border-bottom: 1px solid var(--line-soft);
5333
+ color: var(--text-700);
5334
+ vertical-align: middle;
5335
+ white-space: nowrap;
5336
+ }
5337
+
5338
+ table.dt tbody tr {
5339
+ transition: background var(--dur-1);
5340
+ }
5341
+
5342
+ table.dt tbody tr:hover {
5343
+ background: var(--aqua-50);
5344
+ }
5345
+
5346
+ table.dt tbody tr.clickable {
5347
+ cursor: pointer;
5348
+ }
5349
+
5350
+ table.dt tbody tr.selected {
5351
+ background: var(--aqua-50);
5352
+ box-shadow: inset 2px 0 0 var(--aqua-500);
5353
+ }
5354
+
5355
+ table.dt tbody tr:last-child td {
5356
+ border-bottom: 0;
5357
+ }
5358
+
5359
+ .dt-cell-main {
5360
+ font-weight: 600;
5361
+ color: var(--text-900);
5362
+ display: flex;
5363
+ align-items: center;
5364
+ gap: 8px;
5365
+ min-width: 0;
5366
+ }
5367
+
5368
+ .dt-cell-sub {
5369
+ font-size: 11px;
5370
+ color: var(--text-400);
5371
+ margin-top: 1px;
5372
+ }
5373
+
5374
+ .dt-foot {
5375
+ display: flex;
5376
+ align-items: center;
5377
+ justify-content: space-between;
5378
+ gap: 12px;
5379
+ padding: 9px 14px;
5380
+ border-top: 1px solid var(--line-soft);
5381
+ background: var(--surface-2);
5382
+ }
5383
+
5384
+ .dt-foot-info {
5385
+ font-family: var(--font-mono);
5386
+ font-size: 10.5px;
5387
+ color: var(--text-400);
5388
+ letter-spacing: 0.03em;
5389
+ }
5390
+
5391
+ .pager {
5392
+ display: flex;
5393
+ gap: 4px;
5394
+ }
5395
+
5396
+ .pager button {
5397
+ min-width: 26px;
5398
+ height: 26px;
5399
+ padding: 0 6px;
5400
+ border: 1px solid var(--line);
5401
+ border-radius: var(--radius-xs);
5402
+ background: var(--surface);
5403
+ color: var(--text-500);
5404
+ font-family: var(--font-mono);
5405
+ font-size: 11px;
5406
+ display: inline-flex;
5407
+ align-items: center;
5408
+ justify-content: center;
5409
+ }
5410
+
5411
+ .pager button:hover:not(:disabled) {
5412
+ border-color: var(--aqua-300);
5413
+ color: var(--aqua-700);
5414
+ }
5415
+
5416
+ .pager button.cur {
5417
+ background: var(--ink-800);
5418
+ border-color: var(--ink-800);
5419
+ color: #fff;
5420
+ }
5421
+
5422
+ .pager button:disabled {
5423
+ opacity: 0.35;
5424
+ cursor: default;
5425
+ }
5426
+
5427
+ .ph {
5428
+ display: flex;
5429
+ align-items: flex-end;
5430
+ justify-content: space-between;
5431
+ gap: 16px;
5432
+ flex-wrap: wrap;
5433
+ padding-top: 4px;
5434
+ }
5435
+
5436
+ .ph-title {
5437
+ font-family: var(--font-display);
5438
+ font-size: 26px;
5439
+ font-weight: 700;
5440
+ letter-spacing: 0.005em;
5441
+ color: var(--text-900);
5442
+ line-height: 1.05;
5443
+ display: flex;
5444
+ align-items: center;
5445
+ gap: 12px;
5446
+ }
5447
+
5448
+ .ph-title svg {
5449
+ width: 22px;
5450
+ height: 22px;
5451
+ color: var(--aqua-600);
5452
+ }
5453
+
5454
+ .ph-sub {
5455
+ font-size: 12.5px;
5456
+ color: var(--text-500);
5457
+ margin-top: 5px;
5458
+ max-width: 640px;
5459
+ }
5460
+
5461
+ .ph-actions {
5462
+ display: flex;
5463
+ align-items: center;
5464
+ gap: 8px;
5465
+ flex-wrap: wrap;
5466
+ }
5467
+
5468
+ .ph-meta {
5469
+ display: flex;
5470
+ align-items: center;
5471
+ gap: 14px;
5472
+ margin-top: 8px;
5473
+ flex-wrap: wrap;
5474
+ }
5475
+
5476
+ .ph-meta-item {
5477
+ display: flex;
5478
+ align-items: center;
5479
+ gap: 6px;
5480
+ font-size: 11.5px;
5481
+ color: var(--text-500);
5482
+ }
5483
+
5484
+ .ph-meta-item svg {
5485
+ width: 13px;
5486
+ height: 13px;
5487
+ color: var(--text-400);
5488
+ }
5489
+
5490
+ .ov-backdrop {
5491
+ position: fixed;
5492
+ inset: 0;
5493
+ background: rgba(7, 28, 38, 0.45);
5494
+ backdrop-filter: blur(3px);
5495
+ z-index: 90;
5496
+ animation: fade-in var(--dur-2) var(--ease) both;
5497
+ }
5498
+
5499
+ @keyframes fade-in {
5500
+ from { opacity: 0; }
5501
+ to { opacity: 1; }
5502
+ }
5503
+
5504
+ .drawer {
5505
+ position: fixed;
5506
+ top: 0;
5507
+ right: 0;
5508
+ bottom: 0;
5509
+ width: min(560px, 94vw);
5510
+ background: var(--surface);
5511
+ border-left: 1px solid var(--line);
5512
+ box-shadow: var(--shadow-pop);
5513
+ z-index: 95;
5514
+ display: flex;
5515
+ flex-direction: column;
5516
+ animation: drawer-in var(--dur-3) var(--ease) both;
5517
+ }
5518
+
5519
+ .drawer.wide {
5520
+ width: min(760px, 96vw);
5521
+ }
5522
+
5523
+ @keyframes drawer-in {
5524
+ from { transform: translateX(40px); opacity: 0; }
5525
+ to { transform: none; opacity: 1; }
5526
+ }
5527
+
5528
+ .drawer-h {
5529
+ display: flex;
5530
+ align-items: flex-start;
5531
+ justify-content: space-between;
5532
+ gap: 12px;
5533
+ padding: 16px 20px 14px;
5534
+ border-bottom: 1px solid var(--line-soft);
5535
+ background: linear-gradient(180deg, var(--surface-2), var(--surface));
5536
+ }
5537
+
5538
+ .drawer-title {
5539
+ font-family: var(--font-head);
5540
+ font-size: 16px;
5541
+ font-weight: 600;
5542
+ color: var(--text-900);
5543
+ display: flex;
5544
+ align-items: center;
5545
+ gap: 9px;
5546
+ flex-wrap: wrap;
5547
+ }
5548
+
5549
+ .drawer-code {
5550
+ font-family: var(--font-mono);
5551
+ font-size: 11px;
5552
+ color: var(--text-400);
5553
+ letter-spacing: 0.05em;
5554
+ }
5555
+
5556
+ .drawer-b {
5557
+ flex: 1;
5558
+ overflow-y: auto;
5559
+ padding: 18px 20px;
5560
+ display: flex;
5561
+ flex-direction: column;
5562
+ gap: 20px;
5563
+ }
5564
+
5565
+ .drawer-f {
5566
+ display: flex;
5567
+ align-items: center;
5568
+ justify-content: flex-end;
5569
+ gap: 8px;
5570
+ padding: 12px 20px;
5571
+ border-top: 1px solid var(--line-soft);
5572
+ background: var(--surface-2);
5573
+ }
5574
+
5575
+ .modal-wrap {
5576
+ position: fixed;
5577
+ inset: 0;
5578
+ z-index: 95;
5579
+ display: flex;
5580
+ align-items: flex-start;
5581
+ justify-content: center;
5582
+ padding: 8vh 20px 40px;
5583
+ overflow-y: auto;
5584
+ pointer-events: none;
5585
+ }
5586
+
5587
+ .modal-wrap > * {
5588
+ pointer-events: auto;
5589
+ }
5590
+
5591
+ .modal {
5592
+ width: 100%;
5593
+ max-width: 620px;
5594
+ background: var(--surface);
5595
+ border: 1px solid var(--line);
5596
+ border-radius: 10px;
5597
+ box-shadow: var(--shadow-pop);
5598
+ display: flex;
5599
+ flex-direction: column;
5600
+ animation: modal-in var(--dur-3) var(--ease-out) both;
5601
+ }
5602
+
5603
+ @keyframes modal-in {
5604
+ from { transform: translateY(14px) scale(0.985); opacity: 0; }
5605
+ to { transform: none; opacity: 1; }
5606
+ }
5607
+
5608
+ .modal-h {
5609
+ display: flex;
5610
+ align-items: center;
5611
+ justify-content: space-between;
5612
+ gap: 12px;
5613
+ padding: 15px 20px;
5614
+ border-bottom: 1px solid var(--line-soft);
5615
+ }
5616
+
5617
+ .modal-title {
5618
+ font-family: var(--font-head);
5619
+ font-size: 15px;
5620
+ font-weight: 600;
5621
+ }
5622
+
5623
+ .modal-b {
5624
+ padding: 18px 20px;
5625
+ }
5626
+
5627
+ .modal-f {
5628
+ display: flex;
5629
+ align-items: center;
5630
+ justify-content: flex-end;
5631
+ gap: 8px;
5632
+ padding: 13px 20px;
5633
+ border-top: 1px solid var(--line-soft);
5634
+ background: var(--surface-2);
5635
+ border-radius: 0 0 10px 10px;
5636
+ }
5637
+
5638
+ .toasts {
5639
+ position: fixed;
5640
+ bottom: 18px;
5641
+ right: 18px;
5642
+ z-index: 200;
5643
+ display: flex;
5644
+ flex-direction: column;
5645
+ gap: 8px;
5646
+ max-width: 360px;
5647
+ }
5648
+
5649
+ .toast {
5650
+ display: flex;
5651
+ align-items: flex-start;
5652
+ gap: 10px;
5653
+ padding: 11px 14px;
5654
+ background: var(--ink-900);
5655
+ color: var(--text-inv);
5656
+ border: 1px solid var(--ink-600);
5657
+ border-radius: var(--radius);
5658
+ box-shadow: var(--shadow-3);
5659
+ animation: toast-in var(--dur-3) var(--ease-out) both;
5660
+ font-size: 12.5px;
5661
+ }
5662
+
5663
+ @keyframes toast-in {
5664
+ from { transform: translateX(24px); opacity: 0; }
5665
+ to { transform: none; opacity: 1; }
5666
+ }
5667
+
5668
+ .toast.out {
5669
+ animation: toast-out var(--dur-2) var(--ease) both;
5670
+ }
5671
+
5672
+ @keyframes toast-out {
5673
+ to { transform: translateX(24px); opacity: 0; }
5674
+ }
5675
+
5676
+ .toast svg {
5677
+ width: 16px;
5678
+ height: 16px;
5679
+ flex-shrink: 0;
5680
+ margin-top: 1px;
5681
+ }
5682
+
5683
+ .toast.ok svg { color: #4ddba2; }
5684
+ .toast.warn svg { color: #f0b357; }
5685
+ .toast.danger svg { color: #f2837a; }
5686
+ .toast.info svg { color: var(--aqua-300); }
5687
+
5688
+ .toast-title {
5689
+ font-weight: 600;
5690
+ }
5691
+
5692
+ .toast-desc {
5693
+ color: var(--text-inv-dim);
5694
+ font-size: 11.5px;
5695
+ margin-top: 1px;
5696
+ }
5697
+
5698
+ .kv {
5699
+ display: flex;
5700
+ flex-direction: column;
5701
+ }
5702
+
5703
+ .kv-row {
5704
+ display: flex;
5705
+ align-items: baseline;
5706
+ justify-content: space-between;
5707
+ gap: 16px;
5708
+ padding: 7px 0;
5709
+ border-bottom: 1px dashed var(--line-soft);
5710
+ font-size: 12.5px;
5711
+ }
5712
+
5713
+ .kv-row:last-child {
5714
+ border-bottom: 0;
5715
+ }
5716
+
5717
+ .kv-k {
5718
+ font-family: var(--font-mono);
5719
+ font-size: 10px;
5720
+ letter-spacing: 0.07em;
5721
+ text-transform: uppercase;
5722
+ color: var(--text-400);
5723
+ flex-shrink: 0;
5724
+ padding-top: 2px;
5725
+ }
5726
+
5727
+ .kv-v {
5728
+ color: var(--text-900);
5729
+ font-weight: 500;
5730
+ text-align: right;
5731
+ display: flex;
5732
+ align-items: center;
5733
+ gap: 7px;
5734
+ justify-content: flex-end;
5735
+ flex-wrap: wrap;
5736
+ }
5737
+
5738
+ .sect {
5739
+ display: flex;
5740
+ flex-direction: column;
5741
+ gap: 10px;
5742
+ }
5743
+
5744
+ .sect-title {
5745
+ display: flex;
5746
+ align-items: center;
5747
+ gap: 8px;
5748
+ font-family: var(--font-mono);
5749
+ font-size: 10px;
5750
+ font-weight: 500;
5751
+ letter-spacing: 0.12em;
5752
+ text-transform: uppercase;
5753
+ color: var(--text-400);
5754
+ padding-bottom: 6px;
5755
+ border-bottom: 1px solid var(--line-soft);
5756
+ }
5757
+
5758
+ .sect-title svg {
5759
+ width: 13px;
5760
+ height: 13px;
5761
+ color: var(--aqua-600);
5762
+ }
5763
+
5764
+ .tl {
5765
+ display: flex;
5766
+ flex-direction: column;
5767
+ }
5768
+
5769
+ .tl-item {
5770
+ display: flex;
5771
+ gap: 12px;
5772
+ position: relative;
5773
+ padding-bottom: 16px;
5774
+ }
5775
+
5776
+ .tl-item:last-child {
5777
+ padding-bottom: 2px;
5778
+ }
5779
+
5780
+ .tl-item::before {
5781
+ content: '';
5782
+ position: absolute;
5783
+ left: 12px;
5784
+ top: 26px;
5785
+ bottom: 0;
5786
+ width: 1px;
5787
+ background: var(--line);
5788
+ }
5789
+
5790
+ .tl-item:last-child::before {
5791
+ display: none;
5792
+ }
5793
+
5794
+ .tl-icon {
5795
+ width: 25px;
5796
+ height: 25px;
5797
+ border-radius: 50%;
5798
+ display: flex;
5799
+ align-items: center;
5800
+ justify-content: center;
5801
+ flex-shrink: 0;
5802
+ border: 1px solid;
5803
+ z-index: 1;
5804
+ }
5805
+
5806
+ .tl-icon svg {
5807
+ width: 12px;
5808
+ height: 12px;
5809
+ }
5810
+
5811
+ .tl-icon.ok { background: var(--ok-bg); color: var(--ok); border-color: var(--ok-line); }
5812
+ .tl-icon.warn { background: var(--warn-bg); color: var(--warn); border-color: var(--warn-line); }
5813
+ .tl-icon.danger { background: var(--danger-bg); color: var(--danger); border-color: var(--danger-line); }
5814
+ .tl-icon.info { background: var(--aqua-50); color: var(--aqua-700); border-color: var(--aqua-100); }
5815
+ .tl-icon.hold { background: var(--hold-bg); color: var(--hold); border-color: var(--hold-line); }
5816
+
5817
+ .tl-body {
5818
+ min-width: 0;
5819
+ flex: 1;
5820
+ }
5821
+
5822
+ .tl-title {
5823
+ font-size: 12.5px;
5824
+ font-weight: 600;
5825
+ color: var(--text-900);
5826
+ }
5827
+
5828
+ .tl-desc {
5829
+ font-size: 11.5px;
5830
+ color: var(--text-500);
5831
+ margin-top: 1px;
5832
+ line-height: 1.45;
5833
+ }
5834
+
5835
+ .tl-time {
5836
+ font-family: var(--font-mono);
5837
+ font-size: 10px;
5838
+ color: var(--text-400);
5839
+ letter-spacing: 0.03em;
5840
+ white-space: nowrap;
5841
+ padding-top: 2px;
5842
+ }
5843
+
5844
+ .meter {
5845
+ height: 6px;
5846
+ border-radius: 4px;
5847
+ background: var(--surface-3);
5848
+ overflow: hidden;
5849
+ min-width: 60px;
5850
+ }
5851
+
5852
+ .meter-fill {
5853
+ height: 100%;
5854
+ border-radius: 4px;
5855
+ background: var(--aqua-500);
5856
+ transition: width var(--dur-3) var(--ease-out);
5857
+ }
5858
+
5859
+ .meter-fill.ok { background: var(--ok); }
5860
+ .meter-fill.warn { background: #dd9a2b; }
5861
+ .meter-fill.danger { background: var(--danger); }
5862
+ .meter-fill.hold { background: var(--line-strong); }
5863
+
5864
+ .meter-row {
5865
+ display: flex;
5866
+ align-items: center;
5867
+ gap: 10px;
5868
+ }
5869
+
5870
+ .meter-row .meter-label {
5871
+ font-size: 12px;
5872
+ color: var(--text-700);
5873
+ white-space: nowrap;
5874
+ display: inline-flex;
5875
+ gap: 6px;
5876
+ align-items: center;
5877
+ min-width: 110px;
5878
+ }
5879
+
5880
+ .meter-row .meter-val {
5881
+ font-family: var(--font-mono);
5882
+ font-size: 10.5px;
5883
+ color: var(--text-500);
5884
+ white-space: nowrap;
5885
+ min-width: 64px;
5886
+ text-align: right;
5887
+ }
5888
+
5889
+ .empty {
5890
+ display: flex;
5891
+ flex-direction: column;
5892
+ align-items: center;
5893
+ justify-content: center;
5894
+ gap: 6px;
5895
+ padding: 44px 24px;
5896
+ text-align: center;
5897
+ }
5898
+
5899
+ .empty-icon {
5900
+ width: 52px;
5901
+ height: 52px;
5902
+ border-radius: 14px;
5903
+ background: var(--aqua-50);
5904
+ border: 1px solid var(--aqua-100);
5905
+ display: flex;
5906
+ align-items: center;
5907
+ justify-content: center;
5908
+ color: var(--aqua-600);
5909
+ margin-bottom: 6px;
5910
+ }
5911
+
5912
+ .empty-icon svg {
5913
+ width: 24px;
5914
+ height: 24px;
5915
+ }
5916
+
5917
+ .empty-title {
5918
+ font-family: var(--font-head);
5919
+ font-size: 14px;
5920
+ font-weight: 600;
5921
+ color: var(--text-700);
5922
+ }
5923
+
5924
+ .empty-desc {
5925
+ font-size: 12px;
5926
+ color: var(--text-400);
5927
+ max-width: 340px;
5928
+ }
5929
+
5930
+ .empty .btn {
5931
+ margin-top: 10px;
5932
+ }
5933
+
5934
+ .alert {
5935
+ display: flex;
5936
+ align-items: flex-start;
5937
+ gap: 10px;
5938
+ padding: 11px 13px;
5939
+ border-radius: var(--radius-sm);
5940
+ border: 1px solid;
5941
+ font-size: 12.5px;
5942
+ }
5943
+
5944
+ .alert svg {
5945
+ width: 15px;
5946
+ height: 15px;
5947
+ flex-shrink: 0;
5948
+ margin-top: 1px;
5949
+ }
5950
+
5951
+ .alert.ok { background: var(--ok-bg); border-color: var(--ok-line); color: var(--ok); }
5952
+ .alert.warn { background: var(--warn-bg); border-color: var(--warn-line); color: var(--warn); }
5953
+ .alert.danger { background: var(--danger-bg); border-color: var(--danger-line); color: var(--danger); }
5954
+ .alert.info { background: var(--aqua-50); border-color: var(--aqua-100); color: var(--aqua-700); }
5955
+
5956
+ .alert .alert-body {
5957
+ color: var(--text-700);
5958
+ min-width: 0;
5959
+ }
5960
+
5961
+ .alert .alert-title {
5962
+ font-weight: 600;
5963
+ color: inherit;
5964
+ }
5965
+
5966
+ .menu {
5967
+ position: absolute;
5968
+ top: calc(100% + 6px);
5969
+ right: 0;
5970
+ min-width: 210px;
5971
+ background: var(--surface);
5972
+ border: 1px solid var(--line);
5973
+ border-radius: var(--radius);
5974
+ box-shadow: var(--shadow-3);
5975
+ padding: 5px;
5976
+ z-index: 80;
5977
+ animation: menu-in var(--dur-2) var(--ease-out) both;
5978
+ }
5979
+
5980
+ @keyframes menu-in {
5981
+ from { opacity: 0; transform: translateY(-4px); }
5982
+ to { opacity: 1; transform: none; }
5983
+ }
5984
+
5985
+ .menu-anchor {
5986
+ position: relative;
5987
+ }
5988
+
5989
+ .menu-label {
5990
+ font-family: var(--font-mono);
5991
+ font-size: 9.5px;
5992
+ letter-spacing: 0.12em;
5993
+ text-transform: uppercase;
5994
+ color: var(--text-400);
5995
+ padding: 7px 9px 4px;
5996
+ }
5997
+
5998
+ .menu-item {
5999
+ display: flex;
6000
+ align-items: center;
6001
+ gap: 9px;
6002
+ width: 100%;
6003
+ padding: 7px 9px;
6004
+ border: 0;
6005
+ border-radius: var(--radius-xs);
6006
+ background: transparent;
6007
+ color: var(--text-700);
6008
+ font-size: 12.5px;
6009
+ font-weight: 500;
6010
+ text-align: left;
6011
+ }
6012
+
6013
+ .menu-item:hover {
6014
+ background: var(--surface-3);
6015
+ color: var(--text-900);
6016
+ }
6017
+
6018
+ .menu-item svg {
6019
+ width: 14px;
6020
+ height: 14px;
6021
+ color: var(--text-400);
6022
+ }
6023
+
6024
+ .menu-item.danger {
6025
+ color: var(--danger);
6026
+ }
6027
+
6028
+ .menu-item.danger svg {
6029
+ color: var(--danger);
6030
+ }
6031
+
6032
+ .menu-sep {
6033
+ height: 1px;
6034
+ background: var(--line-soft);
6035
+ margin: 5px 4px;
6036
+ }
6037
+
6038
+ .menu-check {
6039
+ margin-left: auto;
6040
+ width: 13px;
6041
+ height: 13px;
6042
+ color: var(--aqua-600);
6043
+ }
6044
+
6045
+ .notif-pop {
6046
+ position: absolute;
6047
+ top: calc(100% + 8px);
6048
+ right: 0;
6049
+ width: 372px;
6050
+ background: var(--surface);
6051
+ border: 1px solid var(--line);
6052
+ border-radius: var(--radius);
6053
+ box-shadow: var(--shadow-3);
6054
+ z-index: 80;
6055
+ overflow: hidden;
6056
+ animation: menu-in var(--dur-2) var(--ease-out) both;
6057
+ }
6058
+
6059
+ .notif-head {
6060
+ display: flex;
6061
+ align-items: center;
6062
+ justify-content: space-between;
6063
+ padding: 11px 14px;
6064
+ border-bottom: 1px solid var(--line-soft);
6065
+ }
6066
+
6067
+ .notif-list {
6068
+ max-height: 380px;
6069
+ overflow-y: auto;
6070
+ }
6071
+
6072
+ .notif-item {
6073
+ display: flex;
6074
+ gap: 11px;
6075
+ padding: 11px 14px;
6076
+ border-bottom: 1px solid var(--line-soft);
6077
+ transition: background var(--dur-1);
6078
+ width: 100%;
6079
+ border-left: 0;
6080
+ border-right: 0;
6081
+ border-top: 0;
6082
+ background: transparent;
6083
+ text-align: left;
6084
+ align-items: flex-start;
6085
+ }
6086
+
6087
+ .notif-item:hover {
6088
+ background: var(--surface-2);
6089
+ }
6090
+
6091
+ .notif-item:last-child {
6092
+ border-bottom: 0;
6093
+ }
6094
+
6095
+ .notif-item.unread {
6096
+ background: var(--aqua-50);
6097
+ }
6098
+
6099
+ .notif-item.unread:hover {
6100
+ background: var(--aqua-100);
6101
+ }
6102
+
6103
+ .notif-title {
6104
+ font-size: 12.5px;
6105
+ font-weight: 600;
6106
+ color: var(--text-900);
6107
+ }
6108
+
6109
+ .notif-body {
6110
+ font-size: 11.5px;
6111
+ color: var(--text-500);
6112
+ margin-top: 1px;
6113
+ }
6114
+
6115
+ .notif-time {
6116
+ font-family: var(--font-mono);
6117
+ font-size: 9.5px;
6118
+ color: var(--text-400);
6119
+ margin-top: 3px;
6120
+ }
6121
+
6122
+ .palette {
6123
+ width: 100%;
6124
+ max-width: 580px;
6125
+ background: var(--surface);
6126
+ border: 1px solid var(--line);
6127
+ border-radius: 12px;
6128
+ box-shadow: var(--shadow-pop);
6129
+ overflow: hidden;
6130
+ animation: modal-in var(--dur-3) var(--ease-out) both;
6131
+ }
6132
+
6133
+ .palette-input-row {
6134
+ display: flex;
6135
+ align-items: center;
6136
+ gap: 10px;
6137
+ padding: 13px 16px;
6138
+ border-bottom: 1px solid var(--line-soft);
6139
+ }
6140
+
6141
+ .palette-input-row svg {
6142
+ width: 16px;
6143
+ height: 16px;
6144
+ color: var(--text-400);
6145
+ flex-shrink: 0;
6146
+ }
6147
+
6148
+ .palette-input {
6149
+ flex: 1;
6150
+ border: 0;
6151
+ outline: none;
6152
+ font-size: 14px;
6153
+ font-family: var(--font-body);
6154
+ color: var(--text-900);
6155
+ background: transparent;
6156
+ }
6157
+
6158
+ .palette-input::placeholder {
6159
+ color: var(--text-400);
6160
+ }
6161
+
6162
+ .palette-body {
6163
+ max-height: 420px;
6164
+ overflow-y: auto;
6165
+ padding: 6px;
6166
+ }
6167
+
6168
+ .palette-group {
6169
+ font-family: var(--font-mono);
6170
+ font-size: 9.5px;
6171
+ letter-spacing: 0.12em;
6172
+ text-transform: uppercase;
6173
+ color: var(--text-400);
6174
+ padding: 9px 10px 5px;
6175
+ }
6176
+
6177
+ .palette-item {
6178
+ display: flex;
6179
+ align-items: center;
6180
+ gap: 11px;
6181
+ width: 100%;
6182
+ padding: 8px 10px;
6183
+ border: 0;
6184
+ border-radius: var(--radius-sm);
6185
+ background: transparent;
6186
+ text-align: left;
6187
+ }
6188
+
6189
+ .palette-item:hover,
6190
+ .palette-item.hl {
6191
+ background: var(--aqua-50);
6192
+ }
6193
+
6194
+ .palette-item .pi-icon {
6195
+ width: 28px;
6196
+ height: 28px;
6197
+ border-radius: var(--radius-xs);
6198
+ background: var(--surface-3);
6199
+ border: 1px solid var(--line-soft);
6200
+ display: flex;
6201
+ align-items: center;
6202
+ justify-content: center;
6203
+ color: var(--text-500);
6204
+ flex-shrink: 0;
6205
+ }
6206
+
6207
+ .palette-item .pi-icon svg {
6208
+ width: 14px;
6209
+ height: 14px;
6210
+ }
6211
+
6212
+ .palette-item .pi-main {
6213
+ font-size: 13px;
6214
+ font-weight: 600;
6215
+ color: var(--text-900);
6216
+ }
6217
+
6218
+ .palette-item .pi-sub {
6219
+ font-size: 11px;
6220
+ color: var(--text-400);
6221
+ margin-top: 1px;
6222
+ }
6223
+
6224
+ .palette-empty {
6225
+ padding: 32px;
6226
+ text-align: center;
6227
+ color: var(--text-400);
6228
+ font-size: 12.5px;
6229
+ }
6230
+
6231
+ .chart-box {
6232
+ position: relative;
6233
+ width: 100%;
6234
+ }
6235
+
6236
+ .chart-box svg {
6237
+ display: block;
6238
+ width: 100%;
6239
+ height: auto;
6240
+ }
6241
+
6242
+ .chart-grid-line {
6243
+ stroke: var(--line-soft);
6244
+ stroke-width: 1;
6245
+ stroke-dasharray: 3 4;
6246
+ }
6247
+
6248
+ .chart-axis-label {
6249
+ font-family: var(--font-mono);
6250
+ font-size: 8.5px;
6251
+ fill: var(--text-400);
6252
+ letter-spacing: 0.02em;
6253
+ }
6254
+
6255
+ .chart-value-label {
6256
+ font-family: var(--font-mono);
6257
+ font-size: 9px;
6258
+ font-weight: 600;
6259
+ fill: var(--text-700);
6260
+ }
6261
+
6262
+ .chart-dot {
6263
+ transition: r var(--dur-1);
6264
+ }
6265
+
6266
+ .chart-bar {
6267
+ transition: opacity var(--dur-1);
6268
+ }
6269
+
6270
+ .chart-bar:hover {
6271
+ opacity: 0.75;
6272
+ }
6273
+
6274
+ .map-demo {
6275
+ position: relative;
6276
+ border-radius: var(--radius-sm);
6277
+ overflow: hidden;
6278
+ border: 1px solid var(--line);
6279
+ background:
6280
+ linear-gradient(rgba(11, 165, 196, 0.035), rgba(11, 165, 196, 0.035)),
6281
+ repeating-linear-gradient(0deg, transparent 0 31px, var(--line-soft) 31px 32px),
6282
+ repeating-linear-gradient(90deg, transparent 0 31px, var(--line-soft) 31px 32px),
6283
+ linear-gradient(160deg, #e8f0f2, #f2f7f8);
6284
+ min-height: 240px;
6285
+ }
6286
+
6287
+ .map-demo svg.route-svg {
6288
+ position: absolute;
6289
+ inset: 0;
6290
+ width: 100%;
6291
+ height: 100%;
6292
+ }
6293
+
6294
+ .map-pin {
6295
+ position: absolute;
6296
+ transform: translate(-50%, -100%);
6297
+ display: flex;
6298
+ flex-direction: column;
6299
+ align-items: center;
6300
+ gap: 2px;
6301
+ }
6302
+
6303
+ .map-pin .pin-dot {
6304
+ width: 22px;
6305
+ height: 22px;
6306
+ border-radius: 50% 50% 50% 4px;
6307
+ transform: rotate(-45deg);
6308
+ display: flex;
6309
+ align-items: center;
6310
+ justify-content: center;
6311
+ border: 2px solid #fff;
6312
+ box-shadow: var(--shadow-2);
6313
+ font-family: var(--font-mono);
6314
+ font-size: 9px;
6315
+ font-weight: 600;
6316
+ }
6317
+
6318
+ .map-pin .pin-dot span {
6319
+ transform: rotate(45deg);
6320
+ }
6321
+
6322
+ .map-pin.done .pin-dot { background: var(--ok); color: #fff; }
6323
+ .map-pin.now .pin-dot { background: var(--aqua-500); color: #fff; }
6324
+ .map-pin.todo .pin-dot { background: var(--surface); color: var(--text-500); }
6325
+
6326
+ .map-pin .pin-label {
6327
+ font-family: var(--font-mono);
6328
+ font-size: 9px;
6329
+ background: var(--surface);
6330
+ border: 1px solid var(--line);
6331
+ border-radius: var(--radius-xs);
6332
+ padding: 1px 5px;
6333
+ color: var(--text-700);
6334
+ white-space: nowrap;
6335
+ box-shadow: var(--shadow-1);
6336
+ }
6337
+
6338
+ .signature-pad {
6339
+ border: 1px dashed var(--line-strong);
6340
+ border-radius: var(--radius-sm);
6341
+ background:
6342
+ repeating-linear-gradient(0deg, transparent 0 17px, var(--line-soft) 17px 18px),
6343
+ var(--surface-2);
6344
+ position: relative;
6345
+ min-height: 110px;
6346
+ display: flex;
6347
+ align-items: center;
6348
+ justify-content: center;
6349
+ }
6350
+
6351
+ .signature-pad svg {
6352
+ width: 82%;
6353
+ height: auto;
6354
+ }
6355
+
6356
+ .stat-row {
6357
+ display: grid;
6358
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
6359
+ gap: 1px;
6360
+ background: var(--line-soft);
6361
+ border: 1px solid var(--line-soft);
6362
+ border-radius: var(--radius-sm);
6363
+ overflow: hidden;
6364
+ }
6365
+
6366
+ .stat-cell {
6367
+ background: var(--surface);
6368
+ padding: 11px 13px;
6369
+ display: flex;
6370
+ flex-direction: column;
6371
+ gap: 3px;
6372
+ }
6373
+
6374
+ .stat-cell .sc-val {
6375
+ font-family: var(--font-display);
6376
+ font-size: 21px;
6377
+ font-weight: 700;
6378
+ line-height: 1;
6379
+ color: var(--text-900);
6380
+ }
6381
+
6382
+ .stat-cell .sc-label {
6383
+ font-family: var(--font-mono);
6384
+ font-size: 9.5px;
6385
+ letter-spacing: 0.09em;
6386
+ text-transform: uppercase;
6387
+ color: var(--text-400);
6388
+ }
6389
+
6390
+ .tile-list {
6391
+ display: flex;
6392
+ flex-direction: column;
6393
+ }
6394
+
6395
+ .tile {
6396
+ display: flex;
6397
+ align-items: center;
6398
+ gap: 11px;
6399
+ padding: 10px 16px;
6400
+ border-bottom: 1px solid var(--line-soft);
6401
+ transition: background var(--dur-1);
6402
+ }
6403
+
6404
+ .tile:last-child {
6405
+ border-bottom: 0;
6406
+ }
6407
+
6408
+ .tile.clickable {
6409
+ cursor: pointer;
6410
+ }
6411
+
6412
+ .tile.clickable:hover {
6413
+ background: var(--aqua-50);
6414
+ }
6415
+
6416
+ @media (max-width: 1240px) {
6417
+ .kpi-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
6418
+ .two-col { grid-template-columns: 1fr !important; }
6419
+ }
6420
+
6421
+ @media (max-width: 1024px) {
6422
+ .sidebar {
6423
+ position: fixed;
6424
+ left: 0;
6425
+ top: 0;
6426
+ bottom: 0;
6427
+ transform: translateX(-100%);
6428
+ transition: transform var(--dur-3) var(--ease);
6429
+ }
6430
+
6431
+ .sidebar.open {
6432
+ transform: none;
6433
+ box-shadow: var(--shadow-pop);
6434
+ }
6435
+
6436
+ .sb-scrim {
6437
+ position: fixed;
6438
+ inset: 0;
6439
+ background: rgba(7, 28, 38, 0.45);
6440
+ z-index: 35;
6441
+ animation: fade-in var(--dur-2) both;
6442
+ }
6443
+
6444
+ .tb-burger {
6445
+ display: inline-flex;
6446
+ }
6447
+
6448
+ .tb-search {
6449
+ width: auto;
6450
+ min-width: 180px;
6451
+ }
6452
+
6453
+ .page {
6454
+ padding: 16px 16px 40px;
6455
+ }
6456
+ }
6457
+
6458
+ @media (max-width: 720px) {
6459
+ .tb-search span.search-label {
6460
+ display: none;
6461
+ }
6462
+
6463
+ .form-grid {
6464
+ grid-template-columns: 1fr;
6465
+ }
6466
+
6467
+ .ph {
6468
+ flex-direction: column;
6469
+ align-items: flex-start;
6470
+ }
6471
+
6472
+ .filterbar {
6473
+ align-items: stretch;
6474
+ }
6475
+ }
6476
+
6477
+ .two-col {
6478
+ display: grid;
6479
+ grid-template-columns: 1.6fr 1fr;
6480
+ gap: 16px;
6481
+ align-items: start;
6482
+ }
6483
+
6484
+ .two-col-even {
6485
+ display: grid;
6486
+ grid-template-columns: 1fr 1fr;
6487
+ gap: 16px;
6488
+ align-items: start;
6489
+ }
6490
+
6491
+ .three-col {
6492
+ display: grid;
6493
+ grid-template-columns: repeat(3, 1fr);
6494
+ gap: 16px;
6495
+ align-items: start;
6496
+ }
6497
+
6498
+ @media (max-width: 900px) {
6499
+ .three-col {
6500
+ grid-template-columns: 1fr;
6501
+ }
6502
+ }
6503
+
6504
+ .cards-grid {
6505
+ display: grid;
6506
+ grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
6507
+ gap: 14px;
6508
+ align-items: stretch;
6509
+ }
6510
+
6511
+ .card.clickable {
6512
+ cursor: pointer;
6513
+ border-color: var(--line);
6514
+ transition: border-color 0.18s var(--ease), transform 0.18s var(--ease), box-shadow 0.18s var(--ease);
6515
+ }
6516
+
6517
+ .card.clickable:hover {
6518
+ border-color: var(--aqua-300);
6519
+ transform: translateY(-2px);
6520
+ box-shadow: var(--shadow-md);
6521
+ }
6522
+
6523
+ .code-tag {
6524
+ display: inline-flex;
6525
+ align-items: center;
6526
+ font-family: var(--font-mono);
6527
+ font-size: 11px;
6528
+ font-weight: 600;
6529
+ letter-spacing: 0.02em;
6530
+ color: var(--aqua-700);
6531
+ background: var(--aqua-50);
6532
+ border: 1px solid var(--aqua-100);
6533
+ border-radius: var(--radius-sm);
6534
+ padding: 2px 7px;
6535
+ white-space: nowrap;
6536
+ }
6537
+
6538
+ a.code-tag,
6539
+ .code-tag.link {
6540
+ cursor: pointer;
6541
+ text-decoration: none;
6542
+ transition: background var(--dur-2), color var(--dur-2);
6543
+ }
6544
+
6545
+ a.code-tag:hover,
6546
+ .code-tag.link:hover {
6547
+ background: var(--aqua-100);
6548
+ }
6549
+
6550
+ .page-meta {
6551
+ display: flex;
6552
+ flex-wrap: wrap;
6553
+ gap: 10px 34px;
6554
+ background: var(--surface);
6555
+ border: 1px solid var(--line);
6556
+ border-radius: var(--radius);
6557
+ padding: 12px 16px;
6558
+ }
6559
+
6560
+ .page-meta .m {
6561
+ display: flex;
6562
+ flex-direction: column;
6563
+ gap: 2px;
6564
+ min-width: 0;
6565
+ }
6566
+
6567
+ .page-meta .m b {
6568
+ font-family: var(--font-mono);
6569
+ font-size: 12.5px;
6570
+ font-weight: 600;
6571
+ color: var(--text-900);
6572
+ }
6573
+
6574
+ .page-meta .m span {
6575
+ font-family: var(--font-mono);
6576
+ font-size: 9px;
6577
+ letter-spacing: 0.12em;
6578
+ text-transform: uppercase;
6579
+ color: var(--text-400);
6580
+ }
6581
+
6582
+ .row-actions {
6583
+ display: inline-flex;
6584
+ align-items: center;
6585
+ gap: 4px;
6586
+ }
6587
+
6588
+ .row-actions .icon-btn {
6589
+ width: 26px;
6590
+ height: 26px;
6591
+ border-radius: 7px;
6592
+ }
6593
+
6594
+ .row-actions .icon-btn.danger:hover {
6595
+ color: var(--danger);
6596
+ background: var(--danger-bg);
6597
+ }
6598
+
6599
+ .person-cell {
6600
+ display: flex;
6601
+ align-items: center;
6602
+ gap: 9px;
6603
+ min-width: 0;
6604
+ }
6605
+
6606
+ .person-cell .who {
6607
+ line-height: 1.3;
6608
+ min-width: 0;
6609
+ }
6610
+
6611
+ .person-cell .who b {
6612
+ font-size: 12.5px;
6613
+ font-weight: 600;
6614
+ color: var(--text-900);
6615
+ display: block;
6616
+ }
6617
+
6618
+ .person-cell .who span {
6619
+ font-size: 11px;
6620
+ color: var(--text-400);
6621
+ display: block;
6622
+ }
6623
+
6624
+ .kpi-grid {
6625
+ display: grid;
6626
+ grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
6627
+ gap: 12px;
6628
+ }
6629
+
6630
+ @keyframes route-pulse {
6631
+ 0%, 100% { opacity: 1; }
6632
+ 50% { opacity: 0.55; }
6633
+ }
6634
+
6635
+ .timeline {
6636
+ display: flex;
6637
+ flex-direction: column;
6638
+ }
6639
+
6640
+ .tl-item {
6641
+ position: relative;
6642
+ display: flex;
6643
+ gap: 12px;
6644
+ padding: 0 0 16px 0;
6645
+ }
6646
+
6647
+ .tl-item::before {
6648
+ content: '';
6649
+ position: absolute;
6650
+ left: 4.5px;
6651
+ top: 14px;
6652
+ bottom: 0;
6653
+ width: 1px;
6654
+ background: var(--line);
6655
+ }
6656
+
6657
+ .tl-item:last-child::before {
6658
+ display: none;
6659
+ }
6660
+
6661
+ .tl-dot {
6662
+ flex-shrink: 0;
6663
+ width: 10px;
6664
+ height: 10px;
6665
+ margin-top: 4px;
6666
+ border-radius: 99px;
6667
+ background: var(--aqua-500);
6668
+ border: 2px solid var(--surface);
6669
+ box-shadow: 0 0 0 1px var(--aqua-100);
6670
+ }
6671
+
6672
+ .tl-dot[data-kind='finance'] {
6673
+ background: var(--ok);
6674
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--ok) 25%, transparent);
6675
+ }
6676
+
6677
+ .tl-dot[data-kind='quality'] {
6678
+ background: var(--warn);
6679
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--warn) 25%, transparent);
6680
+ }
6681
+
6682
+ .tl-dot[data-kind='fleet'],
6683
+ .tl-dot[data-kind='maintenance'] {
6684
+ background: var(--violet, #8b5cf6);
6685
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--violet, #8b5cf6) 25%, transparent);
6686
+ }
6687
+
6688
+ .tl-body {
6689
+ display: flex;
6690
+ flex-direction: column;
6691
+ gap: 2px;
6692
+ min-width: 0;
6693
+ }
6694
+
6695
+ .tl-body b {
6696
+ font-size: 12.5px;
6697
+ font-weight: 600;
6698
+ color: var(--text-900);
6699
+ }
6700
+
6701
+ .tl-body span {
6702
+ font-size: 11.5px;
6703
+ color: var(--text-500, var(--text-400));
6704
+ line-height: 1.45;
6705
+ }
6706
+
6707
+ .tl-body time {
6708
+ font-family: var(--font-mono);
6709
+ font-size: 10px;
6710
+ color: var(--text-400);
6711
+ letter-spacing: 0.04em;
6712
+ }
6713
+
6714
+ .kanban {
6715
+ display: grid;
6716
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
6717
+ gap: 10px;
6718
+ }
6719
+
6720
+ .kanban-col {
6721
+ border: 1px solid var(--line);
6722
+ border-radius: var(--radius);
6723
+ background: var(--surface-2);
6724
+ min-width: 0;
6725
+ }
6726
+
6727
+ .kanban-col-h {
6728
+ display: flex;
6729
+ justify-content: space-between;
6730
+ align-items: center;
6731
+ padding: 9px 12px;
6732
+ border-bottom: 1px solid var(--line-soft);
6733
+ }
6734
+
6735
+ .kanban-col-b {
6736
+ padding: 8px;
6737
+ display: flex;
6738
+ flex-direction: column;
6739
+ gap: 7px;
6740
+ max-height: 640px;
6741
+ overflow-y: auto;
6742
+ }
6743
+
6744
+ .kanban-card {
6745
+ text-align: left;
6746
+ border: 1px solid var(--line);
6747
+ border-radius: 7px;
6748
+ background: var(--surface);
6749
+ padding: 9px 11px;
6750
+ cursor: pointer;
6751
+ font-family: inherit;
6752
+ transition: border-color var(--dur-1), box-shadow var(--dur-1);
6753
+ }
6754
+
6755
+ .kanban-card:hover {
6756
+ border-color: var(--aqua-500);
6757
+ box-shadow: var(--shadow-1);
6758
+ }