/* Shared by React views and the imperative widget catalog. */
.galgo-loading{--loading-ink:#334c63;--loading-muted:#687b8d;--loading-accent:#5a8bb8;--loading-track:#e0e9f1;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;gap:0;max-width:100%;padding:24px 16px;text-align:center;font-family:inherit;line-height:1.5;color:var(--loading-ink)}
.galgo-loading--page{min-height:clamp(260px,48vh,480px);padding:40px 24px}
.galgo-loading--section{min-height:140px}
.galgo-loading .galgo-loading__icon{display:grid;place-items:center;flex:none;width:56px;height:56px;margin:0 0 14px;border:1px solid #dce7f1;border-radius:18px;background:linear-gradient(145deg,#f7faff,#eaf2fa);box-shadow:0 8px 24px rgba(50,104,154,.06)}
.galgo-loading .galgo-loading__icon svg{display:block;width:26px;height:31px;stroke:#32689a;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.galgo-loading--page .galgo-loading__icon{width:80px;height:80px;border-radius:24px;margin-bottom:22px}
.galgo-loading--page .galgo-loading__icon svg{width:34px;height:40px}
.galgo-loading .galgo-loading__title{margin:0;color:var(--loading-ink);font-size:13px;font-weight:500;line-height:1.5;letter-spacing:.01em;overflow-wrap:anywhere}
.galgo-loading--page .galgo-loading__title{font-size:16px}
.galgo-loading .galgo-loading__caption{margin:6px 0 0;color:var(--loading-muted);font-size:13px;line-height:1.5}
.galgo-loading__track{display:block;flex:none;width:88px;height:3px;margin:18px 0 0;overflow:hidden;border-radius:3px;background:var(--loading-track,#e0e9f1)}
.galgo-loading__track>span{display:block;width:40%;height:100%;border-radius:inherit;background:var(--loading-accent,#5a8bb8);animation:galgo-loading-travel 1.8s ease-in-out infinite}
.galgo-loading--page .galgo-loading__track{width:112px;margin-top:24px}
.galgo-loading--inline{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:10px;min-height:24px;padding:4px 0;text-align:start;vertical-align:middle}
.galgo-loading--inline .galgo-loading__track{order:-1;width:28px;margin:0}
.galgo-loading-indicator{display:inline-flex;align-items:center;justify-content:center;width:1.2em;height:1em;vertical-align:middle;color:inherit}
.galgo-loading-indicator .galgo-loading__track{width:100%;margin:0;background:currentColor;opacity:.75}
.galgo-loading-indicator .galgo-loading__track>span{background:currentColor;filter:brightness(.55)}
@keyframes galgo-loading-travel{0%,100%{transform:translateX(-100%)}50%{transform:translateX(250%)}}
@media(prefers-reduced-motion:reduce){.galgo-loading__track>span{animation:none;transform:translateX(75%)}}

/* Application-wide import/export notices: no backdrop, scroll lock or focus capture.
 * DESIGN.md tokens: Galgo blue, cold neutrals, no side bars, no greens; red only for a real error. */
.galgo-export-notifications{box-sizing:border-box;position:fixed;inset:auto;top:max(72px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:2147483000;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 88px);margin:0;padding:0;border:0;background:transparent;color:#0f172a;font-family:inherit;overflow:auto;overscroll-behavior:contain;pointer-events:none}
.galgo-export-notifications::backdrop{background:transparent;pointer-events:none}
.galgo-export-notice{box-sizing:border-box;display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:start;gap:12px;padding:14px 10px 14px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-shadow:0 12px 26px rgba(15,23,42,.12);pointer-events:auto}
.galgo-export-notice__body{min-width:0}
.galgo-export-notice__title{display:block;margin:0;font-size:14px;line-height:1.45;font-weight:600;color:#0f172a}
.galgo-export-notice__caption{margin:4px 0 0;font-size:12px;line-height:1.5;color:#334155;overflow-wrap:anywhere}
.galgo-export-notice__caption:empty{display:none}
.galgo-export-notice__icon{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid #e3effc;border-top-color:#1565c0;border-radius:50%;color:#1565c0;font-size:14px;line-height:1;animation:galgo-export-spin .8s linear infinite}
.galgo-export-notice__icon i:empty:not([class*=fa-]){display:none}
.galgo-export-notice__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.galgo-export-notice__actions:not(:has(>:not([hidden]))){display:none}
.galgo-export-notice__download,.galgo-export-notice__cancel,.galgo-export-notice__mail{box-sizing:border-box;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 12px;border-radius:8px;font:inherit;font-size:12px;font-weight:600;line-height:1.5;cursor:pointer}
.galgo-export-notice__download{border:1px solid #1565c0;background:#1565c0;color:#fff!important;text-decoration:none!important}
.galgo-export-notice__download:hover{border-color:#0d47a1;background:#0d47a1}.galgo-export-notice__download[aria-disabled=true]{opacity:.6;cursor:wait}
.galgo-export-notice__mail{appearance:none;border:1px solid #bcd3ee;background:#f3f8fe;color:#1565c0}.galgo-export-notice__mail:hover:not(:disabled){background:#e3effc;border-color:#1565c0}.galgo-export-notice__mail:disabled{opacity:.6;cursor:wait}
.galgo-export-notice__cancel{appearance:none;border:1px solid #cbd5e1;background:#fff;color:#334155}.galgo-export-notice__cancel:hover:not(:disabled){background:#f1f5f9}.galgo-export-notice__cancel:disabled{opacity:.6;cursor:wait}
.galgo-export-notice__close{appearance:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-2px 0 0;padding:0;border:0;border-radius:8px;background:transparent;color:#64748b;font-size:14px;cursor:pointer}.galgo-export-notice__close:hover:not(:disabled){background:#f1f5f9;color:#0f172a}
.galgo-export-notice a:focus-visible,.galgo-export-notice button:focus-visible{outline:2px solid #0c7cd5;outline-offset:2px}.galgo-export-notice [hidden]{display:none!important}
.galgo-export-notice[data-state=ready] .galgo-export-notice__icon,.galgo-export-notice[data-state=error] .galgo-export-notice__icon,.galgo-export-notice[data-state=cancelled] .galgo-export-notice__icon{animation:none;border:0}
.galgo-export-notice[data-state=ready] .galgo-export-notice__icon{background:#e3effc;color:#1565c0}
.galgo-export-notice[data-state=error]{border-color:#f1c4c4;background:#fffafa}.galgo-export-notice[data-state=error] .galgo-export-notice__title{color:#b42318}.galgo-export-notice[data-state=error] .galgo-export-notice__icon{background:#fdecec;color:#b42318}
.galgo-export-notice[data-state=cancelled] .galgo-export-notice__icon{background:#f1f5f9;color:#64748b}
@keyframes galgo-export-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.galgo-export-notice__icon{animation:none}}
@media(max-width:480px){.galgo-export-notifications{right:max(10px,env(safe-area-inset-right));width:calc(100vw - 20px)}.galgo-export-notice{gap:10px;padding:12px 8px 12px 12px}.galgo-export-notice__download,.galgo-export-notice__cancel,.galgo-export-notice__mail{min-height:40px}}
@media print{.galgo-export-notifications{display:none!important}}

.galgo-loading[hidden]{display:none}

/* Progress of heavy imports/exports: phase + percentage, bar, then figures. */
.galgo-import-notice__progress{margin:10px 0 0}
.galgo-import-notice__line{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;line-height:1.5}
.galgo-import-notice__phase{color:#334155;font-weight:600}
.galgo-import-notice__percent{color:#1565c0;font-weight:700;font-variant-numeric:tabular-nums}
.galgo-import-notice__progress progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:8px;margin:5px 0 6px;border:0;border-radius:999px;background:#e3effc;color:#1565c0;overflow:hidden}
.galgo-import-notice__progress progress::-webkit-progress-bar{background:#e3effc;border-radius:999px}
.galgo-import-notice__progress progress::-webkit-progress-value{background:#1565c0;border-radius:999px;transition:width .6s ease}
.galgo-import-notice__progress progress::-moz-progress-bar{background:#1565c0;border-radius:999px}
.galgo-import-notice__progress progress:indeterminate{background:linear-gradient(90deg,#e3effc 0,#e3effc 35%,#90b8e4 50%,#e3effc 65%,#e3effc 100%) 0 0/300% 100%;animation:galgo-progress-sweep 1.6s linear infinite}
.galgo-import-notice__progress progress:indeterminate::-webkit-progress-bar{background:transparent}
.galgo-import-notice__progress progress:indeterminate::-moz-progress-bar{background:transparent}
@keyframes galgo-progress-sweep{from{background-position:100% 0}to{background-position:-50% 0}}
@media(prefers-reduced-motion:reduce){.galgo-import-notice__progress progress:indeterminate{animation:none}}
.galgo-import-notice__progress p{margin:0;color:#64748b;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.galgo-import-notice__progress[hidden]{display:none}
.galgo-export-notice__long,.galgo-export-notice__mailnote{display:flex;align-items:baseline;gap:6px;margin:8px 0 0;font-size:12px;line-height:1.5;color:#334155}
.galgo-export-notice__long i,.galgo-export-notice__mailnote i{color:#1565c0;flex:none}
.galgo-export-notice__mailnote{padding:6px 8px;border-radius:8px;background:#f3f8fe}
.galgo-export-notice__mailnote[data-tone=error]{background:#fdecec;color:#b42318}.galgo-export-notice__mailnote[data-tone=error] i{color:#b42318}

/* Login after the session ended: information, never an error (DESIGN.md: Galgo blue, no side bars). */
.galgo-login-closed{box-sizing:border-box;display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:12px 14px;border:1px solid #cbd5e1;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 8px 20px rgba(15,23,42,.08);text-align:left;color:#334155}
.galgo-login-closed__icon{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:#e3effc;color:#1565c0;font-size:15px}
.galgo-login-closed__title{display:block;margin:1px 0 2px;font-size:14px;font-weight:600;line-height:1.4;color:#0f172a}
.galgo-login-closed__text{margin:0;font-size:12px;line-height:1.5;color:#334155}
