app.css 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* Shared application theme and navigation. CoreUI remains the component base. */
  2. :root {
  3. --gc-header-height: 64px;
  4. --gc-context-height: 130px;
  5. --gc-brand-header: #c3ccd4;
  6. --gc-brand-section: #cdd4da;
  7. --gc-brand-border: #b1bcc7;
  8. --gc-brand-action: #72889b;
  9. --gc-brand-ink: #182630;
  10. --gc-brand-mark: #b30808;
  11. }
  12. body {
  13. --cui-body-font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  14. --cui-heading-font-family: var(--cui-body-font-family);
  15. font-family: var(--cui-body-font-family);
  16. }
  17. .gc-app-header { font-family: var(--cui-body-font-family); font-size: 1.125rem; }
  18. .gc-app-header.header {
  19. position: sticky;
  20. top: 0;
  21. z-index: 1030;
  22. padding: 0;
  23. margin: 0;
  24. background: var(--gc-brand-header);
  25. border-bottom: 1px solid var(--gc-brand-border);
  26. filter: drop-shadow(0 2px 4px #1826300a);
  27. }
  28. /* Extend only the background, keeping navigation aligned with the content. */
  29. .gc-app-header.header::before {
  30. content: "";
  31. position: absolute;
  32. inset: 0;
  33. z-index: -1;
  34. background: var(--gc-brand-header);
  35. box-shadow: 0 0 0 100vmax var(--gc-brand-header);
  36. clip-path: inset(0 -100vmax);
  37. pointer-events: none;
  38. }
  39. .gc-app-header.header::after {
  40. content: "";
  41. position: absolute;
  42. inset: auto 0 -1px;
  43. height: 1px;
  44. background: var(--gc-brand-border);
  45. box-shadow: 0 0 0 100vmax var(--gc-brand-border);
  46. clip-path: inset(0 -100vmax);
  47. pointer-events: none;
  48. }
  49. .gc-app-header .gc-header-inner {
  50. display: flex;
  51. flex-wrap: wrap;
  52. align-items: center;
  53. gap: .4rem 1rem;
  54. min-height: 64px;
  55. padding: .65rem 1.25rem;
  56. }
  57. .gc-header-brand { flex: 0 1 180px; min-width: 0; }
  58. .gc-header-brand img { display: block; width: 100%; max-width: 180px; height: auto; }
  59. .gc-app-header .header-nav { flex-wrap: wrap; gap: .25rem; }
  60. .gc-app-header .nav-link { font-size: inherit; color: var(--gc-brand-ink); border-radius: 6px; }
  61. .gc-app-header .nav-link:hover { background: #ffffff70; }
  62. .gc-header-account { flex-wrap: wrap; min-width: 0; }
  63. .gc-header-account span { overflow-wrap: anywhere; }
  64. .gc-section-title { margin: 0; padding: .8rem 1rem; background: var(--gc-brand-section); border-radius: 9px 9px 0 0; font-size: 1.125rem; font-weight: 700; line-height: 1.5; display: flex; align-items: center; gap: .6rem; font-family: inherit; }
  65. .gc-section-description { padding: .75rem 1rem 0; margin: 0; font-size: 1.0625rem; color: #52616f; }
  66. .gc-document-badge { display: inline-flex; justify-content: center; width: 3.25rem; padding: .15rem .5rem; border: 1px solid transparent; border-radius: 5px; font-size: 0.9375rem; font-weight: 700; white-space: nowrap; color: #000; }
  67. .gc-document-badge--M1 { background: #ffe97e; border-color: #c8af45; }
  68. .gc-document-badge--M2 { background: #f7d8bf; border-color: #e98751; }
  69. .gc-document-badge--M3 { background: #f5dddd; border-color: #b30808; }
  70. .gc-section-title .icon { flex-shrink: 0; width: 1.25rem; height: 1.25rem; font-size: 1.25rem; vertical-align: -.1em; }
  71. html, body { min-height: 100%; background: #f4f6fb; color: #111827; }
  72. body { overflow-y: auto; }
  73. .gc-page { flex: 1; width: 100%; max-width: 1840px; margin: 0 auto; padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; min-height: calc(100vh - 72px); }
  74. .gc-card { background: #fff; border: 1px solid #dce2e7; border-radius: 10px; box-shadow: 0 2px 6px #18263004; }
  75. :is(.gc-detail-page, .gc-list-page, .gc-list-summary) :is(a, button, input, select, summary, [tabindex]):focus-visible,
  76. .gc-app-header :is(a, button):focus-visible { outline: 3px solid #354f63; outline-offset: 3px; }
  77. @media (max-width: 575.98px) {
  78. .gc-app-header .gc-header-inner { padding: .5rem .75rem; gap: .25rem .65rem; }
  79. .gc-header-brand { flex-basis: 140px; }
  80. .gc-app-header .gc-header-tools { width: 100%; margin-left: 0 !important; }
  81. .gc-header-account { flex: 1; justify-content: flex-end; font-size: 1rem; }
  82. }