/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
*, ::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;
}
.\!visible {
  visibility: visible !important;
}
.visible {
  visibility: visible;
}
.relative {
  position: relative;
}
.block {
  display: block;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.contents {
  display: contents;
}
.hidden {
  display: none;
}
.resize {
  resize: both;
}
.border {
  border-width: 1px;
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:#172033;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top left,#e0eaff,transparent 55%),#f4f6fa}.login-card{background:white;border:1px solid #e2e8f0;border-radius:24px;padding:38px;width:min(100%,440px);box-shadow:0 24px 80px #1e293b12}.logo-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:#183b65;color:white;font-size:25px;font-weight:900;margin-bottom:22px}.logo-mark.small{width:39px;height:39px;border-radius:12px;font-size:20px;margin:0}.login-card h1{font-size:27px;letter-spacing:-.8px;margin:4px 0 8px}.login-card p{color:#66758a;line-height:1.6}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;color:#718096;margin:0 0 8px}.subtle{color:#718096;font-size:14px;margin-bottom:26px}.stack{display:grid;gap:16px;margin-top:24px}.stack label,.form-grid label{font-size:13px;font-weight:650;color:#344256;display:grid;gap:7px}.stack input,.form-grid input,.form-grid select{width:100%;border:1px solid #d8e0eb;border-radius:10px;padding:11px 12px;background:#fff;color:#172033;outline:none}.stack input:focus,.form-grid input:focus,.form-grid select:focus{border-color:#4c7bb4;box-shadow:0 0 0 3px #dbeafe}.primary-btn{border:0;border-radius:10px;background:#183b65;color:white;padding:11px 15px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:700;font-size:13px}.primary-btn:hover{background:#244d7d}.tiny{font-size:12px!important;margin-top:22px}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;flex-shrink:0;background:#102842;color:#e6eef8;min-height:100vh;padding:24px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:11px;align-items:center;padding:0 8px 35px}.brand strong{display:block;font-size:18px;letter-spacing:.3px}.brand span{display:block;font-size:9px;letter-spacing:1.3px;color:#9cb3cc;margin-top:4px}.side-label{font-size:10px;font-weight:800;letter-spacing:1.6px;color:#7f9ab6;padding:0 13px 12px}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#b8c8d9;padding:12px 13px;border-radius:10px;display:flex;gap:12px;align-items:center;text-align:left;font-size:13px;font-weight:600}.nav-item span{flex:1}.nav-item:hover{background:#ffffff0d;color:white}.nav-item.selected{background:#28517b;color:white;box-shadow:inset 3px 0 #8dc5ff}.nav-item i{font-style:normal;font-size:10px;background:#ffffff18;padding:3px 6px;border-radius:6px}.side-bottom{margin-top:auto;padding:14px 9px 0;border-top:1px solid #ffffff18;display:flex;gap:9px;align-items:center}.status-dot{width:8px;height:8px;border-radius:50%;background:#56d6a2;box-shadow:0 0 0 4px #56d6a218}.side-bottom div:nth-child(2){flex:1;min-width:0}.side-bottom strong,.side-bottom span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-bottom strong{font-size:11px}.side-bottom span{font-size:10px;color:#91a9c1;margin-top:4px}.side-bottom button{border:0;background:transparent;color:#a7bdd2;padding:7px}.main-area{flex:1;min-width:0;max-width:1600px;margin:0 auto;padding:32px 38px 20px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.topbar h1{font-size:29px;letter-spacing:-.8px;margin:0}.top-actions{display:flex;align-items:center;gap:15px}.live-dot{font-size:11px;color:#17835c;background:#e3f8ee;border-radius:20px;padding:7px 10px;font-weight:700}.icon-btn{border:1px solid #dce3ed;background:white;border-radius:10px;padding:9px;color:#516277}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#dbeafe;color:#244d7d;font-weight:800}.welcome{border-radius:18px;background:linear-gradient(115deg,#153656,#245c85);padding:30px 34px;color:white;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.welcome h2{font-size:25px;letter-spacing:-.6px;margin:7px 0 9px}.welcome p:not(.eyebrow){font-size:13px;color:#d4e2f0;margin:0 0 22px}.eyebrow.light{color:#9fc6e8}.light-btn{background:white;border:0;border-radius:9px;color:#163b61;padding:10px 14px;font-size:12px;font-weight:800}.light-btn span{padding-left:10px}.welcome-ball{font-size:105px;opacity:.2;margin-right:20px;transform:rotate(-15deg)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.stat-card{background:white;border:1px solid #e4e9f1;border-radius:15px;padding:17px;display:grid;grid-template-columns:38px 1fr;-moz-column-gap:11px;column-gap:11px;align-items:center}.stat-icon{grid-row:span 2;width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.blue{background:#e8f1ff;color:#3471bb}.purple{background:#f1eaff;color:#8056c7}.green{background:#e2f8ed;color:#239366}.orange{background:#fff0df;color:#bf7925}.stat-label{font-size:11px;color:#6b7b90}.stat-card strong{font-size:25px;line-height:1.3}.stat-card small{grid-column:2;font-size:10px;color:#9aa6b5;margin-top:3px}.content-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.content-card{background:white;border:1px solid #e1e7ef;border-radius:16px;padding:22px;margin-bottom:18px;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.section-head h3{font-size:16px;margin:0 0 5px;letter-spacing:-.2px}.section-head p{font-size:12px;color:#7b8798;margin:0}.text-btn{border:0;background:transparent;color:#28629b;font-size:12px;font-weight:800}.quick-action{width:100%;display:flex;gap:12px;align-items:center;padding:13px 0;border:0;border-bottom:1px solid #edf0f5;background:white;text-align:left}.quick-action:last-child{border-bottom:0}.quick-icon{width:36px;height:36px;border-radius:10px;background:#edf4fc;color:#315f90;display:grid;place-items:center}.quick-action span:nth-child(2){flex:1}.quick-action strong,.quick-action small{display:block}.quick-action strong{font-size:12px}.quick-action small{font-size:11px;color:#8a96a6;margin-top:4px}.quick-action>b{color:#7b8ca2}.empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:#8ca0b7}.empty strong{color:#38485c;font-size:13px}.empty span{font-size:11px;color:#8996a7}.compact{margin-top:5px}.match-list{display:grid}.match-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #edf0f5}.match-row:last-child{border-bottom:0}.match-row>div{min-width:0}.match-row>div:nth-child(3){text-align:right}.match-row strong,.match-row span{display:block}.match-row strong{font-size:12px;overflow-wrap:anywhere}.match-row span{font-size:10px;color:#8491a2;margin-top:5px}.match-row>b{background:#f1f5f9;border-radius:7px;padding:7px 10px;font-size:12px;white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:17px;background:#f8fafc;border:1px solid #edf1f6;border-radius:12px;margin-bottom:22px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-end{display:flex;align-items:end}.form-end .primary-btn{min-height:40px}.count-badge{font-size:11px;color:#315f90;background:#edf4fc;border-radius:20px;padding:7px 10px;white-space:nowrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:530px}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #edf0f5;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#8491a2;background:#fafbfd}td{color:#536176}.strong-cell{font-weight:700;color:#26364b}.muted{color:#8a96a6;font-weight:400}.empty-inline{font-size:12px;color:#8996a7;padding:14px}.pill{display:inline-block;font-size:10px;border-radius:20px;padding:5px 8px;background:#fff4df;color:#a96a13}.pill.done{background:#e2f8ed;color:#21845f}.pill.pending{background:#fff4df;color:#a96a13}.small-btn{border:1px solid #d7e0eb;background:white;color:#315f90;border-radius:8px;padding:7px 9px;font-size:11px;font-weight:750}.notice{display:flex;gap:14px;background:#f4f8fd;border:1px solid #dce9f8;border-radius:12px;padding:20px;color:#315f90}.notice strong{font-size:13px}.notice p{font-size:12px;line-height:1.6;color:#697b90}.alert{padding:11px 14px;border-radius:10px;font-size:12px;margin:0 0 16px}.alert.success{background:#e4f8ee;color:#147a52}.alert.error{background:#fff0f1;color:#b4233a}.footer{display:flex;justify-content:space-between;gap:10px;padding:18px 3px;color:#8290a2;font-size:10px}.footer span{color:#a1aab7}@media(max-width:1000px){.sidebar{width:210px}.main-area{padding:26px 22px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.app-shell{display:block}.sidebar{width:100%;height:auto;min-height:0;position:relative;padding:15px}.brand{padding:0 6px 15px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap;padding:10px}.nav-item span{font-size:11px}.side-label,.side-bottom{display:none}.main-area{padding:20px 12px}.topbar h1{font-size:24px}.welcome{padding:22px}.welcome h2{font-size:20px}.welcome-ball{display:none}.stat-grid{gap:8px}.stat-card{padding:12px;grid-template-columns:30px 1fr;-moz-column-gap:8px;column-gap:8px}.stat-icon{width:30px;height:30px}.stat-card strong{font-size:21px}.form-grid,.form-grid.two{grid-template-columns:1fr}.form-end{grid-column:1}.content-card{padding:15px}.footer{flex-direction:column}.live-dot{display:none}}
.full-field{grid-column:1/-1}.form-grid textarea{width:100%;border:1px solid #d8e0eb;border-radius:10px;padding:11px 12px;background:#fff;color:#172033;resize:vertical;font:inherit}.form-grid .check-field{display:flex;align-items:center;gap:9px;grid-column:1/-1;font-size:12px}.check-field input{width:auto}.tiny{color:#8794a6;font-size:11px;line-height:1.5}
.ics-upload{border:1px dashed #b8c9dc;border-radius:14px;background:#f8fbff;padding:30px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;color:#315f90;text-align:center}.ics-upload strong{color:#26364b;font-size:14px}.ics-upload>span{font-size:12px;color:#7b8798}.upload-label{position:relative;overflow:hidden;margin-top:7px}.upload-label input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.season-picker{display:grid;gap:8px;max-width:360px;margin-top:20px;font-size:13px;font-weight:650;color:#344256}.season-picker select{width:100%;border:1px solid #d8e0eb;border-radius:10px;padding:11px 12px;background:#fff;color:#172033}.import-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.import-actions .tiny{max-width:650px;margin:0}.import-actions .primary-btn{flex-shrink:0}.pill{align-items:center;gap:4px}.pill svg{vertical-align:middle}@media(max-width:680px){.import-actions{align-items:stretch;flex-direction:column}.season-picker{max-width:none}}
.round-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.round-summary>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #e5ebf3;border-radius:12px;background:#f8fafc}.round-summary strong{font-size:23px;color:#1c4269}.round-summary span{font-size:11px;color:#78879a}.round-input{width:82px;border:1px solid #d8e0eb;border-radius:8px;padding:7px 9px;background:white;color:#172033}.round-block{border:1px solid #e5ebf3;border-radius:12px;padding:14px 16px;margin-top:14px}.round-block h4{font-size:14px;margin:0 0 8px;color:#244d7d}.round-fixture{display:grid;grid-template-columns:155px minmax(180px,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf0f5}.round-fixture>span{font-size:11px;color:#7b8798}.round-fixture>strong{font-size:12px;color:#26364b}.round-fixture>b{font-size:12px;background:#f1f5f9;padding:7px 9px;border-radius:7px;white-space:nowrap}@media(max-width:680px){.round-summary{grid-template-columns:1fr}.round-fixture{grid-template-columns:1fr auto;gap:6px}.round-fixture>span{grid-column:1/-1}.round-input{width:65px}}

/* Calendari per jornades: vista visual prioritària */
.round-calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;align-items:start}
.round-block{border:1px solid #dfe7f1;border-radius:14px;padding:0;margin:0;overflow:hidden;background:#fff;box-shadow:0 3px 12px rgba(24,54,88,.045)}
.round-card-heading{display:flex;align-items:center;gap:11px;padding:13px 15px;background:linear-gradient(135deg,#f1f6fc,#f8fbff);border-bottom:1px solid #e5ebf3}
.round-number{display:flex;align-items:center;justify-content:center;flex:0 0 40px;height:40px;border-radius:12px;background:#244d7d;color:#fff;font-weight:800;font-size:18px}
.round-card-heading h4{font-size:14px;margin:0 0 3px;color:#244d7d}
.round-card-heading small{font-size:11px;color:#7b8798}
.round-fixture{grid-template-columns:1fr auto;gap:7px 12px;padding:12px 14px;border-top:1px solid #edf0f5}
.round-fixture:first-of-type{border-top:0}
.round-fixture>span{grid-column:1/-1;font-size:11px;color:#7b8798}
.round-fixture>strong{font-size:12px;line-height:1.5;color:#26364b}
.round-fixture>b{font-size:13px;font-weight:800;background:#f1f5f9;color:#1c4269;padding:7px 10px;border-radius:8px;white-space:nowrap;align-self:center}
@media(max-width:850px){.round-calendar-grid{grid-template-columns:1fr}}


/* Dorsals editables dins de l'acta */
.act-roster-block{margin-top:8px;padding-top:18px;border-top:1px solid var(--border,#e5e7eb)}
.act-roster-block h4{font-size:16px;font-weight:700;margin:0 0 6px}
.act-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}
.act-team-roster{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:14px;min-width:0}
.act-team-roster h5{font-weight:700;margin:0 0 10px}
.dorsal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border,#eef0f3);font-size:13px}
.dorsal-row:last-child{border-bottom:0}
.dorsal-row span{flex:1;min-width:0}
.dorsal-row input{width:76px;flex:0 0 76px}
@media(max-width:760px){.act-roster-grid{grid-template-columns:1fr}}

.act-add-player{display:grid;grid-template-columns:1fr 2fr 110px auto;gap:12px;align-items:end;padding:14px;margin:12px 0 18px;background:#f5f7fb;border:1px solid #e3e8f0;border-radius:12px}.act-add-player label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.act-add-player select,.act-add-player input{width:100%;min-width:0}@media(max-width:760px){.act-add-player{grid-template-columns:1fr}.act-add-player button{width:100%}}

.act-new-player summary{cursor:pointer;font-weight:600;margin:8px 0;color:#2454a6}.act-new-player .act-add-player{margin-top:10px}

/* v8.8: selector de jornada i incidències d'acta */
.acts-filters{display:grid;gap:14px;margin:16px 0 20px}
.acts-filters>label,.act-captains label,.incident-row label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text,#273444)}
.acts-round-buttons{display:grid;grid-template-columns:repeat(14,minmax(32px,1fr));gap:6px}
.round-pick{border:1px solid var(--border,#dfe5ec);border-radius:9px;background:var(--card,#fff);padding:9px 4px;font-weight:700;cursor:pointer;color:var(--text,#273444)}
.round-pick.active{background:#176b46;color:#fff;border-color:#176b46}
.act-captains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.incident-editor{border:1px solid var(--border,#dfe5ec);border-radius:12px;padding:14px;margin-top:4px}
.incident-row{display:grid;grid-template-columns:1fr 1.4fr 1.8fr .7fr auto;gap:10px;align-items:end;padding:12px 0;border-top:1px solid var(--border,#dfe5ec)}
.incident-row input,.incident-row select,.act-captains select,.acts-filters select{width:100%;min-width:0}
@media(max-width:800px){.acts-round-buttons{grid-template-columns:repeat(7,minmax(32px,1fr))}.act-captains{grid-template-columns:1fr}.incident-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Estat de convocatòria a l'acta: caselles visibles al costat de cada jugadora */
.player-status-checks{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 8px;flex:0 0 auto}
.player-status-checks label{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted,#667085);white-space:nowrap}
.player-status-checks input{width:14px!important;height:14px;flex:0 0 14px!important;margin:0;accent-color:var(--accent,#176b46)}
@media(max-width:900px){.dorsal-row{flex-wrap:wrap}.player-status-checks{order:3;width:100%;margin:5px 0 0 0}.dorsal-row input[type=number]{margin-left:auto}}

/* Estadístiques i gràfics de la plataforma */
.stats-bars{display:flex;flex-direction:column;gap:14px;margin-top:12px}.stats-bar-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(90px,1.4fr) 28px;align-items:center;gap:10px}.stats-bar-label{font-size:13px;overflow-wrap:anywhere}.stats-bar-track{height:12px;background:var(--line,#e8edf3);border-radius:999px;overflow:hidden}.stats-bar-fill{height:100%;border-radius:999px;min-width:3px}.stats-bar-fill.goals{background:linear-gradient(90deg,#198754,#4ecb91)}.stats-bar-fill.cards{background:linear-gradient(90deg,#e0a52e,#e65b58)}.stats-bar-row strong{text-align:right;font-variant-numeric:tabular-nums}.stats-bar-row small{grid-column:2 / 4;color:var(--muted,#687386);font-size:11px;margin-top:-7px}@media(max-width:640px){.stats-bar-row{grid-template-columns:minmax(80px,1fr) minmax(60px,1fr) 24px;gap:7px}.stats-bar-label{font-size:12px}}


/* Selector visual d'equips i càrrega d'escuts v8.13 */
.team-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px;margin:18px 0 26px}.team-picker-card{border:1px solid var(--border,#dce3ec);border-radius:16px;padding:12px;background:var(--card,#fff);display:flex;flex-direction:column;align-items:stretch;gap:10px;transition:border-color .15s,box-shadow .15s}.team-picker-card.selected{border-color:var(--primary,#2563eb);box-shadow:0 0 0 2px #2563eb22}.team-picker-select{border:0;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;flex-direction:column;gap:8px;text-align:center;padding:4px;min-width:0}.team-crest{height:82px;width:82px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f1f5f9;color:#64748b;overflow:hidden}.team-crest img{height:100%;width:100%;-o-object-fit:contain;object-fit:contain;padding:5px}.team-picker-select strong{font-size:14px;line-height:1.25;overflow-wrap:anywhere}.team-picker-select small{font-size:11px;color:var(--muted,#64748b)}.logo-upload-label{display:block;text-align:center;cursor:pointer;border:1px dashed var(--border,#cbd5e1);border-radius:9px;padding:7px;font-size:12px;font-weight:600;color:var(--primary,#2563eb)}.logo-upload-label input{display:block;width:100%;max-width:100%;font-size:10px;margin-top:5px;color:var(--muted,#64748b)}@media(max-width:560px){.team-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.team-crest{width:70px;height:70px}}

/* v8.14 · Redisseny visual unificat C.F. Ginesta */
:root{--ginesta:#5c2d73;--ginesta-deep:#321341;--ginesta-soft:#f3eafa;--surface:#fff;--ink:#211a2a;--muted:#74697d;--border:#e7deed}
body{background:radial-gradient(ellipse at 85% 0%,#f1e8f8 0,transparent 31%),#f7f5f9;color:var(--ink)}
.app-shell{background:transparent}
.sidebar{width:258px;background:linear-gradient(180deg,#281132 0%,#321341 48%,#21102c 100%);padding:22px 13px;border-right:1px solid #ffffff10;box-shadow:8px 0 34px #3213410a}
.brand{padding:4px 9px 27px;gap:12px}.logo-mark.small{background:linear-gradient(145deg,#a777c0,#5c2d73);box-shadow:0 7px 18px #160a1d70;border:1px solid #ffffff25;color:#fff}.brand strong{font-size:19px;letter-spacing:.5px;color:#fff}.brand span{font-size:9px;letter-spacing:1.25px;color:#c6afd2}
.side-label{display:none}.sidebar nav{display:grid;gap:3px}.nav-entry{display:grid;gap:3px}.nav-group-label{padding:14px 12px 6px;color:#a78bb5;font-size:9px;font-weight:850;letter-spacing:1.55px}.nav-entry:first-child .nav-group-label{padding-top:0}.nav-item{border:1px solid transparent;color:#d0bfd9;padding:11px 12px;border-radius:11px;gap:11px;font-size:12px;transition:background .18s,border-color .18s,transform .18s}.nav-item svg{opacity:.9}.nav-item:hover{background:#ffffff0d;border-color:#ffffff10;color:#fff;transform:translateX(2px)}.nav-item.selected{background:linear-gradient(100deg,#75458b,#5c2d73);border-color:#b28ac4;color:white;box-shadow:0 7px 18px #170c1f55,inset 3px 0 #e5c7f2}.nav-item i{background:#ffffff20;color:#fff}.side-bottom{border-top-color:#ffffff20;padding:15px 9px 0}.status-dot{background:#6ee7b7;box-shadow:0 0 0 4px #6ee7b71c}.side-bottom strong{color:#fff}.side-bottom span{color:#c2adcD}.side-bottom button:hover{color:#fff}
.main-area{max-width:1720px;padding:30px clamp(18px,3vw,48px) 24px}.topbar{padding:3px 0 20px;border-bottom:1px solid #e7deed;margin-bottom:24px}.topbar h1{font-size:clamp(25px,2.2vw,33px);font-weight:850;letter-spacing:-1.15px;color:#321341}.eyebrow{color:#8b6c98;font-size:10px;letter-spacing:1.8px}.top-actions{gap:12px}.live-dot{background:#e6f8ef;color:#18764e;border:1px solid #c8edd9}.avatar{background:linear-gradient(135deg,#f0e3f7,#d9c0e7);color:#512765;border:1px solid #dec9e8}
.welcome{border-radius:23px;padding:clamp(24px,3vw,38px);background:radial-gradient(circle at 85% 20%,#8b5ca0 0,transparent 26%),linear-gradient(120deg,#321341 0%,#5c2d73 58%,#75458b 100%);box-shadow:0 15px 36px #32134120;border:1px solid #7e5790}.welcome h2{font-size:clamp(23px,2.2vw,31px);letter-spacing:-.9px}.welcome p:not(.eyebrow){color:#eadff0;max-width:580px;line-height:1.7}.eyebrow.light{color:#d7b9e6}.light-btn{border-radius:11px;box-shadow:0 5px 15px #1c09272a;transition:transform .18s,box-shadow .18s}.light-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #1c092735}.welcome-ball{opacity:.16;font-size:120px}
.stat-grid{gap:15px;margin:20px 0}.stat-card{border:1px solid #e9dfed;border-radius:17px;padding:18px;box-shadow:0 4px 16px #32134108;transition:transform .18s,box-shadow .18s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #32134110}.stat-icon{border-radius:12px}.content-grid{gap:18px}.content-card{border:1px solid #e9dfed;border-radius:18px;padding:clamp(16px,1.8vw,24px);box-shadow:0 5px 20px #32134107;transition:border-color .18s}.content-card:hover{border-color:#dac5e4}.section-head{margin-bottom:21px}.section-head h3{color:#321341;font-size:16px;font-weight:800}.section-head p{line-height:1.65;color:#85758c}.count-badge{background:#f4eaf8;border:1px solid #e5d2ed;color:#5c2d73;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:850;white-space:nowrap}
.primary-btn{background:linear-gradient(120deg,#5c2d73,#75458b);border-radius:11px;box-shadow:0 4px 11px #5c2d731b;transition:transform .15s,box-shadow .15s}.primary-btn:hover{background:linear-gradient(120deg,#48205c,#633678);transform:translateY(-1px);box-shadow:0 7px 16px #5c2d732b}.small-btn,.icon-btn{border-radius:10px;transition:background .15s,border-color .15s}.icon-btn:hover{background:#f5edf8;border-color:#d9c1e4;color:#5c2d73}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.stack input:focus{border-color:#9c6db0;box-shadow:0 0 0 3px #f1e5f7}.table-wrap{border:1px solid #eee5f1;border-radius:12px;overflow:auto}.table-wrap table{border-collapse:separate;border-spacing:0}.table-wrap thead{background:#faf6fc}.table-wrap th{color:#7d6587;font-size:10px;text-transform:uppercase;letter-spacing:.65px}.table-wrap td,.table-wrap th{border-bottom:1px solid #f0e8f3}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#fcf9fd}.pill{border-radius:999px}.footer{border-top:1px solid #e9dfed;margin-top:22px;padding-top:18px;color:#95859d}.footer span{color:#a89aaa}
.team-picker-grid{gap:15px}.team-picker-card{border:1px solid #e9dfed;border-radius:17px;background:linear-gradient(180deg,#fff,#fdfafd);box-shadow:0 4px 14px #32134107;transition:transform .18s,border-color .18s,box-shadow .18s}.team-picker-card:hover{transform:translateY(-3px);border-color:#cba9db;box-shadow:0 12px 25px #32134112}.team-picker-card.selected{border-color:#8d5ca2;box-shadow:0 0 0 3px #f1e5f7,0 9px 24px #32134110;background:#fcf8fe}.team-crest{background:radial-gradient(circle,#fff 0,#f7effa 100%);border:1px solid #eee0f4;box-shadow:inset 0 0 0 5px #fff}.team-crest img{-o-object-fit:contain;object-fit:contain}.team-picker-select strong{color:#321341;font-size:13px}.team-picker-select small{color:#927e9a}.logo-upload-label{border-radius:9px;background:#f6eef9;color:#5c2d73;border:1px solid #e6d5ee;font-weight:800}.logo-upload-label:hover{background:#ecdef3}
.round-card-heading{background:linear-gradient(135deg,#f7effa,#fdfaff)}.round-number{background:linear-gradient(145deg,#75458b,#321341);box-shadow:0 3px 9px #32134122}.round-pick.active{background:#5c2d73;border-color:#5c2d73}.stats-bar-fill.goals{background:linear-gradient(90deg,#5c2d73,#b88acb)}.stats-bar-fill.cards{background:linear-gradient(90deg,#d6a13a,#d45d61)}
@media(max-width:1000px){.sidebar{width:224px}.main-area{padding:24px 20px}.nav-group-label{padding-top:11px}}
@media(max-width:680px){.sidebar{background:linear-gradient(120deg,#281132,#43204f);padding:13px 12px}.brand{padding-bottom:12px}.sidebar nav{gap:5px}.nav-entry{display:contents}.nav-group-label{display:none}.nav-item{padding:10px 11px;border-radius:10px}.nav-item:hover{transform:none}.main-area{padding:18px 12px}.topbar{padding-bottom:15px;margin-bottom:18px}.topbar h1{font-size:24px}.welcome{border-radius:17px;padding:22px}.content-card{border-radius:15px}.team-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v8.15: graella d'escuts en dues files de set equips en pantalles grans */
.team-picker-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.team-picker-card{min-width:0;padding:10px 8px}
.team-crest{width:clamp(54px,5.2vw,82px);height:clamp(54px,5.2vw,82px)}
.team-picker-select{gap:7px}
.team-picker-select strong{font-size:12px;line-height:1.2}
.team-picker-select small{font-size:10px;line-height:1.2}
.logo-upload-label{font-size:11px;padding:7px 4px}
@media(max-width:1100px){.team-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:680px){.team-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.team-crest{width:70px;height:70px}}

/* v8.16: acció d’eliminar partits duplicats */
.delete-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#b4233a;border-color:#f0c8ce;background:#fff8f8}.delete-btn:hover{background:#ffebee;border-color:#e9aab4}.round-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}

/* v8.17: identitat visual del C.F. Ginesta */
.brand{align-items:center;gap:12px;padding:8px 9px 30px;border-bottom:1px solid #ffffff16;margin-bottom:22px}
.club-brand-mark{width:48px;height:54px;flex:0 0 48px;display:grid;place-items:center;overflow:hidden;position:relative;clip-path:polygon(50% 0,94% 13%,91% 67%,50% 100%,9% 67%,6% 13%);background:linear-gradient(145deg,#f6d879,#c89532);box-shadow:0 5px 16px #0003}
.club-brand-mark:before{content:"";position:absolute;inset:3px;clip-path:polygon(50% 0,94% 13%,91% 67%,50% 100%,9% 67%,6% 13%);background:#281132}
.club-brand-mark img{position:relative;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;padding:4px;clip-path:polygon(50% 0,94% 13%,91% 67%,50% 100%,9% 67%,6% 13%);background:#fff}
.club-brand-mark span{position:relative;color:#f6d879;font-size:23px;font-weight:900;letter-spacing:-1px}
.brand-copy{min-width:0}.brand-copy strong{font-size:16px;line-height:1.15;letter-spacing:.7px;color:#fff}.brand-copy span{font-size:8px;line-height:1.5;letter-spacing:1.05px;color:#d6c8df;margin-top:5px}.brand-copy small{display:block;font-size:8px;letter-spacing:1.7px;color:#aa8cb8;margin-top:5px}
@media(max-width:680px){.brand{padding:0 6px 15px;margin-bottom:12px}.club-brand-mark{width:40px;height:45px;flex-basis:40px}.brand-copy strong{font-size:14px}}


/* Comptadors de titulars i convocades a l’acta */
.lineup-counts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.lineup-counts span{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border,#dbe2ea);border-radius:999px;background:var(--surface,#f8fafc);font-size:12px;color:var(--text,#1f2937)}
.lineup-counts strong{font-weight:700}

/* v8.20: identificació d'equip a les estadístiques de jugadores */
.team-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:140px}
.team-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border,#e5e7eb);border-radius:999px;background:var(--surface,#f8fafc);font-size:12px;font-weight:600;white-space:nowrap}
.team-tag img{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;border-radius:50%;flex-shrink:0}

/* Escuts compactes als rànquings d’estadístiques */
.stats-team-crest{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;margin-right:6px;flex:0 0 auto}
.stats-bar-label{display:flex;align-items:center;gap:2px}


/* v8.22: acta validation summary */
.act-validation-summary{margin:18px 0;padding:14px 16px;border:1px solid var(--line,#dfe5ed);border-left:4px solid #1b7f52;border-radius:12px;background:var(--surface-soft,#f7f9fc)}
.act-validation-summary>strong{display:block;margin-bottom:10px;font-size:14px}
.act-validation-counts{display:flex;flex-wrap:wrap;gap:8px}
.act-validation-counts span{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#e8f3ed;color:#145c3a;font-size:13px;font-weight:650}
.act-validation-summary p{margin:9px 0 0;color:var(--muted,#687386);font-size:12px}


/* v8.29: icones compactes per diferenciar les targetes i la doble amonestació */
.card-stat-item{display:inline-flex;align-items:center;gap:5px;margin-right:12px;white-space:nowrap}
.card-yellow-icon,.card-red-icon,.double-card-icon i{display:inline-block;width:11px;height:15px;border-radius:1px;box-shadow:0 1px 2px #0002}
.card-yellow-icon{background:linear-gradient(145deg,#ffd45a,#ff9e19)}
.card-red-icon{background:linear-gradient(145deg,#f04e6b,#c91e49)}
.double-card-icon{position:relative;display:inline-block;width:23px;height:17px;vertical-align:middle}
.double-card-icon i{position:absolute;top:1px;width:11px;height:15px}
.double-card-icon i:first-child{left:1px;background:linear-gradient(145deg,#ffd45a,#ff9e19);transform:skewY(-7deg)}
.double-card-icon i:last-child{right:1px;background:linear-gradient(145deg,#f04e6b,#c91e49);transform:skewY(-7deg)}


/* v8.31: indicació clara de jugadores amb fitxa d'una altra categoria */
.external-roster-badge{display:inline-block;margin:3px 0 0 6px;padding:3px 7px;border-radius:999px;background:#fff1dc;color:#9a4b00;font-size:11px;font-weight:700;line-height:1.3}
.external-roster-check{color:#9a4b00;font-weight:600}


/* v8.32 — renovació visual inspirada en el CF Ginesta: antracita, blanc i violeta */
:root{color-scheme:dark;--ginesta-purple:#8b2be2;--ginesta-purple-light:#b879f3;--ginesta-ink:#0d0d14;--ginesta-panel:#15151f;--ginesta-line:#2a2938}
body{background:#0d0d14;color:#f6f4fb}
.app-shell{background:#0d0d14;color:#f6f4fb}
.sidebar{background:linear-gradient(180deg,#17131f 0%,#100f17 100%);border-right:1px solid #30243b;box-shadow:8px 0 30px #0002}
.brand{border-bottom:1px solid #30243b}
.brand-copy strong{color:#fff}.brand-copy span{color:#d8b8f7}.brand-copy small{color:#a77bc5}
.nav-group-label,.side-label{color:#a78ab9}
.nav-item{color:#c9c2d5;border-radius:12px;transition:background .18s ease,color .18s ease}
.nav-item:hover{background:#241a31;color:#fff}.nav-item.selected{background:linear-gradient(100deg,#8425d6,#6520aa);color:#fff;box-shadow:0 8px 22px #7c2ac544}
.side-bottom{border-top:1px solid #30243b;color:#eee}
.main-area{background:radial-gradient(ellipse at 55% -20%,#29183c 0%,transparent 45%),#0d0d14}
.topbar{background:#111019eF;border-bottom:1px solid #2c2436;backdrop-filter:blur(14px)}
.topbar h1{color:#fff}.eyebrow{color:#b78bd9}.live-dot{color:#a8e9c2}.icon-btn{background:#211a2b;border:1px solid #3a2b4a;color:#e8d9f5}.avatar{background:#8b2be2;color:white}
.club-crest-strip{display:flex;align-items:center;gap:14px;min-height:78px;padding:12px 22px;margin:0 0 22px;background:linear-gradient(90deg,#fff 0%,#f5f3f8 100%);border:1px solid #e3dce9;border-radius:0 0 16px 16px;box-shadow:0 8px 24px #0002;color:#24172e;overflow:hidden}
.crest-strip-label{flex:0 0 auto;padding-right:14px;border-right:1px solid #d9d2df;color:#6b4b7e;font-size:10px;font-weight:900;letter-spacing:1.4px}
.crest-strip-track{display:flex;align-items:center;gap:10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#c7b6d7 transparent;width:100%;padding:2px 2px 5px}
.crest-strip-item{display:grid;place-items:center;flex:0 0 54px;width:54px;height:50px;border:1px solid transparent;border-radius:11px;background:#fff;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.crest-strip-item:hover{transform:translateY(-2px);border-color:#d8b8f7;box-shadow:0 4px 12px #41215b15}.crest-strip-item.is-ginesta{border-color:#9c4ae0;background:#f5eaff;box-shadow:0 0 0 2px #8b2be21a}
.crest-strip-item img{width:39px;height:39px;-o-object-fit:contain;object-fit:contain}.crest-strip-empty{font-size:12px;color:#74667f}
.welcome{border:1px solid #573476;background:radial-gradient(ellipse at 80% 15%,#65309a 0%,transparent 38%),linear-gradient(120deg,#34174c 0%,#1b1428 55%,#13131d 100%);box-shadow:0 14px 38px #0003;border-radius:20px;color:#fff;overflow:hidden;position:relative}
.welcome h2{color:#fff}.welcome p{color:#e4d5f1}.welcome-ball{opacity:.28;filter:drop-shadow(0 12px 20px #0005)}
.light-btn,.primary-btn{background:linear-gradient(100deg,#962be5,#7123b9);color:#fff;border:1px solid #a84af0;box-shadow:0 6px 18px #7e25c733}.light-btn:hover,.primary-btn:hover{filter:brightness(1.12)}
.stat-grid{gap:14px}.stat-card,.content-card{background:linear-gradient(145deg,#191923,#14141d);border:1px solid #302d3e;border-radius:17px;box-shadow:0 10px 28px #0002;color:#f6f4fb}
.stat-card:hover{border-color:#62417b}.stat-label,.stat-card small,.section-head p,.subtle{color:#aaa1b8}.stat-card strong{color:#fff}.stat-icon.purple{background:#38214d;color:#c89af5}.stat-icon.blue{background:#202f4b;color:#92baff}.stat-icon.green{background:#1b3c31;color:#8ce0b5}.stat-icon.orange{background:#49301e;color:#ffc17d}
.section-head h3,.content-card h3{color:#fff}.text-btn{color:#c79af1}.quick-action{background:#1a1924;border:1px solid #302d3e;color:#f5f1fa;border-radius:12px}.quick-action:hover{background:#251a32;border-color:#6e438d}.quick-action small{color:#b2a9bf}.quick-icon{background:#322044;color:#c993f4}
.match-list .match-row{border-bottom:1px solid #302d3e}.match-row strong{color:#fff}.match-row span{color:#a9a1b6}.match-row b{background:#2b1d3b;color:#e8d4fb;border:1px solid #563773;border-radius:9px;padding:8px 12px}
.table-wrap{border-color:#302d3e}.table-wrap table th{background:#211a2b;color:#d9c6eb;border-bottom:1px solid #3a2c48}.table-wrap table td{border-bottom:1px solid #292634;color:#e5dfed}.table-wrap table tr:hover td{background:#21192b}.strong-cell{color:#fff!important}
input,select,textarea{background:#11111a!important;color:#f5effa!important;border-color:#3a3348!important}input::-moz-placeholder, textarea::-moz-placeholder{color:#83778f!important}input::placeholder,textarea::placeholder{color:#83778f!important}label{color:#d8cde2}
.count-badge,.pill{background:#2a1d38;color:#d9b7f7;border:1px solid #49305e}.pill.done{background:#15372b;color:#9ae7bd;border-color:#255d45}.pill.pending{background:#403019;color:#ffd18b;border-color:#67451e}
.empty{background:#171620;border:1px dashed #4b3b59;color:#bcb2c9}.empty strong{color:#fff}.empty-inline{color:#bcb2c9}
.alert.success{background:#173428;color:#a8ebc4;border-color:#2a6047}.alert.error{background:#3a2028;color:#ffc1ca;border-color:#6e3441}
.form-grid label,.stack label{color:#d7cbe2}.form-end{border-color:#302d3e}
.team-picker-select{background:#181722;border-color:#302d3e;color:#f4eff8}.team-picker-select:hover,.team-picker-select[aria-pressed=true]{border-color:#9c4ae0;background:#271a35}
.login-shell{background:radial-gradient(ellipse at top left,#43215f 0%,transparent 48%),#0d0d14}.login-card{background:#181620;border:1px solid #3a2a4a;color:#f6f4fb;box-shadow:0 24px 80px #0005}.login-card h1{color:#fff}.login-card p{color:#bcb1ca}.login-card input{background:#101018!important}
@media(max-width:900px){.club-crest-strip{padding:10px 12px;gap:9px}.crest-strip-item{flex-basis:46px;width:46px;height:44px}.crest-strip-item img{width:34px;height:34px}.crest-strip-label{font-size:9px;padding-right:9px}}

/* v8.33 — zona de consulta per a pares i entrenadores */
.portal-page{min-height:100vh;background:#100c16;color:#f8f5fb;padding:0 clamp(14px,3vw,38px) 42px;font-family:inherit}.portal-top{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}.portal-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:1.5px}.portal-brand small{display:block;color:#b8a6c7;font-size:10px;letter-spacing:2px;margin-top:3px}.portal-mark{display:grid;place-items:center;width:60px;height:60px;border-radius:19px;background:linear-gradient(145deg,#a855f7,#57248b);font-size:30px;font-weight:950;color:white;box-shadow:0 8px 30px #8b35c955}.portal-mark.small{width:42px;height:42px;border-radius:13px;font-size:22px}.portal-mark img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;padding:5px;border-radius:inherit}.portal-mark.small img{padding:3px}.club-mark img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;padding:4px;border-radius:inherit}.portal-actions{display:flex;align-items:center;gap:10px}.portal-actions select,.portal-logout{border:1px solid #44354f;background:#20172a;color:#f8f5fb;border-radius:10px;padding:10px 12px}.portal-logout{display:flex;align-items:center;gap:7px;cursor:pointer}.portal-crest-strip{max-width:1400px;margin:0 auto 25px;background:linear-gradient(110deg,#1b1422 0%,#21172b 55%,#18121f 100%);border:1px solid #35283f;border-radius:14px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow-x:auto;min-height:72px;box-shadow:0 8px 24px #0002;scrollbar-color:#70428c #21172b;scrollbar-width:thin}.portal-crest-strip button{flex:0 0 52px;height:50px;display:grid;place-items:center;border:2px solid transparent;border-radius:10px;background:#241a2e;cursor:pointer;transition:background .16s,border-color .16s,transform .16s}.portal-crest-strip button:hover{background:#30203e;border-color:#604078;transform:translateY(-1px)}.portal-crest-strip button.active{border-color:#a855f7;background:#38214d;box-shadow:0 0 0 2px #a855f722}.portal-crest-strip img{width:43px;height:43px;-o-object-fit:contain;object-fit:contain}.portal-hero{max-width:1400px;margin:0 auto 20px;padding:clamp(22px,4vw,44px);border:1px solid #483251;border-radius:24px;background:radial-gradient(ellipse at 90% 0%,#562d6c 0,transparent 48%),linear-gradient(120deg,#25182e,#17111f 65%);display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:230px}.portal-kicker{color:#c084fc;font-size:11px;letter-spacing:2px;font-weight:900;margin:0 0 10px}.portal-hero h1{font-size:clamp(30px,5vw,52px);letter-spacing:-1.8px;line-height:1.05;margin:0 0 12px}.portal-hero p:not(.portal-kicker){color:#cbbbd4;margin:0}.portal-hero-crest{width:clamp(100px,14vw,160px);height:clamp(100px,14vw,160px);-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 12px 24px #0006)}.portal-chips{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.portal-chips span{display:flex;align-items:center;gap:6px;border:1px solid #60446e;background:#ffffff08;padding:7px 10px;border-radius:999px;font-size:12px;color:#e9d9f5}.portal-metrics{max-width:1400px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.portal-metrics article{border:1px solid #35283f;background:#1b1422;border-radius:17px;padding:18px;display:grid;gap:8px}.portal-metrics article span{color:#c084fc}.portal-metrics small{color:#b8a6c7}.portal-metrics strong{font-size:30px}.portal-columns{max-width:1400px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.portal-card{border:1px solid #35283f;background:#1b1422;border-radius:19px;padding:22px;min-width:0}.portal-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.portal-section-title h2{font-size:21px;margin:0}.portal-section-title>svg{color:#c084fc}.portal-next{background:linear-gradient(120deg,#33203e,#24182d);border:1px solid #4a3455;border-radius:15px;padding:16px;margin-bottom:12px}.portal-next>small,.portal-match>small{color:#b8a6c7;font-size:11px}.portal-fixture{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:16px 0;text-align:center;font-weight:800}.portal-fixture b{color:#c084fc;font-size:12px}.portal-match{display:grid;grid-template-columns:55px minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;border-top:1px solid #34283c;padding:13px 0;font-size:12px}.portal-match span:last-child{text-align:right}.portal-match b{font-size:13px;white-space:nowrap}.portal-scorer{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #34283c}.portal-rank{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#33213f;color:#d8b4fe;font-weight:900}.portal-scorer>div{flex:1;min-width:0}.portal-scorer strong,.portal-scorer small{display:block}.portal-scorer small{font-size:11px;color:#b8a6c7;margin-top:4px}.portal-scorer>b{font-size:22px;color:#d8b4fe}.portal-scorer>b small{display:inline;font-size:9px}.portal-note,.portal-empty{font-size:12px;color:#b8a6c7;line-height:1.6}.portal-login{width:min(430px,100%);margin:10vh auto 0;padding:34px;border-radius:23px;border:1px solid #493451;background:linear-gradient(145deg,#211629,#17111f);box-shadow:0 20px 70px #0005}.portal-login>.portal-mark{margin-bottom:22px}.portal-login h1{font-size:32px;margin:4px 0 10px}.portal-login>p:not(.portal-kicker){color:#b8a6c7;line-height:1.6}.portal-login form{display:grid;gap:15px;margin:22px 0}.portal-login label{display:grid;gap:7px;font-size:12px;color:#e9d9f5}.portal-login input{width:100%;box-sizing:border-box;border:1px solid #493451;background:#100c16;color:white;padding:12px;border-radius:10px}.portal-button{display:flex;align-items:center;justify-content:center;gap:8px;background:#9333ea;border:0;color:white;font-weight:800;border-radius:11px;padding:13px;cursor:pointer}.portal-button:disabled{opacity:.6}.portal-login>small{display:block;color:#9e8aa9;font-size:11px;line-height:1.5}.portal-error{max-width:1400px;margin:10px auto;color:#fecaca;background:#7f1d1d33;border:1px solid #b91c1c;padding:12px;border-radius:10px}.portal-login .portal-error{margin:0}.portal-login .portal-kicker{margin-top:0}@media(max-width:800px){.portal-columns{grid-template-columns:1fr}.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-hero{min-height:180px}.portal-top{align-items:flex-start;flex-wrap:wrap}.portal-actions{width:100%}.portal-actions select{flex:1;min-width:0}}@media(max-width:450px){.portal-page{padding-left:12px;padding-right:12px}.portal-hero{padding:20px}.portal-hero-crest{width:78px;height:78px}.portal-hero h1{font-size:29px}.portal-metrics article{padding:13px}.portal-metrics strong{font-size:25px}.portal-card{padding:16px}.portal-match{grid-template-columns:42px minmax(0,1fr) auto minmax(0,1fr);gap:6px;font-size:10px}.portal-login{padding:25px}}
.portal-calendar-scroll{max-height:390px;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-color:#70428c #21172b;scrollbar-width:thin}.portal-calendar-scroll .portal-match:first-child{border-top:1px solid #34283c}.portal-subsection-title{margin-top:26px;padding-top:20px;border-top:1px solid #493451}.portal-results-grid{margin-top:18px}.portal-results-grid .portal-match{grid-template-columns:55px minmax(0,1fr) auto minmax(0,1fr)}

.portal-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #4a3455;margin-top:14px;padding-top:13px}.portal-form-label{font-size:10px;letter-spacing:1.1px;font-weight:900;color:#cbbbd4}.portal-form-balls{display:flex;align-items:center;gap:7px}.portal-form-ball{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:11px;font-weight:950;color:#fff;border:1px solid #ffffff25;box-shadow:inset 0 0 0 2px #ffffff10}.portal-form-ball.v{background:#168653}.portal-form-ball.e{background:#b7791f}.portal-form-ball.d{background:#b83245}.portal-form-legend{display:flex;align-items:center;gap:5px;font-size:10px;color:#b8a6c7}.portal-form-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:5px}.portal-form-legend i.v{background:#168653}.portal-form-legend i.e{background:#b7791f}.portal-form-legend i.d{background:#b83245}.portal-form-empty{font-size:11px;color:#b8a6c7}

/* v8.36 gràfiques resum zona de l'equip */
.portal-graphs{margin-top:18px}.portal-chart-legend{display:flex;gap:16px;color:#b8a6c7;font-size:11px;margin:-5px 0 14px}.portal-chart-legend span{display:flex;align-items:center;gap:6px}.portal-chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.portal-chart-legend i.for,.portal-chart-bar.for{background:#a855f7}.portal-chart-legend i.against,.portal-chart-bar.against{background:#42b8a5}.portal-chart-row{display:grid;grid-template-columns:28px minmax(0,1fr) 38px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid #34283c}.portal-chart-row>small{color:#b8a6c7;font-size:11px}.portal-chart-bars{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.portal-chart-bar{height:10px;min-width:20px;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;transition:width .2s}.portal-chart-bar b{font-size:9px;color:#160f1c;margin-right:4px}.portal-chart-score{text-align:right;font-size:12px;font-weight:800}.portal-result-summary{display:flex;flex-direction:column;gap:17px;margin-top:25px}.portal-result-row{display:grid;grid-template-columns:75px minmax(0,1fr) 25px;gap:10px;align-items:center;font-size:12px}.portal-result-row>span{color:#d8cde0}.portal-result-row>b{text-align:right}.portal-result-track{height:12px;background:#35283f;border-radius:999px;overflow:hidden}.portal-result-track i{height:100%;display:block;border-radius:999px}.portal-result-track .win{background:#168653}.portal-result-track .draw{background:#b7791f}.portal-result-track .loss{background:#b83245}@media(max-width:760px){.portal-graphs{grid-template-columns:1fr}.portal-card{padding:16px}.portal-result-row{grid-template-columns:65px minmax(0,1fr) 22px}}

/* v8.38: millor alineació d’escuts i forma dels dos equips */
.portal-crest-strip button{align-items:center;justify-content:center;flex-shrink:0}
.portal-crest-strip img{display:block;margin:auto;-o-object-position:center;object-position:center}
.portal-fixture-side{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;min-width:0}
.portal-fixture-side>span{min-height:2.4em;display:flex;align-items:center;justify-content:center}
.portal-fixture-side .portal-form-balls{justify-content:center;flex-wrap:wrap;gap:5px;min-height:27px}
.portal-fixture{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px}
.portal-form{justify-content:flex-end;margin-top:8px;padding-top:8px}
.portal-football-icon{font-size:25px;line-height:1;filter:drop-shadow(0 2px 5px #0005)}
@media(max-width:520px){.portal-fixture-side>span{font-size:12px}.portal-fixture-side .portal-form-balls{gap:3px}.portal-fixture-side .portal-form-ball{width:22px;height:22px;font-size:9px}.portal-crest-strip{justify-content:flex-start}}

/* v8.39: calendari alineat i golejadores més compactes */
.portal-calendar-scroll .portal-match,
.portal-results-grid .portal-match {
  grid-template-columns: 54px minmax(0, 1fr) 58px minmax(0, 1fr);
  gap: 9px;
  min-width: 0;
}
.portal-calendar-scroll .portal-match > span,
.portal-results-grid .portal-match > span {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.portal-calendar-scroll .portal-match > span:nth-child(2),
.portal-results-grid .portal-match > span:nth-child(2) { text-align: left; }
.portal-calendar-scroll .portal-match > b,
.portal-results-grid .portal-match > b { text-align: center; }
.portal-calendar-scroll .portal-match > span:last-child,
.portal-results-grid .portal-match > span:last-child { text-align: right; }
.portal-scorer { gap: 9px; padding: 9px 0; }
.portal-rank { width: 26px; height: 26px; border-radius: 8px; font-size: 13px; flex: 0 0 26px; }
.portal-scorer strong { font-size: 13px; line-height: 1.25; }
.portal-scorer small { font-size: 10px; margin-top: 3px; }
.portal-scorer > b { font-size: 18px; white-space: nowrap; }
.portal-scorer > b small { font-size: 8px; }
.portal-section-title h2 { font-size: 19px; }
@media(max-width:450px) {
  .portal-calendar-scroll .portal-match,
  .portal-results-grid .portal-match { grid-template-columns: 38px minmax(0,1fr) 42px minmax(0,1fr); gap: 5px; }
  .portal-scorer strong { font-size: 12px; }
  .portal-scorer > b { font-size: 16px; }
}


/* v8.41: poliment general de la zona d'equip */
.portal-top { padding-top: 14px; padding-bottom: 14px; }
.portal-crest-strip { justify-content: flex-start; gap: 10px; padding: 9px 12px; }
.portal-crest-strip button { flex-basis: 50px; height: 48px; }
.portal-crest-strip img { width: 40px; height: 40px; }
.portal-card { box-shadow: 0 10px 30px #00000012; }
.portal-section-title { align-items: flex-start; }
.portal-section-title > svg { flex: 0 0 auto; }
.portal-next { box-shadow: inset 0 1px 0 #ffffff08; }
.portal-fixture-side > span { line-height: 1.35; overflow-wrap: anywhere; }
.portal-calendar-scroll { scrollbar-gutter: stable; }
.portal-calendar-scroll .portal-match,
.portal-results-grid .portal-match { grid-template-columns: 54px minmax(0,1fr) 54px minmax(0,1fr); gap: 8px; min-height: 42px; }
.portal-calendar-scroll .portal-match > span,
.portal-results-grid .portal-match > span { line-height: 1.35; }
.portal-match b { font-variant-numeric: tabular-nums; }
.portal-metrics article { transition: border-color .18s, transform .18s; }
.portal-metrics article:hover { border-color: #604078; transform: translateY(-2px); }
.portal-scorer { min-height: 45px; }
.portal-scorer > div { overflow: hidden; }
.portal-scorer strong { overflow-wrap: anywhere; }
.portal-note { margin-top: 10px; }
.portal-form-ball { flex: 0 0 auto; }
.portal-chart-row { min-width: 0; }
.portal-chart-bars { min-width: 0; }
.portal-result-track i { min-width: 0; }
@media(max-width:800px) {
  .portal-columns { gap: 14px; }
  .portal-card { padding: 18px; }
  .portal-hero { gap: 14px; }
}
@media(max-width:520px) {
  .portal-crest-strip { margin-bottom: 16px; }
  .portal-hero { margin-bottom: 14px; }
  .portal-hero-crest { flex: 0 0 70px; }
  .portal-calendar-scroll .portal-match,
  .portal-results-grid .portal-match { grid-template-columns: 36px minmax(0,1fr) 40px minmax(0,1fr); gap: 4px; padding: 11px 0; font-size: 10px; }
  .portal-calendar-scroll .portal-match > small,
  .portal-results-grid .portal-match > small { font-size: 9px; }
  .portal-section-title h2 { font-size: 17px; line-height: 1.3; }
  .portal-scorer { gap: 8px; }
  .portal-scorer small { line-height: 1.3; }
  .portal-fixture { gap: 6px; }
  .portal-next { padding: 12px; }
}


/* v8.42: centrat consistent dels escuts a la franja superior */
.portal-crest-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  overflow: visible;
}
.portal-crest-strip button {
  box-sizing: border-box;
  flex: 0 0 52px;
  width: 52px;
  height: 50px;
  padding: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.portal-crest-strip img {
  display: block;
  width: 40px;
  height: 40px;
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  margin: 0;
}
@media (max-width: 520px) {
  .portal-crest-strip { justify-content: center; gap: 8px; padding: 10px; }
  .portal-crest-strip button { flex-basis: 48px; width: 48px; height: 46px; }
  .portal-crest-strip img { width: 36px; height: 36px; }
}

/* Resum general i comptadors de targetes */
.portal-card-yellow { color: #facc15; font-size: 20px; line-height: 1; }
.portal-card-red { color: #ef4444; font-size: 20px; line-height: 1; }
.portal-general-note { color: var(--muted, #a99bb7); font-size: .85rem; }

/* v8.44 — resum disciplinari per equip */
.portal-discipline-card{margin-top:22px}
.portal-discipline-totals{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 18px}
.portal-discipline-totals>span{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:9px 12px;color:var(--muted,#b9afc6);font-size:.9rem}
.portal-discipline-totals b{color:var(--foreground,#fff);font-size:1.05rem}
.portal-discipline-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.portal-discipline-lists h3{font-size:.95rem;margin:0 0 10px;display:flex;align-items:center;gap:7px}
.portal-discipline-player{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;border-bottom:1px solid rgba(255,255,255,.07);font-size:.9rem}
.portal-discipline-player span{min-width:0;overflow-wrap:anywhere}
.portal-discipline-player b{min-width:28px;text-align:center;border-radius:8px;background:rgba(255,255,255,.08);padding:4px 7px}
.portal-card-yellow{color:#facc15;font-style:normal}.portal-card-red{color:#fb7185;font-style:normal}
@media(max-width:640px){.portal-discipline-lists{grid-template-columns:minmax(0,1fr);gap:18px}.portal-discipline-totals>span{flex:1;justify-content:center}}

/* Classificació de lliga a la vista General */
.portal-standings-card{margin-bottom:18px;min-width:0}.portal-standings-scroll{width:100%;overflow-x:auto}.portal-standings{width:100%;min-width:650px;border-collapse:collapse}.portal-standings th,.portal-standings td{padding:11px 9px;text-align:center;border-bottom:1px solid #33263d;font-size:12px;white-space:nowrap}.portal-standings th{color:#b8a6c7;background:#21182a;font-size:10px;letter-spacing:.5px}.portal-standings td{color:#eee6f4}.portal-standings tbody tr:nth-child(even){background:#1c1423}.portal-standings tbody tr:hover{background:#2b1d36}.portal-standing-team{display:flex;align-items:center;gap:9px;text-align:left;min-width:180px}.portal-standing-team img{width:27px;height:27px;-o-object-fit:contain;object-fit:contain;flex:0 0 27px}.portal-standing-team strong{font-size:12px;white-space:normal}.portal-standings td:first-child{color:#bca8cd;font-weight:700}.portal-standings td:last-child{font-size:14px;color:#d8b4fe;font-weight:800}.portal-standings-card .portal-note{margin-top:12px}

/* v8.48: access directe a la vista general i classificació sempre visible */
.portal-crest-strip .portal-general-crest{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:58px;padding:5px 7px;color:var(--text,#f5efff);}
.portal-crest-strip .portal-general-emblem{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#9b4de2,#4d1b77);color:#fff;}
.portal-crest-strip .portal-general-crest small{font-size:8px;line-height:1.1;font-weight:800;letter-spacing:.06em;color:#d8b4fe;}
.portal-crest-strip .portal-general-crest.active .portal-general-emblem{outline:2px solid #c084fc;outline-offset:2px;}
.portal-standing-selected{background:rgba(168,85,247,.14);}
.portal-standing-selected td:first-child{color:#d8b4fe;font-weight:800;}

/* v8.49: compact classification and discipline grouped by team */
.portal-standings-card{padding:18px;margin-bottom:16px}
.portal-standings-card .portal-section-title{margin-bottom:10px}
.portal-standings-card .portal-section-title h2{font-size:1.12rem;line-height:1.25}
.portal-standings th,.portal-standings td{padding:7px 7px;font-size:11px}
.portal-standings th{font-size:9px}
.portal-standing-team{gap:7px;min-width:155px}
.portal-standing-team img{width:22px;height:22px;flex-basis:22px}
.portal-standing-team strong{font-size:11px}
.portal-standings td:last-child{font-size:12px}
.portal-standings-card .portal-note{font-size:.75rem;margin-top:8px}
.portal-general-discipline{margin-top:16px}
.portal-general-discipline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portal-general-team-discipline{min-width:0;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.018);border-radius:12px;padding:12px}
.portal-general-team-title{display:flex;align-items:center;gap:8px;padding-bottom:9px;margin-bottom:3px;border-bottom:1px solid rgba(255,255,255,.1)}
.portal-general-team-title img{width:25px;height:25px;-o-object-fit:contain;object-fit:contain;flex:0 0 25px}
.portal-general-team-title strong{font-size:.88rem;flex:1;min-width:0}
.portal-general-team-title>span{font-size:.75rem;color:var(--muted,#b9afc6);white-space:nowrap}
.portal-general-card-player,.portal-team-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.82rem}
.portal-general-card-player:last-child,.portal-team-card-row:last-child{border-bottom:0}
.portal-general-card-player>span:first-child,.portal-team-card-row>strong{min-width:0;overflow-wrap:anywhere;font-weight:500}
.portal-player-cards,.portal-team-card-row>span{display:flex;align-items:center;gap:8px;white-space:nowrap}
.yellow-card-count,.red-card-count{font-size:.78rem;font-weight:700;border-radius:6px;padding:3px 5px;background:rgba(255,255,255,.05)}
.portal-discipline-card{margin-top:16px;padding:18px}
.portal-discipline-card .portal-section-title h2{font-size:1.12rem}
.portal-team-card-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:24px;column-gap:24px}
@media(max-width:760px){.portal-general-discipline-grid,.portal-team-card-rows{grid-template-columns:minmax(0,1fr)}}

/* v8.50: taula compacta d'estadístiques individuals */
.portal-player-stats-scroll{width:100%;overflow-x:auto;border:1px solid var(--border,#3b2b48);border-radius:12px}
.portal-player-stats-table{width:100%;border-collapse:collapse;min-width:720px;font-size:.84rem}
.portal-player-stats-table th,.portal-player-stats-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border,#3b2b48);white-space:nowrap}
.portal-player-stats-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#c4a8d9;background:rgba(151,71,207,.08)}
.portal-player-stats-table tbody tr:last-child td{border-bottom:0}
.portal-player-stats-table tbody tr:hover{background:rgba(151,71,207,.07)}
.portal-roster-status,.portal-external-status,.portal-unknown-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:.72rem}
.portal-roster-status{background:rgba(74,222,128,.12);color:#86efac}
.portal-external-status{background:rgba(250,204,21,.12);color:#fde047}
.portal-unknown-status{background:rgba(196,181,253,.1);color:#c4b5fd}

/* v8.52: disciplina compacta en dues columnes, una per equip */
.portal-discipline-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.portal-discipline-column{min-width:0;border:1px solid var(--portal-border,rgba(190,150,220,.16));border-radius:12px;padding:14px;background:rgba(255,255,255,.015)}
.portal-discipline-column h3{margin:0 0 10px;font-size:15px;font-weight:700}
.portal-discipline-column .portal-team-card-rows{display:flex;flex-direction:column;gap:0}
.portal-discipline-column .portal-team-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid rgba(190,150,220,.12)}
.portal-discipline-column .portal-team-card-row:last-child{border-bottom:0}
.portal-discipline-column .portal-team-card-row strong{font-size:13px;font-weight:600}
.portal-discipline-column .portal-team-card-row span{display:flex;gap:5px;flex-shrink:0}
.portal-discipline-column .yellow-card-count,.portal-discipline-column .red-card-count{display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}
@media(max-width:760px){.portal-discipline-columns{grid-template-columns:minmax(0,1fr)}}

/* v8.53: acció clara per treure una jugadora només de l'acta en edició */
.act-remove-player{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-color:rgba(248,113,113,.35);color:#fca5a5;white-space:nowrap}
.act-remove-player:hover{background:rgba(248,113,113,.10);border-color:rgba(248,113,113,.65)}

/* v8.54: coherència visual i llegibilitat de noms al portal d'equip */
.portal-general-card-player>span:first-child,.portal-team-card-row>strong,.portal-player-stats-table td:first-child strong,.portal-scorer strong{color:#fff}
.portal-player-stats-table td{color:#e8e1ef}
.portal-player-stats-table td:first-child strong{font-weight:650}
.portal-player-stats-table tbody tr:hover{background:rgba(168,85,247,.11)}
.portal-discipline-column h3{color:#f8f5fb}
.portal-general-team-title strong{color:#f8f5fb}
.portal-player-stats-table th{text-align:left}

/* v8.55 — pròxim partit destacat i compte enrere */
.portal-next-feature{max-width:1400px;margin:0 auto 20px;background:radial-gradient(ellipse at 50% 0%,#48245f 0,transparent 65%),linear-gradient(125deg,#211629,#17111f);border-color:#68427b;box-shadow:0 12px 36px #0003}
.portal-next-feature-date{margin:-6px 0 20px;color:#d8c5e6;font-size:13px;text-align:center;text-transform:capitalize}
.portal-next-feature-fixture{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:22px;max-width:900px;margin:0 auto 22px}
.portal-next-feature-team{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;min-width:0}
.portal-next-feature-team img,.portal-next-feature-placeholder{width:clamp(68px,9vw,104px);height:clamp(68px,9vw,104px);-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 8px 14px #0005)}
.portal-next-feature-placeholder{display:grid;place-items:center;border:1px solid #5a3b6b;border-radius:50%;background:#2b1c37;color:#e9d5ff;font-size:34px;font-weight:900}
.portal-next-feature-team strong{color:#fff;font-size:clamp(14px,2vw,19px);line-height:1.3;overflow-wrap:anywhere}
.portal-next-feature-team small{color:#c084fc;font-size:10px;font-weight:900;letter-spacing:1.7px}
.portal-feature-form-balls{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap;min-height:27px;margin-top:2px}.portal-feature-form-balls:empty{display:none}.portal-feature-form-balls .portal-form-ball{width:24px;height:24px;font-size:10px}
.portal-next-feature-vs{color:#d8b4fe;font-weight:950;font-size:clamp(16px,2vw,24px);padding:12px;border:1px solid #523662;border-radius:14px;background:#120d19}
.portal-countdown{max-width:650px;margin:0 auto;padding:15px 18px;border:1px solid #493252;border-radius:15px;background:#100c16a8;text-align:center}
.portal-countdown-label{display:block;color:#c084fc;font-size:10px;font-weight:900;letter-spacing:2px;margin-bottom:12px}
.portal-countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.portal-countdown-units>div{display:grid;gap:3px;padding:8px 4px;border-radius:10px;background:#25182f}
.portal-countdown-units strong{font-size:clamp(22px,4vw,34px);font-variant-numeric:tabular-nums;color:#fff;line-height:1.1}
.portal-countdown-units small{font-size:10px;color:#cbbbd4}
@media(max-width:520px){.portal-next-feature{padding:16px}.portal-next-feature-fixture{gap:8px}.portal-next-feature-team img,.portal-next-feature-placeholder{width:60px;height:60px}.portal-next-feature-vs{padding:8px;font-size:13px}.portal-feature-form-balls{gap:3px}.portal-feature-form-balls .portal-form-ball{width:21px;height:21px;font-size:9px}.portal-countdown{padding:12px 8px}.portal-countdown-units{gap:5px}.portal-countdown-units>div{padding:8px 2px}}


/* v8.56 — mateixa mida i estructura per targetes i plantilla */
.portal-roster-discipline-layout{align-items:stretch;margin-top:16px;margin-bottom:16px;grid-template-columns:repeat(2,minmax(0,1fr));}
.portal-roster-discipline-layout>.portal-card{height:100%;box-sizing:border-box;min-width:0;}
.portal-roster-discipline-layout .portal-section-title{min-height:44px;align-items:flex-start;}
.portal-roster-discipline-layout .portal-section-title h2{font-size:1.12rem;line-height:1.3;}
.portal-roster-discipline-layout .portal-discipline-columns{grid-template-columns:minmax(0,1fr);gap:12px;}
.portal-roster-discipline-layout .portal-discipline-column{background:rgba(255,255,255,.018);border-color:#3b2b48;}
.portal-roster-discipline-layout .portal-team-card-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;}
.portal-roster-discipline-layout .portal-team-card-row strong{color:#fff;line-height:1.3;}
.portal-roster-list{display:flex;flex-direction:column;}
.portal-roster-player{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;}
.portal-roster-player>div{min-width:0;}
.portal-roster-player strong{color:#fff;line-height:1.3;}
.portal-roster-player>div small{color:#c7b7d2;line-height:1.4;}
.portal-roster-player>b{font-size:18px;white-space:nowrap;}
.portal-roster-cards{grid-column:2 / -1;color:#e9d5ff;font-size:11px;}
@media(max-width:800px){.portal-roster-discipline-layout{grid-template-columns:minmax(0,1fr);}}

/* v8.58 — graella coherent: amplades, separacions i classificació sense desbordar */
.portal-page{--portal-gap:16px;}
.portal-page .portal-metrics,
.portal-page .portal-columns,
.portal-page .portal-general-discipline-grid,
.portal-page .portal-roster-discipline-layout,
.portal-page .portal-discipline-columns,
.portal-page .portal-graphs{gap:var(--portal-gap);}
.portal-page .portal-card,
.portal-page .portal-hero,
.portal-page .portal-metrics,
.portal-page .portal-columns,
.portal-page .portal-standings-card,
.portal-page .portal-general-discipline{width:100%;max-width:1400px;min-width:0;box-sizing:border-box;}
.portal-page .portal-columns>* ,
.portal-page .portal-general-discipline-grid>* ,
.portal-page .portal-roster-discipline-layout>*{min-width:0;max-width:100%;box-sizing:border-box;}
.portal-page .portal-standings-card{overflow:hidden;padding:clamp(12px,1.5vw,20px);}
.portal-page .portal-standings-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;}
.portal-page .portal-standings{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;}
.portal-page .portal-standings th,
.portal-page .portal-standings td{padding:8px 4px;font-size:clamp(9px,.78vw,12px);overflow:hidden;text-overflow:ellipsis;}
.portal-page .portal-standings th:first-child,
.portal-page .portal-standings td:first-child{width:5%;}
.portal-page .portal-standings th:nth-child(2),
.portal-page .portal-standings td:nth-child(2){width:36%;text-align:left;}
.portal-page .portal-standing-team{min-width:0;max-width:100%;gap:6px;}
.portal-page .portal-standing-team img{width:clamp(17px,2vw,25px);height:clamp(17px,2vw,25px);flex:0 0 clamp(17px,2vw,25px);}
.portal-page .portal-standing-team strong{display:block;min-width:0;overflow-wrap:anywhere;white-space:normal;font-size:clamp(9px,.8vw,12px);}
.portal-page .portal-standings td:last-child{font-size:clamp(10px,.9vw,14px);}
@media(max-width:760px){
 .portal-page{--portal-gap:12px;}
 .portal-page .portal-standings th,.portal-page .portal-standings td{padding:7px 2px;font-size:9px;}
 .portal-page .portal-standings th:nth-child(2),.portal-page .portal-standings td:nth-child(2){width:34%;}
 .portal-page .portal-standing-team{gap:4px;}
 .portal-page .portal-standing-team strong{font-size:9px;}
}


/* v8.59 — correcció de centrament i graella uniforme després de revisar v8.58 */
.portal-page{--portal-gap:16px;}
.portal-page .portal-top,
.portal-page .portal-crest-strip,
.portal-page .portal-hero,
.portal-page .portal-metrics,
.portal-page .portal-standings-card,
.portal-page .portal-general-discipline,
.portal-page .portal-columns{width:100%;max-width:1400px;margin-left:auto!important;margin-right:auto!important;}
.portal-page .portal-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--portal-gap);margin-top:0;margin-bottom:var(--portal-gap);}
.portal-page .portal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--portal-gap);align-items:stretch;margin-top:var(--portal-gap);margin-bottom:var(--portal-gap);}
.portal-page .portal-columns>.portal-card{width:100%;min-width:0;margin:0;align-self:stretch;}
.portal-page .portal-general-discipline{margin-top:var(--portal-gap);margin-bottom:var(--portal-gap);}
.portal-page .portal-general-discipline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--portal-gap);}
.portal-page .portal-general-team-discipline{width:100%;min-width:0;margin:0;box-sizing:border-box;}
.portal-page .portal-standings-card{display:block;position:relative;left:auto;right:auto;transform:none;margin-top:var(--portal-gap);margin-bottom:var(--portal-gap);}
.portal-page .portal-standings-scroll{display:block;width:100%;max-width:100%;margin:0 auto;overflow-x:auto;}
.portal-page .portal-standings{width:100%;max-width:100%;min-width:0;table-layout:fixed;margin:0 auto;}
.portal-page .portal-standings th,.portal-page .portal-standings td{box-sizing:border-box;}
.portal-page .portal-standings th:nth-child(2),.portal-page .portal-standings td:nth-child(2){width:34%;}
.portal-page .portal-card{margin-bottom:0;}
.portal-page .portal-card .portal-section-title{margin-bottom:var(--portal-gap);}
@media(max-width:760px){
 .portal-page{--portal-gap:12px;}
 .portal-page .portal-columns{grid-template-columns:minmax(0,1fr);}
 .portal-page .portal-general-discipline-grid{grid-template-columns:minmax(0,1fr);}
 .portal-page .portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
 .portal-page .portal-standings th,.portal-page .portal-standings td{padding:7px 3px;font-size:9px;}
 .portal-page .portal-standings th:nth-child(2),.portal-page .portal-standings td:nth-child(2){width:34%;}
}

/* v8.60 — bombolles separades i simètriques per a Ginesta i rival */
.portal-page .portal-team-rival-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;margin-block:16px;}
.portal-page .portal-team-rival-panels>.portal-card{width:100%;min-width:0;max-width:none;height:100%;box-sizing:border-box;}
.portal-page .portal-team-rival-panels .portal-panel-team-heading{margin:0 0 10px;color:#e9d5ff;font-size:13px;font-weight:800;}
.portal-page .portal-team-rival-panels .portal-team-card-rows,.portal-page .portal-team-rival-panels .portal-roster-list{min-width:0;width:100%;}
.portal-page .portal-team-rival-panels .portal-team-card-row{grid-template-columns:28px minmax(0,1fr) auto;gap:9px;}
.portal-page .portal-team-rival-panels .portal-team-card-row strong{color:#fff;overflow-wrap:anywhere;}
.portal-page .portal-team-rival-panels .portal-roster-player{grid-template-columns:30px minmax(0,1fr) auto;gap:10px;}
.portal-page .portal-team-rival-panels .portal-roster-player>div{min-width:0;}
.portal-page .portal-team-rival-panels .portal-roster-player strong{color:#fff;overflow-wrap:anywhere;}
@media(max-width:800px){.portal-page .portal-team-rival-panels{grid-template-columns:minmax(0,1fr);gap:12px;}}


/* v8.61 — resum de targetes al costat de les mètriques de temporada */
.portal-page .portal-metrics .portal-metric-cards{align-content:center;gap:10px;min-width:0;}
.portal-page .portal-metric-card-counts{display:flex;align-items:center;gap:clamp(12px,2vw,24px);flex-wrap:wrap;}
.portal-page .portal-metric-card-counts>span{display:inline-flex;align-items:center;gap:8px;}
.portal-page .portal-metric-card-counts strong{font-size:30px;line-height:1;color:#fff;}
.portal-page .portal-yellow-card-icon,.portal-page .portal-red-card-icon{display:inline-block;width:14px;height:20px;border-radius:3px;box-shadow:0 0 0 1px #ffffff30;flex:0 0 auto;}
.portal-page .portal-yellow-card-icon{background:#facc15;}
.portal-page .portal-red-card-icon{background:#ef4444;}
.portal-page .portal-metrics .portal-metric-cards>small{color:#b8a6c7;}
@media(max-width:450px){.portal-page .portal-metric-card-counts{gap:10px}.portal-page .portal-metric-card-counts strong{font-size:25px}.portal-page .portal-yellow-card-icon,.portal-page .portal-red-card-icon{width:12px;height:17px;}}

/* v8.63 — suggeriment d'orientació discret en mòbils en vertical */
.orientation-hint{display:none}
@media (max-width:760px) and (orientation:portrait){
  .orientation-hint{position:fixed;z-index:9999;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:11px;padding:12px 12px;border:1px solid rgba(192,132,252,.42);border-radius:15px;background:rgba(28,19,37,.97);box-shadow:0 10px 34px rgba(0,0,0,.4);color:#fff;backdrop-filter:blur(12px)}
  .orientation-hint-icon{display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:rgba(192,132,252,.15);color:#d8b4fe}
  .orientation-hint-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
  .orientation-hint-copy strong{font-size:12px;line-height:1.3;color:#fff}
  .orientation-hint-copy span{font-size:11px;line-height:1.4;color:#ded3e8}
  .orientation-hint-close{display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#d8c9e3;cursor:pointer}
}

/* CF Ginesta v8.66: tema fosc negre/morat per a l'administració */
.app-shell{background:#100c16;color:#f6effb;color-scheme:dark}
.app-shell .sidebar{background:#120c17;border-right:1px solid #2d1e35;color:#e6d9f1}
.app-shell .brand span,.app-shell .brand small,.app-shell .side-label,.app-shell .nav-group-label{color:#b7a0c8}
.app-shell .nav-item{color:#c7b5d3}
.app-shell .nav-item:hover,.app-shell .nav-item.selected{background:#2c1b36;color:#f7eaff;box-shadow:inset 3px 0 #c875ff}
.app-shell .main-area{background:#100c16}
.app-shell .topbar h1,.app-shell h2,.app-shell h3,.app-shell h4,.app-shell .strong-cell{color:#f6effb}
.app-shell .eyebrow{color:#c084fc}
.app-shell .live-dot{background:#2b1936;color:#d8a6ff;border:1px solid #4a2c59}
.app-shell .icon-btn,.app-shell .small-btn{background:#211729;color:#e5c9ff;border:1px solid #493054}
.app-shell .icon-btn:hover,.app-shell .small-btn:hover{background:#30203b;border-color:#80549a}
.app-shell .avatar{background:#321c40;color:#e2b8ff;border:1px solid #563466}
.app-shell .welcome{border:1px solid #4b2d58;background:radial-gradient(ellipse at 88% 0%,#492357 0%,transparent 46%),linear-gradient(115deg,#211429,#160f1b)}
.app-shell .welcome p:not(.eyebrow){color:#d8c7e5}
.app-shell .stat-card,.app-shell .content-card{background:#1b1420;border:1px solid #3a2944;color:#f6effb;box-shadow:none}
.app-shell .stat-label,.app-shell .content-card .section-head p,.app-shell .tiny,.app-shell .muted{color:#b7a7c4}
.app-shell .stat-icon,.app-shell .quick-icon{background:#2a1a35;color:#d28aff}
.app-shell .quick-action{background:#211729;border-color:#3a2944;color:#f6effb}
.app-shell .quick-action:hover{background:#291b31;border-color:#78508a}
.app-shell .quick-action small,.app-shell .quick-action>b{color:#b7a7c4}
.app-shell .form-grid{background:#17111f;border-color:#3a2944}
.app-shell .form-grid label,.app-shell .stack label{color:#d8c7e5}
.app-shell .form-grid input,.app-shell .form-grid select,.app-shell .form-grid textarea,.app-shell .stack input{background:#120d18;color:#f8f1ff;border-color:#4b3455}
.app-shell .form-grid input:focus,.app-shell .form-grid select:focus,.app-shell .form-grid textarea:focus,.app-shell .stack input:focus{border-color:#c084fc;box-shadow:0 0 0 3px #c084fc22}
.app-shell .primary-btn{background:linear-gradient(120deg,#8b3fc2,#bd70ff);color:#170d20}
.app-shell .primary-btn:hover{background:linear-gradient(120deg,#7b32ad,#ad5df0)}
.app-shell .count-badge,.app-shell .pill.done{background:#1e342d;color:#a7f3d0;border:1px solid #285542}
.app-shell .pill,.app-shell .pill.pending{background:#342416;color:#ffd9a3;border:1px solid #684a28}
.app-shell .notice{background:#21162a;border-color:#493054;color:#e5c9ff}
.app-shell .notice p{color:#c3b2d0}
.app-shell .alert.success{background:#173126;color:#a7f3d0;border:1px solid #285542}
.app-shell .alert.error{background:#3a1b28;color:#fecdd3;border:1px solid #7f344b}
.app-shell .table-wrap{border-color:#3a2944}
.app-shell table{background:#1b1420}
.app-shell th{background:#24172c;color:#bda8cb;border-color:#3a2944}
.app-shell td{color:#e1d4eb;border-color:#3a2944}
.app-shell tbody tr:hover{background:#24172c}
.app-shell .empty-inline,.app-shell .empty strong,.app-shell .empty span{color:#b7a7c4}
.app-shell .empty{color:#c084fc}
.app-shell .footer{border-color:#3a2944;color:#9d89aa}
@media(max-width:680px){.app-shell .sidebar{border-bottom:1px solid #2d1e35}.app-shell .nav-item{background:transparent}.app-shell .nav-item.selected{background:#2c1b36}}

/* Portada d'accés CF Ginesta */
.ginesta-login{text-align:center;max-width:440px!important;padding:34px clamp(22px,5vw,42px)!important}.login-crest{display:block;width:132px;height:156px;-o-object-fit:contain;object-fit:contain;margin:0 auto 12px}.ginesta-login h1{margin:8px 0 0!important;font-size:clamp(26px,5vw,34px)!important;letter-spacing:1.4px}.login-team-label{margin:7px 0 28px;color:#d4a2ff;font-size:13px;font-weight:900;letter-spacing:3px}.ginesta-login .stack{text-align:left}.ginesta-login .stack label{display:grid;gap:8px}.ginesta-login .primary-btn{width:100%;justify-content:center}.ginesta-login .tiny{margin-top:18px}

/* v8.72: espaiat coherent i centrat dels blocs multimèdia */
.portal-card[style*="maxWidth: 1300px"]{margin-left:auto!important;margin-right:auto!important;width:100%!important}
.ginesta-photo-carousel{gap:16px!important;justify-content:flex-start;scroll-padding-inline:2px}
.ginesta-photo-carousel figure{flex-basis:clamp(260px,31%,360px)!important;max-width:360px;margin:0!important}
.portal-card .portal-button{margin:0}
.portal-card .portal-section-title{gap:18px}
.club-layout{gap:22px}
.club-panel{min-width:0}
.club-video-grid{gap:18px}
.club-photo-grid{gap:16px}
@media(max-width:900px){.ginesta-photo-carousel figure{flex-basis:46%!important}}
@media(max-width:600px){.ginesta-photo-carousel{gap:10px!important}.ginesta-photo-carousel figure{flex-basis:82%!important;max-width:360px}}

/* Accés multimèdia dins la mateixa franja que els escuts dels clubs */
.portal-crest-strip .portal-media-crest{flex:0 0 104px;width:104px;height:78px;padding:7px 9px;display:flex;flex-direction:column;gap:7px;border:1px solid #a855f7;border-radius:13px;background:linear-gradient(145deg,#382044,#211329);color:#f8f5fb;box-shadow:0 0 16px #a855f733;white-space:normal}
.portal-crest-strip .portal-media-crest:hover,.portal-crest-strip .portal-media-crest.active{border-color:#d8a6ff;box-shadow:0 0 0 2px #a855f744,0 0 22px #a855f755}
.portal-crest-strip .portal-media-icons{display:flex;align-items:center;justify-content:center;gap:14px;color:#f0dcff}
.portal-crest-strip .portal-media-crest small{font-size:9px;font-weight:900;letter-spacing:.35px;line-height:1.1;text-align:center;color:#f8f5fb}
.portal-media-content{max-width:1400px;margin:-8px auto 24px;animation:portal-media-in .2s ease-out}
@keyframes portal-media-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:520px){.portal-crest-strip .portal-media-crest{flex-basis:100px;width:100px;height:72px}.portal-crest-strip .portal-media-icons{gap:10px}.portal-crest-strip .portal-media-crest small{font-size:8px}}

/* v8.74: targetes de disciplina per club desplegables */
.portal-general-team-title.portal-general-team-toggle{width:100%;font:inherit;text-align:left;color:inherit;background:transparent;border:0;cursor:pointer;display:flex;align-items:center;gap:8px}
.portal-general-team-toggle strong{flex:1;min-width:0}
.portal-general-team-toggle:focus-visible{outline:2px solid #c084fc;outline-offset:3px;border-radius:8px}
.portal-general-team-chevron{font-size:1.1rem;color:#d8b4fe;flex:0 0 auto}
.portal-general-team-roster{padding-top:3px}

