@@ -589,7 +589,7 @@ summary.clickable:hover {
589589/* ----- Menu ----- */
590590.menu {
591591 display : flex;
592- gap : var (--space-2 );
592+ gap : var (--space-3 );
593593 align-items : stretch;
594594 flex-wrap : wrap;
595595}
@@ -602,33 +602,298 @@ summary.clickable:hover {
602602 display : flex;
603603 align-items : center;
604604 justify-content : center;
605- height : 48 px ;
606- padding : 0 var (--space-4 );
607- border-radius : 0 ;
608- background : var (--card );
605+ min- height: 56 px ;
606+ padding : var ( --space-3 ) var (--space-4 );
607+ border-radius : var ( --radius-md ) ;
608+ background : linear-gradient ( 145 deg , var (--card ) , rgba ( 0 , 0 , 0 , .15 ) );
609609 color : var (--fg );
610610 text-decoration : none;
611- transition : background .15s , color .15s ;
612- border-bottom : 2px solid transparent;
613- font-weight : 500 ;
611+ transition : all .2s ease;
612+ border : 1px solid var (--border );
613+ box-shadow : 0 2px 4px rgba (0 , 0 , 0 , .15 ),
614+ 0 4px 12px rgba (0 , 0 , 0 , .08 ),
615+ inset 0 1px 0 rgba (255 , 255 , 255 , .05 );
616+ font-weight : 600 ;
617+ cursor : pointer;
618+ position : relative;
619+ overflow : hidden;
614620}
615621
616- .menu a : hover , .menu a .active {
617- background : var (--accent );
622+ .menu a ::before {
623+ content : '' ;
624+ position : absolute;
625+ top : 0 ;
626+ left : 0 ;
627+ right : 0 ;
628+ height : 2px ;
629+ background : linear-gradient (90deg , transparent, var (--accent ), transparent);
630+ opacity : 0 ;
631+ transition : opacity .2s ease;
632+ }
633+
634+ .menu a : hover {
635+ background : linear-gradient (145deg , var (--accent ), var (--accent-600 ));
636+ color : # fff ;
637+ border-color : var (--accent );
638+ transform : translateY (-2px );
639+ box-shadow : 0 4px 8px rgba (0 , 0 , 0 , .2 ),
640+ 0 8px 20px rgba (0 , 0 , 0 , .15 ),
641+ inset 0 1px 0 rgba (255 , 255 , 255 , .1 );
642+ }
643+
644+ .menu a : hover ::before {
645+ opacity : 1 ;
646+ }
647+
648+ .menu a .active {
649+ background : linear-gradient (145deg , var (--accent ), var (--accent-700 ));
618650 color : # fff ;
619- border-bottom-color : # fff ;
651+ border-color : var (--accent-600 );
652+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .2 ),
653+ inset 0 2px 4px rgba (0 , 0 , 0 , .15 ),
654+ inset 0 -1px 0 rgba (255 , 255 , 255 , .1 );
655+ }
656+
657+ .menu a .active ::before {
658+ opacity : 1 ;
659+ background : rgba (255 , 255 , 255 , .3 );
660+ }
661+
662+ .menu a : active {
663+ transform : translateY (0 );
664+ box-shadow : 0 1px 2px rgba (0 , 0 , 0 , .2 ),
665+ inset 0 2px 6px rgba (0 , 0 , 0 , .2 );
620666}
621667
622668.menu a .danger {
623- background : var (--danger-soft );
669+ background : linear-gradient ( 145 deg , var (--danger-soft ) , rgba ( 220 , 38 , 38 , .8 ) );
624670 color : # fff ;
671+ border-color : var (--danger );
625672}
626673
627674.menu a .danger : hover , .menu a .danger .active {
628- background : var (--danger );
675+ background : linear-gradient (145deg , var (--danger ), # b91c1c );
676+ color : # fff ;
677+ border-color : # 991b1b ;
678+ }
679+
680+ /* ----- Dropdown buttons in topbar ----- */
681+ .dropdown {
682+ position : relative;
683+ }
684+
685+ .dropdown .btn-tile {
686+ display : flex;
687+ align-items : center;
688+ justify-content : center;
689+ min-height : 48px ;
690+ padding : var (--space-2 ) var (--space-4 );
691+ border-radius : var (--radius-md );
692+ background : linear-gradient (145deg , var (--card ), rgba (0 , 0 , 0 , .2 ));
693+ color : var (--fg );
694+ border : 1px solid var (--border );
695+ box-shadow : 0 2px 4px rgba (0 , 0 , 0 , .15 ),
696+ 0 4px 12px rgba (0 , 0 , 0 , .08 ),
697+ inset 0 1px 0 rgba (255 , 255 , 255 , .05 );
698+ font-weight : 600 ;
699+ font-size : 0.95rem ;
700+ cursor : pointer;
701+ transition : all .2s ease;
702+ position : relative;
703+ overflow : hidden;
704+ font-family : inherit;
705+ }
706+
707+ .dropdown .btn-tile ::before {
708+ content : '' ;
709+ position : absolute;
710+ top : 0 ;
711+ left : 0 ;
712+ right : 0 ;
713+ height : 2px ;
714+ background : linear-gradient (90deg , transparent, var (--accent ), transparent);
715+ opacity : 0 ;
716+ transition : opacity .2s ease;
717+ }
718+
719+ .dropdown .btn-tile : hover {
720+ background : linear-gradient (145deg , var (--accent ), var (--accent-600 ));
721+ color : # fff ;
722+ border-color : var (--accent );
723+ transform : translateY (-2px );
724+ box-shadow : 0 4px 8px rgba (0 , 0 , 0 , .2 ),
725+ 0 8px 20px rgba (0 , 0 , 0 , .15 ),
726+ inset 0 1px 0 rgba (255 , 255 , 255 , .1 );
727+ }
728+
729+ .dropdown .btn-tile : hover ::before {
730+ opacity : 1 ;
731+ }
732+
733+ .dropdown .btn-tile .active {
734+ background : linear-gradient (145deg , var (--accent ), var (--accent-700 ));
735+ color : # fff ;
736+ border-color : var (--accent-600 );
737+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .2 ),
738+ inset 0 2px 4px rgba (0 , 0 , 0 , .15 ),
739+ inset 0 -1px 0 rgba (255 , 255 , 255 , .1 );
740+ }
741+
742+ .dropdown .btn-tile .active ::before {
743+ opacity : 1 ;
744+ background : rgba (255 , 255 , 255 , .3 );
745+ }
746+
747+ .dropdown .btn-tile : active {
748+ transform : translateY (0 );
749+ box-shadow : 0 1px 2px rgba (0 , 0 , 0 , .2 ),
750+ inset 0 2px 6px rgba (0 , 0 , 0 , .2 );
751+ }
752+
753+ .dropdown-content {
754+ position : absolute;
755+ right : 0 ;
756+ top : calc (100% + 8px );
757+ background : var (--card );
758+ border : 1px solid var (--border );
759+ border-radius : var (--radius-md );
760+ padding : var (--space-3 );
761+ min-width : 220px ;
762+ z-index : 1000 ;
763+ box-shadow : 0 8px 24px rgba (0 , 0 , 0 , .3 ),
764+ 0 4px 12px rgba (0 , 0 , 0 , .2 );
765+ }
766+
767+ .dropdown-content .panel {
768+ margin-bottom : var (--space-3 );
769+ padding : 0 ;
770+ background : transparent;
771+ border : none;
772+ box-shadow : none;
773+ }
774+
775+ .dropdown-content .panel : last-child {
776+ margin-bottom : 0 ;
777+ }
778+
779+ .dropdown-content .label {
780+ display : block;
781+ font-weight : 700 ;
782+ font-size : 0.75rem ;
783+ color : var (--muted );
784+ margin-bottom : var (--space-2 );
785+ text-transform : uppercase;
786+ letter-spacing : 0.8px ;
787+ padding-left : var (--space-1 );
788+ }
789+
790+ /* Dropdown items styling */
791+ .dropdown-content .btn-small ,
792+ .dropdown-content a .btn-small ,
793+ .dropdown-content button .btn-small {
794+ display : block;
795+ width : 100% ;
796+ text-align : left;
797+ margin-bottom : var (--space-2 );
798+ padding : var (--space-2 ) var (--space-3 );
799+ border-radius : var (--radius-sm );
800+ background : linear-gradient (145deg , rgba (255 , 255 , 255 , .03 ), rgba (0 , 0 , 0 , .1 ));
801+ border : 1px solid var (--border );
802+ color : var (--fg );
803+ font-weight : 500 ;
804+ font-size : 0.9rem ;
805+ transition : all .15s ease;
806+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .1 );
807+ cursor : pointer;
808+ }
809+
810+ .dropdown-content .btn-small : last-child {
811+ margin-bottom : 0 ;
812+ }
813+
814+ .dropdown-content .btn-small : hover {
815+ background : linear-gradient (145deg , var (--accent ), var (--accent-600 ));
816+ color : # fff ;
817+ border-color : var (--accent );
818+ transform : translateX (4px );
819+ box-shadow : 0 2px 6px rgba (0 , 0 , 0 , .2 ),
820+ inset 0 1px 0 rgba (255 , 255 , 255 , .1 );
821+ }
822+
823+ .dropdown-content .btn-small .active {
824+ background : linear-gradient (145deg , var (--accent-700 ), var (--accent-600 ));
825+ color : # fff ;
826+ border-color : var (--accent-600 );
827+ box-shadow : inset 0 2px 4px rgba (0 , 0 , 0 , .2 );
828+ position : relative;
829+ }
830+
831+ .dropdown-content .btn-small .active ::after {
832+ content : '✓' ;
833+ position : absolute;
834+ right : var (--space-3 );
835+ top : 50% ;
836+ transform : translateY (-50% );
837+ font-weight : 700 ;
838+ font-size : 1rem ;
839+ }
840+
841+ .dropdown-content .btn-small .danger {
842+ background : linear-gradient (145deg , rgba (239 , 68 , 68 , .15 ), rgba (220 , 38 , 38 , .1 ));
843+ border-color : rgba (239 , 68 , 68 , .3 );
844+ color : var (--danger-soft );
845+ }
846+
847+ .dropdown-content .btn-small .danger : hover {
848+ background : linear-gradient (145deg , var (--danger ), # b91c1c );
849+ border-color : var (--danger );
629850 color : # fff ;
630851}
631852
853+ /* Special styling for buttons with background override */
854+ .dropdown-content .btn-small [style *= "background" ] {
855+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , .1 );
856+ }
857+
858+ .dropdown-content .btn-small [style *= "background" ]: hover {
859+ filter : brightness (1.1 );
860+ transform : translateX (4px );
861+ }
862+
863+ /* Theme select in dropdown */
864+ .dropdown-content # theme-select {
865+ width : 100% ;
866+ margin-bottom : var (--space-2 );
867+ padding : var (--space-2 );
868+ background : rgba (0 , 0 , 0 , .2 );
869+ border : 1px solid var (--border );
870+ border-radius : var (--radius-sm );
871+ color : var (--fg );
872+ font-size : 0.9rem ;
873+ cursor : pointer;
874+ transition : all .15s ease;
875+ }
876+
877+ .dropdown-content # theme-select : hover {
878+ border-color : var (--accent );
879+ background : rgba (0 , 0 , 0 , .3 );
880+ }
881+
882+ .dropdown-content # theme-select : focus {
883+ outline : none;
884+ border-color : var (--accent );
885+ box-shadow : 0 0 0 2px rgba (90 , 169 , 255 , .2 );
886+ }
887+
888+ /* Label styling in dropdown */
889+ .dropdown-content label {
890+ display : block;
891+ font-weight : 600 ;
892+ font-size : 0.85rem ;
893+ color : var (--muted );
894+ margin-bottom : var (--space-2 );
895+ }
896+
632897/* ----- Theme Selector ----- */
633898# theme-select {
634899 width : auto;
0 commit comments