@@ -723,81 +723,110 @@ header.g {
723723
724724.explain strong { color : var (--fg ); font-weight : 500 ; }
725725
726- /* ── Architecture Overview diagram ── */
727- .arch-overview .arch-primary {
728- display : grid;
729- grid-template-columns : minmax (180px , 200px ) minmax (0 , 2fr ) auto minmax (240px , 280px );
730- gap : 12px ;
731- align-items : stretch;
726+ /* ── Architecture Overview · single-screen 2x2 grid ── */
727+ .arch-overview .diagram ,
728+ .diagram .arch-overview {
729+ padding : 16px ;
732730}
733731
734- .arch-io {
735- display : flex;
736- flex-direction : column;
732+ .arch-grid {
733+ display : grid;
734+ grid-template-columns : 150px minmax (0 , 1fr ) 72px 280px ;
735+ grid-template-rows : auto auto;
736+ grid-template-areas :
737+ "input react bridge docker"
738+ "report valid bridge docker" ;
737739 gap : 10px ;
738- justify-content : space-between ;
740+ align-items : stretch ;
739741}
740742
741- .arch-io-flow {
743+ .ag-input { grid-area : input; }
744+ .ag-report { grid-area : report; }
745+ .ag-react { grid-area : react; }
746+ .ag-valid { grid-area : valid; }
747+ .ag-bridge { grid-area : bridge; }
748+ .ag-docker { grid-area : docker; }
749+
750+ /* Compact panel skeleton */
751+ .ag-react ,
752+ .ag-valid ,
753+ .ag-docker {
754+ border : 1px solid var (--border );
755+ background : var (--bg );
756+ padding : 10px 12px 12px ;
742757 display : flex;
743758 flex-direction : column;
744- align-items : center;
745- gap : 4px ;
746- padding : 6px 0 ;
759+ gap : 8px ;
747760}
748761
749- .arch-io-flow .arr {
750- font-size : 16px ;
751- color : var (--fg-faint );
752- line-height : 1 ;
753- }
762+ /* Dashed outer box for SAG Agent + Validation grouping vibe */
763+ .ag-react { border-top : 2px solid # d97706 ; }
764+ .ag-valid { border-top : 2px solid # d97706 ; }
765+ .ag-docker { border-top : 2px solid # dc2626 ; }
754766
755- .arch-io-flow . lbl {
767+ .ag-section-header {
756768 font-family : var (--mono );
757- font-size : 0.5rem ;
758- letter-spacing : 0.08em ;
769+ font-size : 0.5625rem ;
770+ font-weight : 700 ;
771+ letter-spacing : 0.12em ;
759772 text-transform : uppercase;
760- color : var (--fg-faint );
761- text-align : center;
762- line-height : 1.4 ;
773+ padding-bottom : 6px ;
774+ border-bottom : 1px solid var (--border-light );
763775}
764776
765- .arch-react ,
766- .arch-docker {
767- display : flex;
768- flex-direction : column;
769- gap : 12px ;
770- }
777+ .ag-section-header .c-amber { color : # d97706 ; }
778+ .ag-section-header .c-red { color : # dc2626 ; }
771779
772- .react-stage {
773- display : flex;
774- align-items : stretch;
775- gap : 10px ;
780+ /* Compact dia-box inside arch grid — smaller padding, smaller list gaps */
781+ .arch-grid .dia-box {
782+ padding : 8px 10px ;
783+ }
784+ .arch-grid .dia-box h5 {
785+ font-size : 0.5rem ;
786+ margin-bottom : 4px ;
787+ }
788+ .arch-grid .dia-box ul {
789+ font-size : 0.625rem ;
790+ line-height : 1.55 ;
776791}
777792
778- .react-stage > .dia-box {
779- flex : 1 ;
793+ /* ReAct internal quad: 2 rows × (box arrow box) */
794+ .react-quad {
795+ display : grid;
796+ grid-template-columns : minmax (0 , 1fr ) 48px minmax (0 , 1fr );
797+ grid-template-rows : auto auto;
798+ gap : 8px 0 ;
799+ align-items : stretch;
780800}
781801
782- .react-stage-back { flex-direction : row-reverse; }
802+ .r-thinking { grid-column : 1 ; grid-row : 1 ; }
803+ .r-plan { grid-column : 2 ; grid-row : 1 ; }
804+ .r-action { grid-column : 3 ; grid-row : 1 ; }
805+ .r-decision { grid-column : 1 ; grid-row : 2 ; }
806+ .r-obs { grid-column : 2 ; grid-row : 2 ; }
807+ .r-observation { grid-column : 3 ; grid-row : 2 ; }
783808
784- .dia-flow {
809+ .r-arr {
785810 display : flex;
811+ flex-direction : column;
786812 align-items : center;
787813 justify-content : center;
788- flex : 0 0 auto;
789- padding : 0 4px ;
814+ gap : 2px ;
790815}
791-
792- .dia-flow .lbl {
816+ .r-arr .arr {
817+ font-size : 16px ;
818+ color : var (--fg-faint );
819+ line-height : 1 ;
820+ }
821+ .r-arr .lbl {
793822 font-family : var (--mono );
794- font-size : 0.5 rem ;
823+ font-size : 0.4375 rem ;
795824 letter-spacing : 0.08em ;
796825 text-transform : uppercase;
797826 color : var (--fg-faint );
798- white-space : nowrap;
799827}
800828
829+ /* Decision box visual */
801830.dia-box .decision {
802831 border-style : dashed;
803832}
@@ -806,47 +835,44 @@ header.g {
806835.tag-no {
807836 display : inline-block;
808837 font-family : var (--mono );
809- font-size : 0.5rem ;
810- letter-spacing : 0.08em ;
811- text-transform : uppercase;
812- padding : 1px 6px ;
838+ font-size : 0.4375rem ;
839+ font-weight : 700 ;
840+ letter-spacing : 0.06em ;
841+ padding : 0 4px ;
842+ margin-right : 2px ;
813843 border-radius : 2px ;
814- margin-right : 4px ;
815844}
816-
817- .tag-yes { color : # 16a34a ; background : rgba (22 , 163 , 74 , 0.12 ); }
818- .tag-no { color : # dc2626 ; background : rgba (220 , 38 , 38 , 0.12 ); }
819-
820- .obs-box { border-width : 2px ; }
845+ .tag-yes { color : # 16a34a ; background : rgba (22 , 163 , 74 , 0.14 ); }
846+ .tag-no { color : # dc2626 ; background : rgba (220 , 38 , 38 , 0.14 ); }
821847
822848.obs-feedback {
823849 color : var (--accent );
824850 font-weight : 500 ;
825851}
826852
827- .arch-bridge {
853+ /* Horizontal bridge column between ReAct and Docker */
854+ .ag-bridge {
828855 display : flex;
829856 flex-direction : column;
830857 justify-content : center;
831- gap : 18 px ;
858+ gap : 24 px ;
832859 padding : 0 4px ;
833- min-width : 80px ;
834860}
835861
836- .arch -bridge-row {
862+ .ag -bridge-row {
837863 display : flex;
838864 flex-direction : column;
839865 align-items : center;
840866 gap : 2px ;
841867}
842868
843- .arch -bridge-row .arr {
844- font-size : 18 px ;
869+ .ag -bridge-row .arr {
870+ font-size : 20 px ;
845871 color : var (--fg-faint );
846872 line-height : 1 ;
847873}
848874
849- .arch -bridge-row .lbl {
875+ .ag -bridge-row .lbl {
850876 font-family : var (--mono );
851877 font-size : 0.5rem ;
852878 letter-spacing : 0.08em ;
@@ -855,113 +881,120 @@ header.g {
855881 white-space : nowrap;
856882}
857883
858- .arch-fs {
884+ /* Docker internals */
885+ .ag-fs {
859886 border : 1px dashed var (--border );
860- padding : 10px ;
861- background : var (--bg );
887+ padding : 8px ;
862888}
863889
864- .arch -fs-label {
890+ .ag -fs-label {
865891 font-family : var (--mono );
866- font-size : 0.5625 rem ;
892+ font-size : 0.5 rem ;
867893 font-weight : 700 ;
868894 letter-spacing : 0.12em ;
869895 text-transform : uppercase;
870896 color : var (--fg-dim );
871- margin-bottom : 8 px ;
897+ margin-bottom : 6 px ;
872898}
873899
874- .arch -fs-inner {
900+ .ag -fs-inner {
875901 display : flex;
876902 flex-direction : column;
877- gap : 8 px ;
903+ gap : 6 px ;
878904}
879905
880- .arch-feedback-connector {
906+ /* Validation: feedback arrow on top, boxes in middle, links at bottom */
907+ .ag-feedback-top {
881908 display : flex;
882909 align-items : center;
883- justify-content : center;
884- gap : 10px ;
885- margin : 16px auto 0 ;
886- padding : 10px 16px ;
887- max-width : 520px ;
888- border : 1px solid var (--accent );
889- border-left-width : 3px ;
910+ gap : 6px ;
911+ margin : -4px -12px 4px -12px ;
912+ padding : 6px 12px ;
890913 background : var (--accent-bg );
914+ border-bottom : 1px solid var (--accent );
891915}
892916
893- .arch-feedback-connector .arr {
894- font-size : 18px ;
917+ .ag-feedback-top .arr {
895918 color : var (--accent );
896- line-height : 1 ;
919+ font-size : 14 px ;
897920 font-weight : 700 ;
921+ line-height : 1 ;
898922}
899923
900- .arch -feedback-connector .lbl {
924+ .ag -feedback-top .lbl {
901925 font-family : var (--mono );
902- font-size : 0.625rem ;
903- letter-spacing : 0.06em ;
926+ font-size : 0.5rem ;
927+ letter-spacing : 0.08em ;
928+ text-transform : uppercase;
904929 color : var (--accent );
905930}
906931
907- .arch-feedback-connector em {
908- font-style : normal;
909- color : var (--fg-dim );
910- }
911-
912- .arch-validation {
913- margin-top : 12px ;
914- }
915-
916- .validation-grid {
932+ .v-grid {
917933 display : grid;
918934 grid-template-columns : 1fr 1fr ;
919- gap : 10 px ;
935+ gap : 8 px ;
920936}
921937
922- .validation -links {
938+ .v -links {
923939 display : flex;
924940 flex-wrap : wrap;
925- gap : 10px 18px ;
926- margin-top : 12px ;
927- padding-top : 12px ;
941+ gap : 4px 14px ;
942+ padding-top : 6px ;
928943 border-top : 1px dashed var (--border );
929944}
930945
931946.vlink {
947+ display : inline-flex;
948+ align-items : center;
949+ gap : 4px ;
932950 font-family : var (--mono );
933- font-size : 0.625 rem ;
951+ font-size : 0.5 rem ;
934952 letter-spacing : 0.04em ;
935953 color : var (--fg-dim );
936- display : inline-flex;
937- align-items : center;
938- gap : 6px ;
939954}
940955
941- .vlink .arr { color : var (--fg-faint ); }
942- .vlink em { font-style : normal; color : var (--fg-faint ); }
956+ .vlink .arr { color : var (--fg-faint ); font-size : 12px ; line-height : 1 ; }
943957
944- .vlink-feedback { color : var (--accent ); font-weight : 500 ; }
945- .vlink-feedback .arr ,
946- .vlink-feedback em { color : var (--accent ); }
958+ /* Input/Report columns: compact, centered */
959+ .ag-input ,
960+ .ag-report {
961+ align-self : stretch;
962+ }
947963
948- /* Responsive: stack primary grid on narrow viewports */
949- @media (max-width : 900px ) {
950- .arch-overview .arch-primary {
951- grid-template-columns : 1fr ;
964+ /* Responsive: reflow on narrow viewports */
965+ @media (max-width : 1000px ) {
966+ .arch-grid {
967+ grid-template-columns : 140px minmax (0 , 1fr ) 260px ;
968+ grid-template-rows : auto auto auto;
969+ grid-template-areas :
970+ "input react docker"
971+ "report react docker"
972+ "valid valid docker" ;
952973 }
953- .arch-bridge {
954- flex-direction : row;
955- justify-content : center;
956- gap : 24px ;
957- }
958- .react-stage ,
959- .react-stage-back {
960- flex-direction : column;
974+ .ag-bridge { display : none; }
975+ }
976+
977+ @media (max-width : 700px ) {
978+ .arch-grid {
979+ grid-template-columns : 1fr ;
980+ grid-template-areas :
981+ "input"
982+ "react"
983+ "valid"
984+ "docker"
985+ "report" ;
961986 }
962- .validation-grid {
987+ .react-quad {
963988 grid-template-columns : 1fr ;
989+ grid-template-rows : repeat (6 , auto);
964990 }
991+ .r-thinking { grid-column : 1 ; grid-row : 1 ; }
992+ .r-plan { grid-column : 1 ; grid-row : 2 ; }
993+ .r-action { grid-column : 1 ; grid-row : 3 ; }
994+ .r-observation { grid-column : 1 ; grid-row : 4 ; }
995+ .r-obs { grid-column : 1 ; grid-row : 5 ; }
996+ .r-decision { grid-column : 1 ; grid-row : 6 ; }
997+ .v-grid { grid-template-columns : 1fr ; }
965998}
966999
9671000/* ============================================================
0 commit comments