*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

input:where([type='text']),input:where(:not([type])),input:where([type='email']),input:where([type='url']),input:where([type='password']),input:where([type='number']),input:where([type='date']),input:where([type='datetime-local']),input:where([type='month']),input:where([type='search']),input:where([type='tel']),input:where([type='time']),input:where([type='week']),select:where([multiple]),textarea,select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  border-radius: 0px;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-shadow: 0 0 #0000;
}

input:where([type='text']):focus, input:where(:not([type])):focus, input:where([type='email']):focus, input:where([type='url']):focus, input:where([type='password']):focus, input:where([type='number']):focus, input:where([type='date']):focus, input:where([type='datetime-local']):focus, input:where([type='month']):focus, input:where([type='search']):focus, input:where([type='tel']):focus, input:where([type='time']):focus, input:where([type='week']):focus, select:where([multiple]):focus, textarea:focus, select:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  border-color: #2563eb;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #6b7280;
  opacity: 1;
}

input::placeholder,textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: inherit;
}

::-webkit-datetime-edit {
  display: inline-flex;
}

::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
  padding-top: 0;
  padding-bottom: 0;
}

select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 2.5rem;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
}

select:where([multiple]),select:where([size]:not([size="1"])) {
  background-image: initial;
  background-position: initial;
  background-repeat: unset;
  background-size: initial;
  padding-right: 0.75rem;
  -webkit-print-color-adjust: unset;
          print-color-adjust: unset;
}

input:where([type='checkbox']),input:where([type='radio']) {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
  display: inline-block;
  vertical-align: middle;
  background-origin: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  color: #2563eb;
  background-color: #fff;
  border-color: #6b7280;
  border-width: 1px;
  --tw-shadow: 0 0 #0000;
}

input:where([type='checkbox']) {
  border-radius: 0px;
}

input:where([type='radio']) {
  border-radius: 100%;
}

input:where([type='checkbox']):focus,input:where([type='radio']):focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #2563eb;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

input:where([type='checkbox']):checked,input:where([type='radio']):checked {
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

input:where([type='checkbox']):checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {
  input:where([type='checkbox']):checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

input:where([type='radio']):checked {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {
  input:where([type='radio']):checked {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

input:where([type='checkbox']):checked:hover,input:where([type='checkbox']):checked:focus,input:where([type='radio']):checked:hover,input:where([type='radio']):checked:focus {
  border-color: transparent;
  background-color: currentColor;
}

input:where([type='checkbox']):indeterminate {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
  border-color: transparent;
  background-color: currentColor;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

@media (forced-colors: active)  {
  input:where([type='checkbox']):indeterminate {
    -webkit-appearance: auto;
       -moz-appearance: auto;
            appearance: auto;
  }
}

input:where([type='checkbox']):indeterminate:hover,input:where([type='checkbox']):indeterminate:focus {
  border-color: transparent;
  background-color: currentColor;
}

input:where([type='file']) {
  background: unset;
  border-color: inherit;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-size: unset;
  line-height: inherit;
}

input:where([type='file']):focus {
  outline: 1px solid ButtonText;
  outline: 1px auto -webkit-focus-ring-color;
}

.static {
  position: static;
}

.block {
  display: block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.table {
  display: table;
}

.hidden {
  display: none;
}

.h-16 {
  height: 4rem;
}

.h-6 {
  height: 1.5rem;
}

.w-6 {
  width: 1.5rem;
}

.w-full {
  width: 100%;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

.justify-between {
  justify-content: space-between;
}

.bg-gray-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.text-center {
  text-align: center;
}

.text-5xl {
  font-size: 3rem;
  line-height: 1;
}

.font-bold {
  font-weight: 700;
}

.font-semibold {
  font-weight: 600;
}

.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.site-footer {
  background: #2c3e50;
  color: #fff;
  text-align: center;
  padding: 20px 10px;
  margin-top: 40px;
  & .footer-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  & .footer-logo {
    width: 100px;
    height: auto;
    opacity: 0.9;
    transition: opacity 0.2s;
    &:hover {
      opacity: 1.0;
    }
  }
  & p {
    margin: 0;
    font-size: 14px;
  }
}

.breadcrumbs {
  margin: 14px auto 10px;
  padding: 0 4px;
  & ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    font-size: 13px;
    line-height: 1.4;
  }
  & li {
    display: inline-flex;
    align-items: center;
    color: #607d8b;
  }
  & li + li::before {
    content: ">";
    margin: 0 8px;
    color: #9eabb4;
    font-weight: 600;
  }
}

.matches.index .breadcrumbs a,
.comments.index .breadcrumbs a,
.team_competition_comments.index .breadcrumbs a,
.team_competitions.index .breadcrumbs a {
  color: #546e7a;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}

.matches.index .breadcrumbs a:hover,
.comments.index .breadcrumbs a:hover,
.team_competition_comments.index .breadcrumbs a:hover,
.team_competitions.index .breadcrumbs a:hover {
  color: #1976d2;
  border-bottom-color: #1976d2;
  text-decoration: none;
}

.matches.index .breadcrumbs li[aria-current="page"],
.comments.index .breadcrumbs li[aria-current="page"],
.team_competition_comments.index .breadcrumbs li[aria-current="page"],
.team_competitions.index .breadcrumbs li[aria-current="page"] {
  color: #263238;
  font-weight: 700;
}

.matches.index {
  background-color: white;
  /* ページタイトル */
  & h1 {
    text-align: center;
    margin: 30px 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: black;
    letter-spacing: 1px;
  }
  /* main エリア（カードを含む本文全体） */
  & main {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px;
  }
  /* 通常リンク */
  & a {
    color: black;
    text-decoration: none;
    transition: color 0.2s;
    &:hover {
      color: black;
      text-decoration: underline;
    }
  }
  & header {
    & a {
      color: white;
    }
  }
  /* ページ内で使う操作リンク（新規作成や一覧に戻るなど） */
  & .page-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
  }
  & .page-actions .page-action-form {
    margin: 0;
    display: inline-block;
  }
  & .page-actions .page-action-btn {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    background: black;
    color: #fff;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
  }
  & .page-actions .page-action-btn:hover {
    background: #1976d2;
    text-decoration: none;
  }
  & .team-comment-link {
    max-width: 600px;
    margin: 0 auto 12px;
    text-align: right;
    & a {
      font-size: 16px;
      font-weight: 600;
      color: #1976d2;
    }
  }
  & .match-score-details {
    max-width: 600px;
    margin: 0 auto 16px;
    &[open] .competition-summary {
      border-radius: 12px 12px 0 0;
      border-bottom: none;
    }
  }
  & .competition-summary {
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #d5e2ec;
    background: linear-gradient(135deg, #f5f9fd 0%, #edf3f8 100%);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    box-shadow: 0 2px 5px rgba(33, 55, 82, 0.08);
    cursor: pointer;
    list-style: none;
    position: relative;
    padding-bottom: 28px;
    &::-webkit-details-marker {
      display: none;
    }
    & .score-block,
        & .remaining-block {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    & .summary-label {
      font-size: 12px;
      font-weight: 700;
      color: #607d8b;
      letter-spacing: 0.4px;
    }
    & .score {
      color: #263238;
      letter-spacing: 0.3px;
      font-size: 32px;
      font-weight: 800;
      line-height: 1.1;
    }
    & .remaining {
      color: #455a64;
      font-size: 22px;
      font-weight: 700;
      line-height: 1.2;
      text-align: right;
    }
    & .remaining-block {
      margin-left: auto;
      align-items: flex-end;
      text-align: right;
    }
    & .score-toggle {
      display: inline-flex;
      align-items: center;
      font-size: 12px;
      font-weight: 700;
      color: #607d8b;
      letter-spacing: 0.3px;
      position: absolute;
      right: 14px;
      bottom: 8px;
    }
    & .score-toggle-icon {
      display: inline-block;
      line-height: 1;
    }
    & .score-toggle-closed {
      display: none;
    }
  }
  & .match-score-details:not([open]) .competition-summary {
    & .score-toggle-open {
      display: none;
    }
    & .score-toggle-closed {
      display: inline-block;
    }
  }
  & .match-score-list {
    border: 1px solid #d5e2ec;
    border-top: none;
    border-radius: 0 0 12px 12px;
    background: #f8fbfd;
    padding: 6px 14px 8px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 12px;
         column-gap: 12px;
    &.is-ahead {
      border-color: #b7dfbf;
      background: #f4fbf5;
    }
    &.is-behind {
      border-color: #f2c2c2;
      background: #fff8f8;
    }
  }
  & .match-score-row {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 13px;
    color: #455a64;
    &:not(:last-child) {
      border-bottom: 1px solid #e8eef3;
    }
    & .match-score-name {
      font-weight: 600;
      color: #2c3e50;
    }
    & .match-score-value {
      font-size: 14px;
      font-weight: 700;
    }
    & .status-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      flex-shrink: 0;
      &.is-pre  {
        background: radial-gradient(circle at 35% 35%, #ffffff, #c8c8c8);
        border: 1px solid #bbb;
        box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.9);
      }
      &.is-live {
        background: #f9a825;
        animation: blink 1s ease-in-out infinite;
      }
      &.is-win  {
        background: #1976d2;
      }
      &.is-loss {
        background: #e53935;
      }
    }
  }
  & .competition-summary.is-ahead {
    border-color: #b7dfbf;
    background: linear-gradient(135deg, #effaf1 0%, #e4f4e8 100%);
    & .score,
        & .remaining {
      color: #1b5e20;
    }
    & .summary-label {
      color: #2e7d32;
    }
  }
  & .competition-summary.is-behind {
    border-color: #f2c2c2;
    background: linear-gradient(135deg, #fff5f5 0%, #ffeaea 100%);
    & .score,
        & .remaining {
      color: #b71c1c;
    }
    & .summary-label {
      color: #c62828;
    }
  }
  /* テーブル共通 */
  & table {
    border-collapse: collapse;
    width: 100%;
  }
  & th,
    & td {
    padding: 6px 8px;
    text-align: center;
  }
  & .match-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e7eef5;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    padding: 16px;
    margin-bottom: 20px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
    &:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 16px rgba(36, 71, 108, 0.14);
    }
    &.is-win-card {
      border-color: #7fa9d8;
      background: linear-gradient(135deg, #e9f3ff 0%, #dbeaff 100%);
      box-shadow: 0 3px 8px rgba(0, 51, 122, 0.2);
      & .match-header .round {
        color: #003b80;
      }
    }
    &.is-loss-card {
      border-color: #d88a8a;
      background: linear-gradient(135deg, #ffeaea 0%, #ffdede 100%);
      box-shadow: 0 3px 8px rgba(139, 0, 0, 0.2);
      & .match-header .round {
        color: #7f0000;
      }
    }
    & .match-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 12px;
      font-size: 14px;
      color: #555;
      & .round {
        font-weight: bold;
        color: #2c3e50;
      }
      & .stadium {
        font-style: italic;
      }
      & .status {
        font-size: 13px;
        font-weight: bold;
        color: #e53935;
      }
      .status.is-pre {
        color: #607d8b;
      }
      .status.is-live {
        color: #f9a825;
      }
      .status.is-win {
        color: #1565c0;
      }
      .status.is-loss {
        color: #c62828;
      }
    }
    & .score-table {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 12px;
      table-layout: fixed;
      & td {
        padding: 2px 2px;
        text-align: center;
        border-bottom: 1px solid #eee;
      }
      & .player-flag {
        font-weight: bold;
        font-size: 14px;
        color: #555;
        width: 60px;
        text-align: center;
      }
      & .player-name {
        font-weight: bold;
        width: 120px;
        text-align: center;
      }
      & .set-score {
        font-size: 16px;
        font-weight: bold;
        width: 32px;
        text-align: center;
      }
    }
    & .match-footer {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      & a,
            & form button {
        font-size: 13px;
        text-decoration: none;
        padding: 6px 12px;
        border-radius: 6px;
        border: none;
        cursor: pointer;
        transition: background 0.2s;
      }
      & .btn-edit {
        background: #4caf50;
        color: white;
        &:hover {
          background: #45a049;
        }
      }
      & .btn-delete {
        background: #f44336;
        color: white;
        &:hover {
          background: #e53935;
        }
      }
      & .btn-comment {
        background: #2196f3;
        color: white;
        &:hover {
          background: #1976d2;
        }
      }
    }
  }
}

@keyframes blink {
  0%, 100% {
    opacity: 1;
  }

  50%       {
    opacity: 0;
  }
}

.home.index {
  background-color: aqua;
}

.home.index h1 {
  font-family: "Permanent Marker", cursive;
  margin-top: 20px;
  margin-bottom: 20px;
  color: black;
  font-size: 10vw;
}

.home.index .main-nav {
  margin: 40px auto 20px;
  width: -moz-fit-content;
  width: fit-content;
}

.home.index .main-nav ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.home.index .main-nav li a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
  color: #111827;
  font-weight: bold;
  font-size: 20px;
  line-height: 1.2;
  background-color: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  transition: color 0.2s, border-color 0.2s, background-color 0.2s;
}

.home.index .main-nav li a:hover {
  color: #ff0066;
  border-color: #9ca3af;
  background-color: #f9fafb;
}

.home.index .home-note {
  margin: 10px auto 0;
  text-align: center;
  font-size: 14px;
  color: #1f2937;
  font-weight: 500;
}

.comments.index,
.team_competition_comments.index {
  background-color: white;
  /* ページタイトル */
  & h1 {
    text-align: center;
    margin: 30px 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: black;
    letter-spacing: 1px;
  }
  /* main エリア（カードを含む本文全体） */
  & main {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px;
    border-radius: 30%;
  }
  /* 通常リンク */
  & a {
    color: black;
    text-decoration: none;
    transition: color 0.2s;
    &:hover {
      color: black;
      text-decoration: underline;
    }
  }
  & header {
    & a {
      color: white;
    }
  }
  /* ページ内で使う操作リンク（新規作成や一覧に戻るなど） */
  & .page-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 20px;
    & a {
      display: inline-block;
      padding: 8px 14px;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 500;
      background: black;
      color: #fff;
      transition: background 0.2s;
      &:hover {
        background: #1976d2;
      }
    }
  }
  /* テーブル共通 */
  & table {
    border-collapse: collapse;
    width: 100%;
  }
  & th,
    & td {
    padding: 6px 8px;
    text-align: center;
  }
  & .match-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    padding: 16px;
    margin-bottom: 20px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    & .match-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 12px;
      font-size: 14px;
      color: #555;
      & .round {
        font-weight: bold;
        color: #2c3e50;
      }
      & .stadium {
        font-style: italic;
      }
      & .status {
        font-size: 13px;
        font-weight: bold;
        color: #e53935;
      }
      .status.is-pre {
        color: #607d8b;
      }
      .status.is-live {
        color: #f9a825;
      }
      .status.is-win {
        color: #2e7d32;
      }
      .status.is-loss {
        color: #c62828;
      }
    }
    & .score-table {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 12px;
      & td {
        padding: 6px 8px;
        text-align: center;
        border-bottom: 1px solid #eee;
      }
      & .player-flag {
        font-weight: bold;
        font-size: 14px;
        color: #555;
        width: 100px;
      }
      & .player-name {
        text-align: left;
        font-weight: bold;
        width: 100px;
      }
      & .set-score {
        font-size: 21px;
        font-weight: bold;
        width: 40px;
      }
    }
    & .match-footer {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      & a,
            & form button {
        font-size: 13px;
        text-decoration: none;
        padding: 6px 12px;
        border-radius: 6px;
        border: none;
        cursor: pointer;
        transition: background 0.2s;
      }
      & .btn-edit {
        background: #4caf50;
        color: white;
        &:hover {
          background: #45a049;
        }
      }
      & .btn-delete {
        background: #f44336;
        color: white;
        &:hover {
          background: #e53935;
        }
      }
      & .btn-comment {
        background: #2196f3;
        color: white;
        &:hover {
          background: #1976d2;
        }
      }
    }
  }
  &.team_competition_comments {
    & .match-card .match-header.team-score-header {
      justify-content: center;
      margin-bottom: 0;
    }
    & .match-card .match-header.team-score-header .status {
      font-size: 28px;
      font-weight: 800;
      color: #1f2937;
      line-height: 1.1;
    }
  }
  & .comments-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  & .comment-item {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #e6ecf0;
    background: #fff;
    &:hover {
      background: #f7f9fa;
    }
  }
  & .comment-body {
    flex: 1;
  }
  & .comment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: #657786;
    margin-bottom: 4px;
    & .username {
      font-weight: bold;
      color: #14171a;
    }
    & .timestamp {
      font-size: 12px;
    }
  }
  & .comment-content {
    font-size: 15px;
    color: #14171a;
    margin-left: 10px;
    padding-left: 8px;
    margin-bottom: 8px;
    line-height: 1.4;
  }
  & .comment-actions {
    & .btn-delete {
      font-size: 12px;
      padding: 4px 8px;
      border-radius: 4px;
      background: transparent;
      border: 1px solid #e0245e;
      color: #e0245e;
      transition: all 0.2s;
      &:hover {
        background: #e0245e;
        color: #fff;
      }
    }
  }
  & .comment-form {
    border-top: 1px solid #e6ecf0;
    padding: 16px;
    background: #fff;
    & .form-group {
      margin-bottom: 8px;
    }
    & .comment-input {
      width: 100%;
      border: none;
      resize: none;
      font-size: 15px;
      line-height: 1.4;
      padding: 10px;
      border-radius: 8px;
      background: #f5f8fa;
      outline: none;
      &:focus {
        background: #fff;
        border: 1px solid #1da1f2;
      }
    }
    & .form-actions {
      display: flex;
      justify-content: flex-end;
    }
    & .btn-submit {
      background: #1da1f2;
      color: #fff;
      border: none;
      border-radius: 20px;
      padding: 6px 16px;
      font-weight: bold;
      cursor: pointer;
      transition: background 0.2s;
      &:hover {
        background: #0d8ddb;
      }
    }
  }
}

/* app/assets/stylesheets/matches/form.css */

/* Matches new/edit 共通フォームスタイル。indexのカード/配色を踏襲。 */

.matches {
  &.new,
  &.edit {
    background-color: white;
    /* ページタイトル（indexと同じトーン） */
    & h1 {
      text-align: center;
      margin: 30px 0 20px;
      font-size: 28px;
      font-weight: bold;
      color: black;
      letter-spacing: 1px;
    }
    /* レイアウトラッパ（質問で提示の .all を利用） */
    & .all {
      max-width: 720px;
      margin: 0 auto;
      padding: 20px;
    }
    /* フォーム本体をカード化 */
    & .all form {
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
      padding: 20px;
      display: grid;
      gap: 20px;
    }
    /* 各入力ブロックの間隔 */
    & .all form > div {
      display: block;
    }
    /* ラベル */
    & .all form label {
      display: block;
      margin-bottom: 6px;
      font-weight: 600;
      color: #2c3e50;
      font-size: 14px;
      letter-spacing: 0.2px;
    }
    /* テキスト/数値/セレクト共通 */
    & .all form input[type="text"],
    & .all form input[type="number"],
    & .all form select {
      width: 100%;
      box-sizing: border-box;
      padding: 10px 12px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      font-size: 14px;
      transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
      &:focus {
        outline: none;
        border-color: #1976d2;
        box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15);
        background-color: #fafcff;
      }
      &::-moz-placeholder {
        color: #9e9e9e;
      }
      &::placeholder {
        color: #9e9e9e;
      }
    }
    /* セットごとのまとまりをカード風に */
    & .all form fieldset {
      border: 1px solid #eee;
      border-radius: 10px;
      padding: 14px;
      margin: 4px 0 2px;
      display: grid;
      gap: 12px;
      & legend {
        padding: 0 8px;
        font-weight: 700;
        color: #2c3e50;
        font-size: 14px;
      }
      /* フィールド内の行間 */
      & > div {
        display: grid;
        gap: 6px;
      }
    }
    /* 送信ボタン（indexのボタン調に） */
    & .all form input[type="submit"] {
      justify-self: end;
      padding: 10px 16px;
      border-radius: 8px;
      border: none;
      background: black;
      color: #fff;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.2s, transform 0.02s;
      &:hover {
        background: #1976d2;
      }
      &:active {
        transform: translateY(1px);
      }
    }
    /* Railsのエラーハイライト（field_with_errors） */
    & .all form .field_with_errors {
      display: block;
      & input,
      & select {
        border-color: #e53935;
        box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.12);
      }
      & label {
        color: #e53935;
      }
    }
    /* スマホ最適化 */
    @media (max-width: 600px) {
      & .all {
        padding: 14px;
      }

      & .all form {
        padding: 16px;
        gap: 14px;
      }

      & .all form input[type="submit"] {
        width: 100%;
        justify-self: stretch;
      }
    }
    & .current-set,
    & .status-field {
      & .segmented {
        display: inline-grid;
        grid-auto-flow: column;
        gap: 8px;
      }
      /* ラジオ自体は視覚的に隠す（アクセシブルに） */
      & .segmented-input {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0;
        pointer-events: none;
      }
      & .segmented-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 48px;
        padding: 10px 14px;
        border: 1px solid #e0e0e0;
        border-radius: 8px;
        background: #fff;
        color: #2c3e50;
        font-weight: 700;
        font-size: 14px;
        cursor: pointer;
        -webkit-user-select: none;
           -moz-user-select: none;
                user-select: none;
        transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.02s;
        &:hover {
          background: #1976d2;
          color: #fff;
          border-color: #1976d2;
        }
        &:active {
          transform: translateY(1px);
        }
      }
      & .segmented-input:checked + .segmented-btn {
        background: black;
        color: #fff;
        border-color: black;
      }
      & .segmented-input:focus + .segmented-btn {
        box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.2);
        border-color: #1976d2;
      }
      & .segmented-input:disabled + .segmented-btn {
        opacity: 0.6;
        cursor: not-allowed;
      }
      & .segmented-input:checked + .segmented-btn.is-pre {
        background: #1976D2;
        border-color: #1976D2;
        color: #fff;
      }
      & .segmented-input:checked + .segmented-btn.is-live {
        background: #FFEB3B;
        border-color: #FFEB3B;
        color: #000;
      }
      & .segmented-input:checked + .segmented-btn.is-win {
        background: #2E7D32;
        border-color: #2E7D32;
        color: #fff;
      }
      & .segmented-input:checked + .segmented-btn.is-loss {
        background: #C62828;
        border-color: #C62828;
        color: #fff;
      }
      & .segmented-btn.is-pre:hover {
        background: #64B5F6;
        border-color: #64B5F6;
        color: #fff;
      }
      & .segmented-btn.is-live:hover {
        background: #FFF59D;
        border-color: #FFF59D;
        color: #000;
      }
      & .segmented-btn.is-win:hover {
        background: #66BB6A;
        border-color: #66BB6A;
        color: #fff;
      }
      & .segmented-btn.is-loss:hover {
        background: #EF5350;
        border-color: #EF5350;
        color: #fff;
      }
    }
    /* --- ゲーム数の編集部分 --- */
    & .set-compact {
      padding: 12px 14px;
      margin-bottom: 14px;
    }
    & .set-compact legend {
      font-size: 13px;
      margin-bottom: 8px;
      color: #2c3e50;
    }
    & .scores-grid {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: end;
      gap: 10px 14px;
    }
    & .score-unit {
      display: grid;
      grid-template-rows: auto auto;
      gap: 6px;
    }
    & .score-label {
      font-size: 12px;
      font-weight: 600;
      color: #58606b;
    }
    & .score-sep {
      align-self: center;
      color: #9aa3af;
    }
    /* --- セット数入力（＋/− ステッパー） --- */
    & .set-block {
      & .row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
      }
    }
    & .stepper {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    & .stepper-input {
      width: 72px;
      text-align: center;
      padding: 10px 12px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      font-size: 14px;
      transition: border-color .15s, box-shadow .15s;
      &:focus {
        outline: none;
        border-color: #1976d2;
        box-shadow: 0 0 0 3px rgba(25, 118, 210, .15);
        background: #fafcff;
      }
    }
    & .stepper-btn {
      width: 36px;
      height: 36px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      background: #fff;
      font-weight: 700;
      font-size: 18px;
      line-height: 1;
      cursor: pointer;
      transition: background .2s, color .2s, border-color .2s, transform .02s;
      &:hover {
        background: #1976d2;
        color: #fff;
        border-color: #1976d2;
      }
      &:active {
        transform: translateY(1px);
      }
    }
    /* スマホ調整 */
    @media (max-width: 600px) {
      & .set-block .row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
      }

      & .stepper {
        justify-content: space-between;
      }

      & .stepper-input {
        width: 100%;
      }
    }
  }
}

.matches .all form {
  /* new/edit セレクタが効かない時だけ当たる想定 */
}

/* === Index === */

.team_competitions.index {
  background-color: white;
  & h1 {
    text-align: center;
    margin: 30px 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: black;
    letter-spacing: 1px;
  }
  & main {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px;
  }
  & a {
    color: black;
    text-decoration: none;
    transition: color 0.2s;
    &:hover {
      text-decoration: underline;
    }
  }
  & header a {
    color: white;
  }
  & .page-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
    & a, & form button {
      display: inline-block;
      padding: 8px 14px;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 500;
      background: black;
      color: #fff;
      border: none;
      cursor: pointer;
      transition: background 0.2s;
      &:hover {
        background: #1976d2;
        text-decoration: none;
      }
    }
  }
  & details {
    margin-bottom: 20px;
    & summary {
      font-size: 16px;
      font-weight: bold;
      padding: 12px 16px;
      background: #2c3e50;
      color: white;
      border-radius: 8px;
      cursor: pointer;
      list-style: none;
      margin-bottom: 10px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      &::-webkit-details-marker {
        display: none;
      }
      & .season-title {
        min-width: 0;
      }
      & .season-toggle {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: 0.3px;
        color: #d7e6f5;
      }
      & .season-toggle-icon {
        display: inline-block;
        font-size: 12px;
        line-height: 1;
        transition: transform 0.18s ease;
      }
      & .season-toggle-closed {
        display: none;
      }
    }
    &:not([open]) summary {
      & .season-toggle-icon {
        transform: rotate(-90deg);
      }
      & .season-toggle-open {
        display: none;
      }
      & .season-toggle-closed {
        display: inline;
      }
    }
    & .season-actions {
      display: flex;
      gap: 8px;
      margin-bottom: 10px;
      padding: 0 4px;
      & a, & form button {
        font-size: 13px;
        padding: 4px 10px;
        border-radius: 6px;
        border: none;
        cursor: pointer;
        background: #455a64;
        color: white;
        transition: background 0.2s;
        &:hover {
          background: #e53935;
          text-decoration: none;
        }
      }
    }
    & ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    & li {
      background: #fff;
      border-radius: 10px;
      border: 1px solid #edf1f5;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
      padding: 14px 16px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      grid-template-areas:
        "main summary"
        "main actions";
      align-items: center;
      gap: 12px;
      position: relative;
      transition: transform 0.12s ease, box-shadow 0.2s ease, border-color 0.2s ease;
      &:hover {
        transform: translateY(-1px);
        border-color: #b6c8db;
        box-shadow: 0 6px 16px rgba(36, 71, 108, 0.14);
      }
      &:has(.tc-card-link:focus-visible) {
        border-color: #1976d2;
        box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.18);
      }
    }
    & .tc-card-link {
      position: absolute;
      inset: 0;
      border-radius: 10px;
      z-index: 2;
      text-decoration: none;
      &:focus-visible {
        outline: none;
      }
    }
    & .tc-card-link-text {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    & .tc-main {
      grid-area: main;
      display: flex;
      flex-direction: column;
      gap: 6px;
      min-width: 0;
      z-index: 1;
    }
    & .tc-name {
      font-weight: bold;
      font-size: 16px;
      color: #2c3e50;
      line-height: 1.4;
      word-break: break-word;
    }
    & .tc-opponent {
      font-size: 13px;
      color: #546e7a;
      font-weight: 600;
      letter-spacing: 0.2px;
    }
    & .tc-meta {
      font-size: 13px;
      color: #607d8b;
      font-weight: 500;
      letter-spacing: 0.2px;
    }
    & .tc-link-hint {
      position: absolute;
      right: 20px;
      bottom: 15px;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      color: #1565c0;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.2px;
      text-align: right;
      z-index: 2;
      pointer-events: none;
    }
    & .tc-link-hint-arrow {
      display: inline-block;
      transition: transform 0.16s ease;
    }
    & li:hover .tc-link-hint-arrow,
    & .tc-card-link:focus-visible ~ .tc-main .tc-link-hint-arrow {
      transform: translateX(3px);
    }
    & .tc-summary {
      grid-area: summary;
      display: inline-flex;
      align-items: center;
      gap: 0;
      justify-self: end;
      align-self: start;
      margin-top: 8px;
      margin-right: 12px;
      & .score {
        display: inline-block;
        color: #263238;
        font-size: 22px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: 0.2px;
      }
    }
    & .tc-summary.is-ahead .score {
      color: #1b5e20;
    }
    & .tc-summary.is-behind .score {
      color: #b71c1c;
    }
    & .item-actions {
      grid-area: actions;
      display: flex;
      gap: 8px;
      align-items: center;
      justify-self: end;
      position: relative;
      z-index: 3;
      & a, & form button {
        font-size: 13px;
        padding: 5px 10px;
        border-radius: 6px;
        border: none;
        cursor: pointer;
        text-decoration: none;
        transition: background 0.2s;
      }
      & .btn-edit  {
        background: #4caf50;
        color: white;
        &:hover {
          background: #45a049;
        }
      }
      & .btn-delete {
        background: #f44336;
        color: white;
        &:hover {
          background: #e53935;
        }
      }
    }
    @media (max-width: 720px) {
      & li {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
          "main summary"
          "actions actions";
        align-items: start;
        gap: 8px;
      }

      & .tc-summary {
        justify-self: end;
        align-self: start;
        margin-top: 4px;
        margin-right: 6px;
      }

      & .item-actions {
        justify-self: end;
        justify-content: flex-end;
        flex-wrap: wrap;
      }
    }
  }
}

/* === New / Edit === */

.team_competitions {
  &.new, &.edit {
    background-color: white;
    & h1 {
      text-align: center;
      margin: 30px 0 20px;
      font-size: 28px;
      font-weight: bold;
      color: black;
      letter-spacing: 1px;
    }
    & .all {
      max-width: 600px;
      margin: 0 auto;
      padding: 20px;
    }
    & .all form {
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
      padding: 20px;
      display: grid;
      gap: 20px;
    }
    & .all form label {
      display: block;
      margin-bottom: 6px;
      font-weight: 600;
      color: #2c3e50;
      font-size: 14px;
    }
    & .all form input[type="text"],
    & .all form input[type="date"],
    & .all form select {
      width: 100%;
      box-sizing: border-box;
      padding: 10px 12px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      font-size: 14px;
      transition: border-color 0.15s, box-shadow 0.15s;
      &:focus {
        outline: none;
        border-color: #1976d2;
        box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15);
        background-color: #fafcff;
      }
    }
    & .all form input[type="submit"] {
      justify-self: end;
      padding: 10px 16px;
      border-radius: 8px;
      border: none;
      background: black;
      color: #fff;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.2s;
      &:hover {
        background: #1976d2;
      }
    }
    & .all > a {
      display: block;
      margin-top: 12px;
      text-align: center;
      color: #666;
      text-decoration: none;
      font-size: 14px;
      &:hover {
        text-decoration: underline;
      }
    }
  }
}

/* === Index === */

.seasons.index {
  background-color: white;
  & h1 {
    text-align: center;
    margin: 30px 0 20px;
    font-size: 28px;
    font-weight: bold;
    color: black;
    letter-spacing: 1px;
  }
  & main {
    max-width: 760px;
    margin: 0 auto;
    padding: 20px;
  }
  & a {
    color: black;
    text-decoration: none;
    transition: color 0.2s;
    &:hover {
      text-decoration: underline;
    }
  }
  & header a {
    color: white;
  }
  & .page-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
    & a, & form button {
      display: inline-block;
      padding: 8px 14px;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 500;
      background: black;
      color: #fff;
      border: none;
      cursor: pointer;
      transition: background 0.2s;
      &:hover {
        background: #1976d2;
        text-decoration: none;
      }
    }
  }
  & .season-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  & .season-list li {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  & .season-name {
    font-weight: bold;
    font-size: 15px;
    color: #2c3e50;
  }
  & .item-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    & a, & form button {
      font-size: 13px;
      padding: 5px 10px;
      border-radius: 6px;
      border: none;
      cursor: pointer;
      text-decoration: none;
      transition: background 0.2s;
    }
    & .btn-edit   {
      background: #4caf50;
      color: white;
      &:hover {
        background: #45a049;
      }
    }
    & .btn-delete {
      background: #f44336;
      color: white;
      &:hover {
        background: #e53935;
      }
    }
  }
}

/* === New / Edit === */

.seasons {
  &.new, &.edit {
    background-color: white;
    & h1 {
      text-align: center;
      margin: 30px 0 20px;
      font-size: 28px;
      font-weight: bold;
      color: black;
      letter-spacing: 1px;
    }
    & .all {
      max-width: 480px;
      margin: 0 auto;
      padding: 20px;
    }
    & .all form {
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
      padding: 20px;
      display: grid;
      gap: 20px;
    }
    & .all form label {
      display: block;
      margin-bottom: 6px;
      font-weight: 600;
      color: #2c3e50;
      font-size: 14px;
    }
    & .all form input[type="text"] {
      width: 100%;
      box-sizing: border-box;
      padding: 10px 12px;
      border: 1px solid #e0e0e0;
      border-radius: 8px;
      font-size: 14px;
      transition: border-color 0.15s, box-shadow 0.15s;
      &:focus {
        outline: none;
        border-color: #1976d2;
        box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15);
        background-color: #fafcff;
      }
    }
    & .all form input[type="submit"] {
      justify-self: end;
      padding: 10px 16px;
      border-radius: 8px;
      border: none;
      background: black;
      color: #fff;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.2s;
      &:hover {
        background: #1976d2;
      }
    }
    & .all > a {
      display: block;
      margin-top: 12px;
      text-align: center;
      color: #666;
      text-decoration: none;
      font-size: 14px;
      &:hover {
        text-decoration: underline;
      }
    }
  }
}

.team_area_accesses.new,
.team_area_accesses.create,
.admin_accesses.new,
.admin_accesses.create {
  background-color: #f5f7fa;
  & h1 {
    text-align: center;
    margin: 0 0 24px;
    font-size: 24px;
    font-weight: bold;
    color: #2c3e50;
  }
  & main {
    max-width: 400px;
    margin: 60px auto;
    padding: 20px;
  }
  & form {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    padding: 28px;
    display: grid;
    gap: 16px;
  }
  & form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: #2c3e50;
    font-size: 14px;
  }
  & form input[type="password"],
  & form input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    transition: border-color 0.15s, box-shadow 0.15s;
    &:focus {
      outline: none;
      border-color: #1976d2;
      box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.15);
      background-color: #fafcff;
    }
  }
  & form input[type="submit"] {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: none;
    background: black;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    &:hover {
      background: #1976d2;
    }
  }
  & .access-back-link {
    margin-top: 12px;
    text-align: center;
    & a {
      display: inline-block;
      padding: 8px 16px;
      border-radius: 8px;
      border: 1px solid #cfd8e3;
      background: #fff;
      color: #455a64;
      text-decoration: none;
      font-size: 14px;
      font-weight: 600;
      transition: background 0.2s, border-color 0.2s;
      &:hover {
        background: #eef3f8;
        border-color: #b0bec5;
      }
    }
  }
}

.hover\:text-gray-300:hover {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

@media (min-width: 1024px) {
  .lg\:flex {
    display: flex;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:w-auto {
    width: auto;
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .lg\:pb-0 {
    padding-bottom: 0px;
  }
}
