Fix mobile dashboard layout

#2
by F4RUKYLDRM - opened
Files changed (1) hide show
  1. biolmnet/ui/styles.py +216 -6
biolmnet/ui/styles.py CHANGED
@@ -723,13 +723,223 @@ body, .gradio-container {
723
 
724
  /* ── responsive ───────────────────────────────────────────────────────── */
725
  @media (max-width: 1000px) {
726
- .app-shell { display: block !important; }
727
- .rail-col { min-width: 100% !important; max-width: 100% !important; }
728
- .rail { position: relative; min-height: auto; border-right: 0; border-bottom: 1px solid var(--color-divider); }
729
- .stage-grid, .results-grid { grid-template-columns: 1fr !important; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
730
  }
731
  @media (max-width: 620px) {
732
- .pghd h2 { font-size: 26px; }
733
- .stat-grid, .metric-strip { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
734
  }
735
  """
 
723
 
724
  /* ── responsive ───────────────────────────────────────────────────────── */
725
  @media (max-width: 1000px) {
726
+ .app-shell {
727
+ display: block !important;
728
+ min-height: 100vh !important;
729
+ }
730
+ .rail-col {
731
+ min-width: 100% !important;
732
+ max-width: 100% !important;
733
+ width: 100% !important;
734
+ flex: none !important;
735
+ }
736
+ .rail {
737
+ position: sticky;
738
+ top: 0;
739
+ z-index: 40;
740
+ height: auto !important;
741
+ min-height: 0 !important;
742
+ padding: 12px 12px 10px;
743
+ border-right: 0;
744
+ border-bottom: 1px solid var(--color-divider);
745
+ background: color-mix(in srgb, var(--color-bg) 96%, #fff);
746
+ }
747
+ .rail-brand {
748
+ display: flex;
749
+ align-items: baseline;
750
+ gap: 8px;
751
+ padding: 0 4px 9px;
752
+ }
753
+ .rail-brand .name {
754
+ font-size: 22px;
755
+ }
756
+ .rail-brand .mono {
757
+ margin-top: 0 !important;
758
+ font-size: 8.5px;
759
+ }
760
+ .rail-kicker,
761
+ .rail-spacer {
762
+ display: none !important;
763
+ }
764
+ .rail-nav {
765
+ display: grid !important;
766
+ grid-auto-flow: column;
767
+ grid-auto-columns: minmax(154px, max-content);
768
+ gap: 6px;
769
+ overflow-x: auto;
770
+ overscroll-behavior-x: contain;
771
+ padding: 0 2px 2px;
772
+ scrollbar-width: none;
773
+ }
774
+ .rail-nav::-webkit-scrollbar {
775
+ display: none;
776
+ }
777
+ .rail-row-wrap {
778
+ min-width: 154px !important;
779
+ }
780
+ .rr {
781
+ min-height: 36px;
782
+ padding: 8px 9px 8px 8px;
783
+ gap: 8px;
784
+ border-left-width: 2px;
785
+ font-size: 12.5px;
786
+ white-space: nowrap;
787
+ }
788
+ .rr .rn {
789
+ width: 19px;
790
+ height: 19px;
791
+ font-size: 9.5px;
792
+ }
793
+ .rr .st {
794
+ font-size: 8px;
795
+ letter-spacing: .08em;
796
+ }
797
+ .workspace-col {
798
+ width: 100% !important;
799
+ min-width: 0 !important;
800
+ }
801
+ .topbar {
802
+ padding: 10px 116px 10px 14px;
803
+ gap: 10px;
804
+ }
805
+ .topbar > .num {
806
+ display: none;
807
+ }
808
+ .intro-open-btn {
809
+ right: 12px;
810
+ top: 5px;
811
+ }
812
+ .pghd {
813
+ padding: 20px 14px 0;
814
+ gap: 10px;
815
+ }
816
+ .pghd h2 {
817
+ font-size: 30px;
818
+ }
819
+ .pghd .desc {
820
+ max-width: none;
821
+ font-size: 13px;
822
+ }
823
+ .stage-grid,
824
+ .results-grid {
825
+ display: grid !important;
826
+ grid-template-columns: minmax(0, 1fr) !important;
827
+ padding: 20px 14px 0 !important;
828
+ gap: 22px !important;
829
+ }
830
+ .stage-grid > *,
831
+ .results-grid > * {
832
+ min-width: 0 !important;
833
+ max-width: 100% !important;
834
+ width: 100% !important;
835
+ }
836
+ .results-stat-row,
837
+ .stat-grid {
838
+ padding: 20px 14px 0 !important;
839
+ }
840
+ .metric-strip {
841
+ grid-template-columns: repeat(2, minmax(0, 1fr));
842
+ }
843
+ .field-pair {
844
+ display: grid !important;
845
+ grid-template-columns: minmax(0, 1fr) !important;
846
+ gap: 12px !important;
847
+ }
848
+ .srow-row {
849
+ display: grid !important;
850
+ grid-template-columns: minmax(118px, 34%) minmax(0, 1fr) !important;
851
+ gap: 12px !important;
852
+ padding: 8px 0 !important;
853
+ }
854
+ .srow-row > * {
855
+ min-width: 0 !important;
856
+ }
857
+ .actbar-row {
858
+ align-items: flex-start !important;
859
+ flex-wrap: wrap !important;
860
+ padding: 12px 14px !important;
861
+ gap: 12px !important;
862
+ }
863
+ .actbar-buttons {
864
+ width: 100% !important;
865
+ flex: 1 1 100% !important;
866
+ justify-content: flex-start !important;
867
+ flex-wrap: wrap !important;
868
+ }
869
+ .actbar-buttons button {
870
+ min-height: 34px !important;
871
+ padding: 0 12px !important;
872
+ }
873
+ .gradio-container .table-wrap,
874
+ .gradio-container .dataframe,
875
+ .gradio-container .wrap.svelte-1ipelgc,
876
+ .tbl {
877
+ max-width: 100%;
878
+ overflow-x: auto;
879
+ }
880
+ .intro-card {
881
+ width: min(556px, calc(100vw - 28px)) !important;
882
+ padding: 22px 20px 18px !important;
883
+ }
884
  }
885
  @media (max-width: 620px) {
886
+ .topbar {
887
+ padding-right: 112px;
888
+ }
889
+ .topbar .mono {
890
+ font-size: 8.5px;
891
+ letter-spacing: .06em;
892
+ }
893
+ .pghd h2 {
894
+ font-size: 27px;
895
+ }
896
+ .section-heading-row {
897
+ display: block !important;
898
+ }
899
+ .section-heading-row .mono {
900
+ margin-top: 6px;
901
+ text-align: left !important;
902
+ }
903
+ .seg-radio label {
904
+ padding: 7px 8px !important;
905
+ font-size: 12px !important;
906
+ }
907
+ .stat-grid,
908
+ .metric-strip {
909
+ grid-template-columns: 1fr !important;
910
+ }
911
+ .srow-row {
912
+ grid-template-columns: 1fr !important;
913
+ gap: 6px !important;
914
+ }
915
+ .srow-value-row {
916
+ justify-content: flex-start !important;
917
+ }
918
+ .rr {
919
+ font-size: 12px;
920
+ }
921
+ .rr .st {
922
+ display: none;
923
+ }
924
+ .rail-nav {
925
+ grid-auto-columns: minmax(126px, max-content);
926
+ }
927
+ .rail-row-wrap {
928
+ min-width: 126px !important;
929
+ }
930
+ .intro-card h4 {
931
+ font-size: 24px;
932
+ }
933
+ .intro-card p {
934
+ font-size: 13px;
935
+ }
936
+ .intro-card-foot {
937
+ align-items: flex-start !important;
938
+ }
939
+ .intro-card-actions {
940
+ justify-content: flex-start !important;
941
+ flex: 1 1 100% !important;
942
+ gap: 9px !important;
943
+ }
944
  }
945
  """