@@ -2438,36 +2438,36 @@ code {
24382438 }
24392439}
24402440
2441- /* Admin stat cards */
2441+ /* Admin stat cards — compact, denser packing for many KPIs */
24422442.admin-stats {
24432443 display : grid;
2444- grid-template-columns : repeat (auto-fit, minmax (180 px , 1fr ));
2445- gap : 12 px ;
2446- margin-bottom : 20 px ;
2444+ grid-template-columns : repeat (auto-fit, minmax (120 px , 1fr ));
2445+ gap : 8 px ;
2446+ margin-bottom : 16 px ;
24472447}
24482448
24492449.admin-stat-card {
24502450 background : var (--paper-card );
24512451 border : 1px solid var (--border-color );
2452- border-radius : 10 px ;
2453- padding : 16 px 18 px ;
2452+ border-radius : 8 px ;
2453+ padding : 10 px 12 px ;
24542454}
24552455
24562456.admin-stat-card .stat-value {
24572457 font-family : var (--font-serif );
2458- font-size : 1.9 rem ;
2458+ font-size : 1.4 rem ;
24592459 font-weight : 400 ;
24602460 line-height : 1.1 ;
24612461 color : var (--color );
24622462}
24632463
24642464.admin-stat-card .stat-label {
24652465 font-family : var (--font-mono );
2466- font-size : 10 .5px ;
2466+ font-size : 9 .5px ;
24672467 color : var (--ink-muted );
24682468 text-transform : uppercase;
24692469 letter-spacing : 0.08em ;
2470- margin-top : 6 px ;
2470+ margin-top : 4 px ;
24712471}
24722472
24732473/* Admin toolbar — kept as alias to dashboard filter row */
@@ -2679,8 +2679,9 @@ code {
26792679/* Admin section headers */
26802680.admin-section-header {
26812681 display : flex;
2682- align-items : baseline;
2683- justify-content : space-between;
2682+ align-items : center;
2683+ flex-wrap : wrap;
2684+ gap : 8px ;
26842685 margin : 24px 0 12px ;
26852686 padding-bottom : 8px ;
26862687 border-bottom : 1px solid var (--border-color );
@@ -3966,10 +3967,16 @@ textarea::selection {
39663967}
39673968.paper-table .paper-table-repos .paper-table-head ,
39683969.paper-table .paper-table-repos .paper-table-row {
3969- grid-template-columns : minmax (280px , 2.4fr ) 140px 90px 140px 52px ;
3970+ grid-template-columns : minmax (280px , 2.4fr ) minmax (140px , 1fr ) 90px 140px 52px ;
3971+ }
3972+ .paper-table .paper-table-repos .has-bulk .paper-table-head ,
3973+ .paper-table .paper-table-repos .has-bulk .paper-table-row {
3974+ grid-template-columns : 28px minmax (280px , 2.4fr ) minmax (140px , 1fr ) 90px 140px 52px ;
3975+ gap : 12px ;
39703976}
39713977.paper-table .admin-users-row {
3972- grid-template-columns : minmax (280px , 2.4fr ) 140px 140px 52px !important ;
3978+ grid-template-columns : 28px minmax (280px , 2.4fr ) 90px 120px 100px 52px !important ;
3979+ gap : 12px !important ;
39733980}
39743981.paper-table .paper-table-head {
39753982 background : transparent;
@@ -3982,6 +3989,16 @@ textarea::selection {
39823989 padding-top : 8px ;
39833990 padding-bottom : 8px ;
39843991}
3992+ .paper-table .paper-table-head .sortable {
3993+ cursor : pointer;
3994+ user-select : none;
3995+ display : inline-flex;
3996+ align-items : center;
3997+ gap : 4px ;
3998+ }
3999+ .paper-table .paper-table-head .sortable : hover { color : var (--color ); }
4000+ .paper-table .paper-table-head .sortable .active { color : var (--color ); }
4001+ .paper-table .paper-table-head .sortable i { font-size : 10px ; }
39854002.paper-table .paper-table-head .num ,
39864003.paper-table .paper-table-row .num { text-align : left; }
39874004.paper-table .paper-table-row {
@@ -4046,6 +4063,206 @@ textarea::selection {
40464063.status-dot .status-preparing { background : # C48A2E ; }
40474064.status-dot .status-removed { background : # 9A8F7B ; }
40484065
4066+ .bulk-bar {
4067+ display : flex;
4068+ align-items : center;
4069+ gap : 8px ;
4070+ background : var (--paper-card );
4071+ border : 1px solid var (--border-color );
4072+ border-radius : 8px ;
4073+ padding : 8px 12px ;
4074+ margin : 8px 0 ;
4075+ }
4076+
4077+ /* Tighter admin page header — admin is power-user UI, no need for huge title + lede */
4078+ .paper-page .admin-page .paper-page-title { font-size : 1.6rem ; margin : 4px 0 ; }
4079+ .paper-page .admin-page .paper-page-lede { display : none; }
4080+ .paper-page .admin-page .paper-crumbs { margin-bottom : 4px ; }
4081+ .paper-page .admin-page .admin-nav { margin : 6px 0 12px ; }
4082+
4083+ /* Admin filter toolbar — single compact line, inline labels (no boxed groups) */
4084+ .admin-filter-toolbar {
4085+ display : flex;
4086+ flex-direction : column;
4087+ gap : 6px ;
4088+ margin : 8px 0 12px ;
4089+ position : sticky;
4090+ top : 0 ;
4091+ z-index : 4 ;
4092+ background : var (--paper-bg , # faf8f3 );
4093+ padding : 6px 0 ;
4094+ border-bottom : 1px solid var (--border-soft , var (--border-color ));
4095+ box-shadow : 0 1px 0 var (--paper-bg , # faf8f3 ); /* paint over content peeking under bottom border on Safari */
4096+ }
4097+ @media (max-width : 900px ) {
4098+ .admin-filter-toolbar { position : static; box-shadow : none; }
4099+ }
4100+ .admin-filter-row {
4101+ display : flex;
4102+ flex-wrap : wrap;
4103+ gap : 6px ;
4104+ align-items : center;
4105+ }
4106+ .admin-filter-row .search-wrap { flex : 1 ; min-width : 220px ; }
4107+ .admin-filter-row .search-wrap .form-control { height : 34px ; }
4108+
4109+ .admin-filter-inline {
4110+ display : inline-flex;
4111+ align-items : center;
4112+ gap : 4px ;
4113+ font-size : 12px ;
4114+ color : var (--ink-muted );
4115+ }
4116+ .admin-filter-inline > label {
4117+ font-family : var (--font-mono );
4118+ font-size : 10px ;
4119+ text-transform : uppercase;
4120+ letter-spacing : 0.06em ;
4121+ color : var (--ink-muted );
4122+ margin : 0 ;
4123+ white-space : nowrap;
4124+ }
4125+ .admin-filter-inline .form-control-sm {
4126+ height : 28px ;
4127+ padding : 2px 8px ;
4128+ font-size : 12px ;
4129+ }
4130+ .admin-filter-inline input [type = "text" ].form-control-sm ,
4131+ .admin-filter-inline input [type = "search" ].form-control-sm { width : 130px ; }
4132+ .admin-filter-inline input [type = "date" ].form-control-sm { width : 130px ; }
4133+ .admin-filter-inline select .form-control-sm { width : auto; min-width : 88px ; }
4134+ .admin-filter-inline .arrow { color : var (--ink-muted ); font-size : 11px ; }
4135+
4136+ .admin-filter-spacer { flex : 1 ; }
4137+
4138+ /* Active-filter chips — visually surface what's currently constraining the view */
4139+ .admin-active-chips {
4140+ display : flex;
4141+ flex-wrap : wrap;
4142+ gap : 6px ;
4143+ align-items : center;
4144+ font-size : 12px ;
4145+ color : var (--ink-muted );
4146+ }
4147+ .admin-active-chip {
4148+ display : inline-flex;
4149+ align-items : center;
4150+ gap : 4px ;
4151+ padding : 2px 4px 2px 10px ;
4152+ border : 1px solid var (--border-color );
4153+ border-radius : 999px ;
4154+ background : var (--hover-bg-color );
4155+ font-size : 12px ;
4156+ color : var (--color );
4157+ }
4158+ .admin-active-chip .key { color : var (--ink-muted ); font-family : var (--font-mono ); font-size : 10px ; text-transform : uppercase; letter-spacing : 0.06em ; }
4159+ .admin-active-chip button {
4160+ background : none;
4161+ border : none;
4162+ cursor : pointer;
4163+ padding : 0 4px ;
4164+ color : var (--ink-muted );
4165+ font-size : 12px ;
4166+ border-radius : 50% ;
4167+ }
4168+ .admin-active-chip button : hover { color : # B42318 ; }
4169+
4170+ .admin-search-hint {
4171+ position : absolute;
4172+ right : 10px ;
4173+ top : 50% ;
4174+ transform : translateY (-50% );
4175+ font-family : var (--font-mono );
4176+ font-size : 11px ;
4177+ color : var (--ink-muted );
4178+ pointer-events : none;
4179+ border : 1px solid var (--border-color );
4180+ border-radius : 4px ;
4181+ padding : 1px 5px ;
4182+ background : var (--paper-card );
4183+ }
4184+ .admin-filter-row .search-wrap { position : relative; }
4185+ .admin-filter-row .search-wrap .form-control { padding-right : 40px ; }
4186+ .paper-table-row .row-selected {
4187+ background : rgba (47 , 122 , 68 , 0.06 );
4188+ }
4189+
4190+ .queue-state-pills { display : inline-flex; gap : 6px ; margin-left : 8px ; flex-wrap : wrap; }
4191+ .queue-state-pills .pill {
4192+ font-size : 11px ;
4193+ padding : 2px 8px ;
4194+ border-radius : 999px ;
4195+ border : 1px solid var (--border-color );
4196+ background : var (--paper-card );
4197+ color : var (--ink-muted );
4198+ }
4199+ .queue-state-pills .pill-active { color : # C48A2E ; border-color : rgba (196 , 138 , 46 , 0.4 ); }
4200+ .queue-state-pills .pill-failed { color : # B42318 ; border-color : rgba (180 , 35 , 24 , 0.4 ); }
4201+ .queue-state-pills .pill-completed { color : # 2F7A44 ; border-color : rgba (47 , 122 , 68 , 0.3 ); }
4202+ .queue-state-pills .pill-waiting { color : var (--ink-soft ); }
4203+ .queue-state-pills .pill-delayed { color : var (--ink-muted ); }
4204+
4205+ /* Compact summary bar — replaces stat cards. Each pill is also a filter shortcut. */
4206+ .admin-summary {
4207+ display : flex;
4208+ flex-wrap : wrap;
4209+ align-items : center;
4210+ gap : 6px ;
4211+ margin : 8px 0 12px ;
4212+ font-size : 13px ;
4213+ }
4214+ .admin-summary .summary-total {
4215+ font-family : var (--font-serif );
4216+ font-size : 1.05rem ;
4217+ color : var (--color );
4218+ margin-right : 8px ;
4219+ }
4220+ .admin-summary .summary-meta {
4221+ color : var (--ink-muted );
4222+ font-size : 12px ;
4223+ margin-right : 8px ;
4224+ }
4225+ .admin-summary .summary-pill {
4226+ display : inline-flex;
4227+ align-items : center;
4228+ gap : 6px ;
4229+ padding : 3px 10px ;
4230+ border-radius : 999px ;
4231+ border : 1px solid var (--border-color );
4232+ background : var (--paper-card );
4233+ color : var (--ink-muted );
4234+ cursor : pointer;
4235+ font-size : 12px ;
4236+ user-select : none;
4237+ transition : background-color 0.1s , border-color 0.1s ;
4238+ }
4239+ .admin-summary .summary-pill : hover { background : var (--hover-bg-color ); }
4240+ .admin-summary .summary-pill .count {
4241+ font-family : var (--font-mono );
4242+ font-variant-numeric : tabular-nums;
4243+ color : var (--color );
4244+ }
4245+ .admin-summary .summary-pill .active {
4246+ background : var (--color );
4247+ color : var (--paper-bg , # fff );
4248+ border-color : var (--color );
4249+ }
4250+ .admin-summary .summary-pill .active .count { color : inherit; }
4251+ .admin-summary .summary-pill .error .count { color : # B42318 ; }
4252+ .admin-summary .summary-pill .warn .count { color : # C48A2E ; }
4253+ .admin-summary .summary-pill .ok .count { color : # 2F7A44 ; }
4254+
4255+ .job-progress {
4256+ flex : 1 ;
4257+ height : 6px ;
4258+ background : var (--border-soft , var (--border-color ));
4259+ border-radius : 999px ;
4260+ overflow : hidden;
4261+ margin-left : 12px ;
4262+ max-width : 200px ;
4263+ }
4264+ .job-progress-bar { height : 100% ; background : # 2F7A44 ; transition : width 0.3s ; }
4265+
40494266.paper-table-empty {
40504267 padding : 48px 4px ;
40514268 text-align : center;
0 commit comments