@import url("./theme.css");

:root {
  font-family: Inter,"Segoe UI Variable","Segoe UI",ui-sans-serif,system-ui,sans-serif; color: var(--text); background: var(--background); font-synthesis: none;
  --filees-navy:#0b1d3a; --filees-orange:#ff6a00; --filees-orange-strong:#d95800;
  --panel:var(--theme-panel); --panel-solid:var(--theme-panel-solid); --background:var(--theme-background); --text:var(--theme-text); --soft-text:var(--theme-soft-text); --line:var(--theme-line); --muted:var(--theme-muted);
  --teal:var(--theme-teal); --violet:var(--theme-violet); --amber:var(--theme-amber); --red:var(--theme-red); --focus:var(--theme-focus); --shadow:var(--theme-shadow); --realm-accent:var(--filees-orange);
  --technical:"Cascadia Mono","Roboto Mono","IBM Plex Mono","DejaVu Sans Mono",Consolas,monospace;
}
* { box-sizing:border-box; }
/* Native dialog supplies modal focus trapping and Escape; never ellipsise the
   lifecycle explanation, path or alpha diagnostics, including small screens. */
#deleted-copy-dialog { width:min(620px,calc(100vw - 32px)); max-height:calc(100vh - 32px); overflow:auto; padding:24px; border:1px solid var(--line); border-radius:18px; color:var(--text); background:var(--panel-solid); box-shadow:var(--shadow); }
#deleted-copy-dialog::backdrop { background:rgba(3,8,15,.6); }
#deleted-copy-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
#deleted-copy-dialog h2 { margin:0; font-size:22px; }
#deleted-copy-dialog p,#deleted-copy-dialog pre { white-space:pre-wrap; overflow-wrap:anywhere; text-overflow:clip; line-height:1.5; }
#deleted-copy-name { font-weight:700; }
#deleted-copy-path { color:var(--muted); }
#deleted-copy-dialog footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; margin-top:24px; padding:0; border:0; text-transform:none; letter-spacing:normal; font-size:inherit; }
#deleted-copy-dialog button { padding:10px 14px; border:1px solid var(--line); border-radius:9px; background:var(--panel); cursor:pointer; }
#deleted-copy-dialog button:disabled { opacity:.5; cursor:default; }
html { min-height:100%; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; }
body { min-width:760px; min-height:100vh; margin:0; overflow-x:hidden; background:var(--background); scrollbar-width:none; -ms-overflow-style:none; }
html::-webkit-scrollbar,body::-webkit-scrollbar { display:none; width:0; height:0; }
button,a { font:inherit; } button { color:inherit; }
button:focus-visible,a:focus-visible { outline:3px solid color-mix(in srgb,var(--focus) 72%,transparent); outline-offset:2px; }

.ambient { position:fixed; z-index:0; width:540px; height:540px; border-radius:50%; filter:blur(125px); opacity:.15; pointer-events:none; }
.ambient-a { top:-230px; right:-110px; background:var(--filees-orange); }
.ambient-b { bottom:-270px; left:-180px; background:#1264a3; }
.shell { position:relative; z-index:1; width:min(1680px,calc(100% - 72px)); margin:0 auto; padding:0 0 30px; }

.topbar { --wails-draggable:drag; height:76px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); user-select:none; -webkit-user-select:none; }
.brand { display:flex; align-items:center; padding:7px 11px; border:1px solid rgba(11,29,58,.72); border-radius:12px; background:rgba(11,29,58,.96); color:inherit; text-decoration:none; box-shadow:0 8px 24px rgba(0,0,0,.13); }
.brand-mark { width:174px; height:auto; display:block; }
:root[data-system-theme="dark"] .brand { border-color:transparent; background:transparent; box-shadow:none; }
:root[data-system-theme="dark"] .brand-mark { color-scheme:dark; filter:drop-shadow(0 5px 15px rgba(0,0,0,.24)); }
@media (prefers-color-scheme:dark) {
  :root:not([data-system-theme="light"]) .brand { border-color:transparent; background:transparent; box-shadow:none; }
  :root:not([data-system-theme="light"]) .brand-mark { color-scheme:dark; filter:drop-shadow(0 5px 15px rgba(0,0,0,.24)); }
}
.topbar-actions { --wails-draggable:no-drag; display:flex; align-items:center; gap:10px; }
.version-pill { height:38px; padding:0 12px; border:1px solid rgba(255,106,0,.25); border-radius:11px; color:#ffb077; background:rgba(255,106,0,.08); font-size:11px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:.16s ease; }
.version-pill:hover { border-color:rgba(255,106,0,.48); color:#fff; background:rgba(255,106,0,.14); }
.icon-button { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.035); cursor:pointer; transition:.2s ease; }
.icon-button:hover { border-color:rgba(255,106,0,.34); color:#ffb077; background:rgba(255,106,0,.08); }
.icon-button:disabled { opacity:.45; cursor:wait; }
.icon-button[data-global-action]:disabled { cursor:not-allowed; }
.icon-button svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.icon-button.topbar-primary { border-color:rgba(255,106,0,.3); color:#ffad70; background:rgba(255,106,0,.075); }
.theme-switch { --wails-draggable:no-drag; display:flex; height:38px; overflow:visible; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.025); }
.theme-option { position:relative; width:34px; display:grid; place-items:center; border:0; border-right:1px solid var(--line); color:var(--muted); background:transparent; cursor:pointer; transition:.16s ease; }
.theme-option:first-child { border-radius:10px 0 0 10px; }.theme-option:last-child { border-right:0; border-radius:0 10px 10px 0; }
.theme-option:hover { color:var(--text); background:rgba(255,255,255,.07); }
.theme-option[aria-pressed="true"] { color:var(--teal); background:rgba(99,217,189,.11); box-shadow:inset 0 -2px var(--teal); }
.theme-option svg { width:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.pair-button { width:auto; display:flex; grid-template-columns:none; gap:7px; padding:0 12px; font-size:12px; font-weight:800; }
.pair-button span { line-height:1; }
.topbar .pair-button { height:38px; border-radius:11px; }
.action-switch { display:flex; height:38px; border:1px solid var(--theme-line); border-radius:11px; background:var(--theme-panel); }
.action-switch > .icon-button, .action-switch .language-menu > .icon-button { width:38px; height:36px; border:0; border-radius:0; background:transparent; }
.action-switch > .icon-button:first-child { border-radius:10px 0 0 10px; }
.action-switch > .icon-button + .icon-button, .action-switch .language-menu { border-left:1px solid var(--theme-line); }
.language-menu { position:relative; }
.language-popup { position:absolute; z-index:100; top:calc(100% + 10px); right:0; min-width:220px; padding:8px; border:1px solid var(--theme-line); border-radius:14px; background:var(--theme-panel-solid); color:var(--theme-text); box-shadow:0 16px 42px #0005; }
.language-popup[hidden] { display:none; }
.language-popup label { display:flex; align-items:center; gap:12px; padding:12px; border-radius:8px; font-size:14px; cursor:pointer; white-space:nowrap; }
.language-popup label:hover, .language-popup label:focus-within { background:var(--theme-panel); outline:1px solid var(--theme-focus); }
.language-popup input { accent-color:var(--theme-focus); width:16px; height:16px; margin:0; }
.hint-button { position:relative; }
.hint-button::after { content:attr(data-hint); position:absolute; z-index:30; left:50%; bottom:calc(100% + 8px); width:max-content; max-width:220px; padding:6px 8px; border:1px solid var(--line); border-radius:7px; color:var(--text); background:var(--panel-solid); box-shadow:var(--shadow); font-size:10px; font-weight:750; line-height:1.25; letter-spacing:0; text-transform:none; white-space:normal; pointer-events:none; opacity:0; transform:translate(-50%,4px); transition:opacity .14s ease,transform .14s ease; }
.hint-button:hover::after,.hint-button:focus-visible::after { opacity:1; transform:translate(-50%,0); }
.topbar .hint-button::after { top:calc(100% + 8px); bottom:auto; }
.window-controls { display:flex; align-items:center; height:38px; margin-left:3px; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.025); }
.window-button { width:41px; height:100%; display:grid; place-items:center; border:0; border-right:1px solid var(--line); background:transparent; color:var(--soft-text); cursor:default; transition:.16s ease; }
.window-button:last-child { border-right:0; } .window-button:hover { color:#fff; background:rgba(255,255,255,.09); } .window-button.close:hover { background:#d94957; }
.window-button span { transform:translateY(-1px); font-size:16px; line-height:1; }

.hero { min-height:330px; display:grid; grid-template-columns:1.4fr .6fr; align-items:center; gap:60px; padding:48px 4%; }
.hero.has-announcements { border-radius:20px; background:linear-gradient(100deg,color-mix(in srgb,var(--red) 9%,transparent),transparent); }
.announcement-banner { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:20px; padding:16px; border:1px solid color-mix(in srgb,var(--red) 55%,var(--line)); border-radius:14px; background:var(--panel); }
.announcement-banner[hidden] { display:none; }
.intent-alerts[hidden] { display:none; }
.repo-row.requires-decision { outline:2px solid color-mix(in srgb,var(--red) 65%,var(--line)); }
.intent-folder-warning { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:12px; border-radius:10px; background:color-mix(in srgb,var(--red) 12%,var(--panel)); }
.intent-folder-warning strong { color:var(--text); font-size:15px; }
.intent-folder-warning>div { flex:1 1 360px; min-width:0; }
.intent-folder-warning p { margin:4px 0 0; color:var(--muted); font-size:12px; line-height:1.45; }
.intent-folder-warning button { padding:9px 12px; border:0; border-radius:9px; color:#fff; background:#b72032; cursor:pointer; }
.announcement-banner strong { color:var(--text); font-size:17px; }
.announcement-banner p { margin:6px 0 0; color:var(--muted); line-height:1.4; font-size:13px; }
.announcement-banner button { padding:11px 15px; border:0; border-radius:9px; color:#fff; background:#b72032; font-weight:750; cursor:pointer; }
.eyebrow { margin:0 0 12px; color:#ff9a52; font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,p { margin-top:0; }
h1 { max-width:760px; margin-bottom:20px; font-size:clamp(42px,5vw,68px); line-height:.99; letter-spacing:-.055em; }
h1 span { color:transparent; background:linear-gradient(90deg,var(--filees-orange),#ffb178 72%); background-clip:text; -webkit-background-clip:text; }
.hero-copy { max-width:650px; margin-bottom:0; color:var(--muted); font-size:16px; line-height:1.7; }
.pulse-card { position:relative; width:210px; height:210px; display:grid; place-items:center; justify-self:center; }
.pulse-orbit { position:absolute; pointer-events:none; border:1px solid rgba(255,106,0,.15); border-radius:50%; }
.orbit-a { inset:0; animation:spin 18s linear infinite; border-top-color:rgba(255,106,0,.66); }
.orbit-b { inset:30px; animation:spin 12s linear infinite reverse; border-right-color:rgba(78,167,224,.65); }
.orbit-c { inset:58px; border-width:8px; border-color:rgba(255,106,0,.12); border-top-color:rgba(255,106,0,.58); border-left-color:rgba(78,167,224,.42); animation:spin 7.5s linear infinite; }
.pulse-core { position:relative; z-index:1; width:18px; height:18px; display:grid; place-items:center; border:4px solid color-mix(in srgb,var(--background) 72%,transparent); border-radius:50%; background:var(--red); box-shadow:0 0 0 8px rgba(255,123,132,.07),0 0 28px rgba(255,123,132,.42); }
.pulse-core span { display:none; }
.pulse-core.is-online { background:var(--teal); box-shadow:0 0 0 8px rgba(99,217,189,.07),0 0 28px rgba(99,217,189,.46); }
.pulse-core.is-stale { background:var(--amber); box-shadow:0 0 0 8px rgba(244,199,109,.07),0 0 28px rgba(244,199,109,.42); }
.pulse-core.is-offline { animation:alarm-pulse 1.35s ease-in-out infinite; }
.pulse-caption { position:absolute; right:-5px; bottom:17px; display:grid; min-width:90px; padding:11px 14px; border:1px solid var(--line); border-radius:13px; background:rgba(12,24,39,.9); box-shadow:var(--shadow); }
.pulse-caption b { font-size:20px; } .pulse-caption small { color:var(--muted); font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.pulse-card[data-connection="online"] .pulse-caption { border-color:rgba(99,217,189,.42); background:color-mix(in srgb,var(--panel-solid) 88%,rgba(99,217,189,.18)); box-shadow:0 0 28px rgba(99,217,189,.16); }
.pulse-card[data-connection="online"] .pulse-caption b,.pulse-card[data-connection="online"] .pulse-caption small { color:var(--teal); }
.pulse-card[data-connection="stale"] .pulse-caption { border-color:rgba(244,199,109,.42); background:color-mix(in srgb,var(--panel-solid) 88%,rgba(244,199,109,.18)); box-shadow:0 0 28px rgba(244,199,109,.16); }
.pulse-card[data-connection="stale"] .pulse-caption b,.pulse-card[data-connection="stale"] .pulse-caption small { color:var(--amber); }
.pulse-card[data-connection="offline"] .pulse-caption { border-color:rgba(255,123,132,.48); background:color-mix(in srgb,var(--panel-solid) 86%,rgba(255,123,132,.24)); box-shadow:0 0 30px rgba(255,123,132,.2); }
.pulse-card[data-connection="offline"] .pulse-caption b,.pulse-card[data-connection="offline"] .pulse-caption small { color:var(--red); }

.offline-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; margin:0 0 22px; padding:18px 20px; border:1px solid rgba(255,123,132,.24); border-radius:17px; background:linear-gradient(90deg,rgba(255,123,132,.09),rgba(255,255,255,.025)); }
.offline-card[hidden] { display:none; }
.offline-symbol { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:var(--red); background:rgba(255,123,132,.11); font-size:22px; }
.offline-card h2 { margin-bottom:4px; font-size:16px; } .offline-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.primary-button { min-height:38px; padding:9px 16px; border:1px solid rgba(255,106,0,.35); border-radius:10px; background:var(--filees-orange); color:#fff; font-size:12px; font-weight:780; cursor:pointer; }
.primary-button:hover { background:var(--filees-orange-strong); }

.metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); overflow:hidden; border:1px solid var(--line); border-radius:19px; background:var(--panel); box-shadow:var(--shadow); backdrop-filter:blur(22px); }
.metrics article { min-height:118px; display:grid; align-content:center; padding:23px 27px; border-right:1px solid var(--line); }
.metrics article:last-child { border-right:0; }
.metrics small { color:var(--muted); font-size:12px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.metrics strong { margin:5px 0 1px; font-size:31px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.metrics span { color:#7f8da1; font-size:12px; }

.content-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(310px,.72fr); gap:22px; margin-top:24px; }
.main-column,.side-card { min-width:0; border:1px solid var(--line); border-radius:19px; background:var(--panel); box-shadow:var(--shadow); backdrop-filter:blur(22px); }
.side-card[hidden] { display:none; } .main-column { padding:26px; } .side-column { display:grid; align-content:start; gap:22px; } .side-card { padding:23px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.section-heading h2 { margin:0; font-size:22px; letter-spacing:-.03em; } .section-heading .eyebrow { margin-bottom:5px; } .section-heading.compact { margin-bottom:16px; }
.side-card-controls { display:flex; align-items:center; gap:8px; }
.side-card-toggle { width:32px; height:32px; display:grid; flex:0 0 auto; place-items:center; padding:0; border:1px solid var(--line); border-radius:10px; color:var(--soft-text); background:rgba(255,255,255,.03); cursor:pointer; }
.side-card-toggle:hover { color:#fff; background:rgba(255,255,255,.08); }
.side-card-toggle span { font-size:18px; line-height:1; transition:transform .18s ease; transform:rotate(180deg); }
.side-card-toggle[aria-expanded="false"] span { transform:rotate(0); }
.side-card-body[hidden] { display:none; }
.side-card:has(>.side-card-body[hidden]) .section-heading { margin-bottom:0; }
.timestamp { color:var(--muted); font-size:12px; } .projection-timing { display:grid; justify-items:end; gap:5px; }
.projection-freshness { padding:4px 8px; border:1px solid var(--line); border-radius:999px; color:var(--soft-text); background:rgba(255,255,255,.025); font-size:10px; font-weight:780; letter-spacing:.055em; text-transform:uppercase; }
.projection-freshness.is-current { border-color:rgba(99,217,189,.24); color:var(--teal); background:rgba(99,217,189,.065); }
.projection-freshness.is-refreshing { border-color:rgba(244,199,109,.28); color:var(--amber); background:rgba(244,199,109,.07); }
.projection-freshness.is-unverified { border-color:rgba(255,123,132,.32); color:var(--red); background:rgba(255,123,132,.075); }
.count-badge { min-width:32px; padding:6px 10px; border:1px solid rgba(154,167,232,.27); border-radius:999px; color:#d1d7ff; background:rgba(154,167,232,.1); text-align:center; font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.text-button { min-height:34px; padding:7px 11px; border:1px solid var(--line); border-radius:9px; color:var(--soft-text); background:rgba(255,255,255,.03); font-size:12px; font-weight:800; cursor:pointer; }
.text-button:hover { border-color:rgba(255,106,0,.3); color:#ffae72; background:rgba(255,106,0,.08); }

.server-panels { display:grid; gap:18px; }
.action-status { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 15px; } .action-status[hidden] { display:none; }
.action-badge { display:flex; align-items:center; gap:12px; min-width:270px; padding:12px 14px; border:1px solid rgba(154,167,232,.24); border-radius:13px; background:linear-gradient(100deg,rgba(154,167,232,.11),rgba(255,106,0,.055)); }
.action-badge div { min-width:0; } .action-badge strong,.action-badge small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.action-badge strong { font-size:13px; } .action-badge small { margin-top:4px; color:var(--muted); font-size:12px; }
.action-spinner { width:19px; height:19px; flex:0 0 auto; border:2px solid rgba(154,167,232,.25); border-top-color:var(--filees-orange); border-radius:50%; animation:spin .8s linear infinite; }
.server-panel { --realm-accent:var(--filees-orange); min-width:0; max-width:100%; overflow:visible; border:1px solid var(--line); border-radius:17px; background:rgba(255,255,255,.02); }
.server-header { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:76px; padding:14px 18px; border-radius:16px; background:linear-gradient(105deg,color-mix(in srgb,var(--realm-accent) 14%,transparent),rgba(78,167,224,.045) 58%,transparent); box-shadow:inset 4px 0 color-mix(in srgb,var(--realm-accent) 82%,transparent); cursor:pointer; }
.server-header[aria-expanded="true"] { border-bottom:1px solid var(--line); border-radius:16px 16px 0 0; }
.server-header:focus-visible { outline:3px solid color-mix(in srgb,var(--focus) 70%,transparent); outline-offset:2px; }
.server-panel.has-attention { border-color:rgba(255,123,132,.38); }
.server-identity { min-width:0; display:flex; align-items:center; gap:13px; }
.server-mark { width:9px; height:42px; flex:0 0 auto; border-radius:999px; background:var(--amber); box-shadow:0 0 19px rgba(244,199,109,.3); }
.server-mark.health-current { background:var(--teal); box-shadow:0 0 19px rgba(99,217,189,.34); }
.server-mark.health-refreshing,.server-mark.health-unverified { background:var(--amber); box-shadow:0 0 19px rgba(244,199,109,.3); }
.server-mark.health-unavailable { background:var(--red); box-shadow:0 0 19px rgba(255,123,132,.38); animation:server-alert 1.6s ease-in-out infinite; }
.server-title-line { min-width:0; display:flex; align-items:center; gap:9px; }
.server-identity h3 { margin:0; font-size:17px; letter-spacing:-.02em; }
.server-identity p { max-width:520px; margin:6px 0 0; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.server-total { flex:0 0 auto; padding:7px 10px; border:1px solid color-mix(in srgb,var(--realm-accent) 28%,transparent); border-radius:999px; color:color-mix(in srgb,var(--realm-accent) 78%,white); background:color-mix(in srgb,var(--realm-accent) 9%,transparent); font-size:11px; font-weight:800; }
.server-summary { display:flex; align-items:center; gap:10px; }
.server-chevron { width:24px; display:grid; place-items:center; color:var(--muted); font-size:20px; transition:transform .18s ease; }
.server-header[aria-expanded="true"] .server-chevron { transform:rotate(180deg); }
.server-settings { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; color:var(--soft-text); background:rgba(255,255,255,.035); cursor:pointer; transition:.16s ease; }
.server-settings:hover { border-color:color-mix(in srgb,var(--realm-accent) 38%,transparent); color:color-mix(in srgb,var(--realm-accent) 75%,white); background:color-mix(in srgb,var(--realm-accent) 9%,transparent); }
.server-settings:disabled { opacity:.35; cursor:wait; } .server-settings svg { width:17px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.server-folders { --repo-title-min:240px; --repo-queue-column:155px; --repo-actions-column:44px; --repo-size-column:105px; min-width:0; max-width:100%; display:grid; gap:17px; overflow-x:auto; overflow-y:hidden; padding:17px 18px 19px; scrollbar-width:thin; scrollbar-color:rgba(154,167,232,.31) transparent; }
.server-folders[hidden] { display:none; }
.server-empty { margin:0; padding:18px 20px; color:var(--muted); font-size:12px; }
.repo-columns,.repo-row { min-width:calc(var(--repo-title-min) + var(--repo-queue-column) + var(--repo-actions-column) + var(--repo-size-column) + 36px); grid-template-columns:minmax(var(--repo-title-min),1fr) var(--repo-queue-column) var(--repo-actions-column) var(--repo-size-column); column-gap:12px; }
.repo-columns { display:grid; align-items:center; padding:0 15px 2px; color:#7f8da1; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.repo-columns span:last-child { padding-right:39px; text-align:right; }
.realm-group,.repo-list { min-width:0; } .repo-row { max-width:none; }
.realm-group { display:grid; gap:10px; }
.realm-divider { display:flex; align-items:center; gap:10px; color:#8794a7; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.realm-divider::after { content:""; height:1px; flex:1; background:rgba(255,255,255,.075); }
.realm-divider b { order:3; min-width:25px; padding:4px 7px; border-radius:999px; color:#9ba7b7; background:rgba(255,255,255,.05); text-align:center; font-size:10px; }
.realm-group.guest .realm-divider { color:#b8bff2; } .realm-group.guest .realm-divider::after { background:rgba(154,167,232,.16); }
.realm-group.deleted .realm-divider { color:var(--amber); } .realm-group.deleted .realm-divider::after { background:rgba(244,199,109,.16); }
.repo-list { display:grid; gap:9px; }
.repo-row { display:grid; align-items:center; min-height:82px; padding:14px 15px; border:1px solid transparent; border-radius:14px; background:rgba(255,255,255,.028); transition:.18s ease; }
.repo-row:hover { transform:translateY(-1px); border-color:rgba(255,255,255,.11); background:rgba(255,255,255,.045); }
.repo-title { min-width:var(--repo-title-min); display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:9px; }
.repo-tools { min-width:0; display:flex; align-items:center; justify-content:flex-start; flex-wrap:nowrap; gap:5px; }
.repo-icon-action,.repo-open { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:9px; color:var(--soft-text); background:rgba(255,255,255,.03); cursor:pointer; transition:.16s ease; }
.repo-icon-action svg { width:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.repo-icon-action:hover,.repo-open:hover { border-color:rgba(255,106,0,.34); color:#ffae72; background:rgba(255,106,0,.08); }
.repo-icon-action.mutate:hover { border-color:rgba(154,167,232,.38); color:#d1d7ff; background:rgba(154,167,232,.1); }
.repo-icon-action.recovery-dismiss:hover { border-color:rgba(255,92,92,.46); color:#ff8c8c; background:rgba(255,68,68,.09); }
.repo-icon-action:disabled,.repo-open:disabled { opacity:.35; cursor:wait; }
.repo-open { width:38px; height:38px; color:var(--realm-accent); background:color-mix(in srgb,var(--realm-accent) 9%,transparent); }
.repo-open.is-disabled { opacity:.45; cursor:default; }
.repo-icon { position:relative; width:39px; height:39px; display:grid; place-items:center; border-radius:11px; color:var(--realm-accent); background:color-mix(in srgb,var(--realm-accent) 9%,transparent); }
.repo-open .repo-icon { width:28px; height:28px; background:transparent; }
.repo-icon::before { content:""; width:25px; height:23px; display:block; background:currentColor; -webkit-mask:url("./assets/filees-space-symbol.svg") center/contain no-repeat; mask:url("./assets/filees-space-symbol.svg") center/contain no-repeat; }
.repo-open .repo-icon::before { width:22px; height:21px; }
.repo-open.state-offline,.repo-open.state-unattached,.repo-open.state-disabled,.repo-open.state-revoked,.repo-open.state-unknown { color:#758196; filter:saturate(.35); }
.repo-state-overlay { position:absolute; right:-5px; bottom:-5px; width:16px; height:16px; display:grid; place-items:center; border:2px solid var(--panel-solid); border-radius:50%; color:#f5f7fa; background:#69768a; box-shadow:0 2px 7px rgba(0,0,0,.34); }
.repo-state-overlay svg { width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.repo-state-overlay.is-attention { color:white; background:var(--red); font-size:10px; font-weight:900; }
.repo-state-overlay.is-busy { background:var(--violet); }
.repo-name { min-width:0; } .repo-name strong,.repo-name small { display:block; white-space:nowrap; }
.repo-name strong { overflow:visible; text-overflow:clip; }
.repo-name small { overflow:hidden; text-overflow:ellipsis; }
.repo-name strong { font-size:14px; } .repo-name small { margin-top:5px; color:var(--muted); font-size:12px; }
.repo-meta { display:grid; gap:5px; min-width:0; } .repo-meta small { color:#8290a4; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.repo-meta span { overflow:hidden; font-size:13px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; font-variant-numeric:tabular-nums; }
.repo-size { justify-items:end; padding-right:39px; text-align:right; }

.activity-list,.reservation-list,.shout-list,.detached-list { display:grid; gap:9px; }
/* Deliberately quiet. A detachment is finished business, not an alarm: it gets
   a muted card rather than the accent a reservation or a shout carries. */
.detached-row { padding:13px 14px; border:1px solid rgba(255,255,255,.06); border-radius:13px; background:rgba(255,255,255,.022); }
.detached-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:11px; }
.detached-head>strong { overflow:hidden; font-size:13px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.detached-head>time { color:#8190a4; font-size:11px; white-space:nowrap; }
.detached-note { margin:6px 0 0; color:var(--muted); font-size:12px; }
.detached-paths { margin:8px 0 0; padding:0; list-style:none; display:grid; gap:4px; }
.detached-paths li { overflow:hidden; color:#8190a4; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.activity-row { display:grid; grid-template-columns:8px minmax(0,1fr); gap:11px; padding:13px 14px; border-radius:13px; background:rgba(255,255,255,.028); }
.activity-row strong { font-size:13px; line-height:1.35; } .activity-row p { margin:6px 0 0; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.activity-dot { width:8px; height:8px; margin-top:5px; border-radius:50%; background:var(--violet); box-shadow:0 0 12px rgba(154,167,232,.48); }
.activity-row.is-error .activity-dot { background:var(--red); } .activity-row time { display:block; margin-top:5px; color:#8190a4; font-size:11px; }
.reservation-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:11px; padding:13px 14px; border:1px solid rgba(154,167,232,.12); border-radius:13px; background:rgba(154,167,232,.045); }
.reservation-main { min-width:0; } .reservation-main>strong { display:block; overflow:hidden; color:#f1f4fa; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.reservation-main>p { margin:6px 0 8px; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.lock-flags { display:flex; align-items:center; flex-wrap:wrap; gap:6px; color:#8190a4; font-size:11px; }
.lock-flag { padding:4px 7px; border:1px solid rgba(99,217,189,.21); border-radius:999px; color:var(--teal); background:rgba(99,217,189,.07); font-size:10px; font-weight:760; text-transform:uppercase; }
.lock-flag.risk { border-color:rgba(244,199,109,.25); color:var(--amber); background:rgba(244,199,109,.08); } .lock-flag.passport { border-color:rgba(154,167,232,.25); color:#d1d7ff; background:rgba(154,167,232,.1); }
.reservation-action { min-height:34px; padding:7px 10px; border:1px solid rgba(154,167,232,.25); border-radius:9px; color:#d1d7ff; background:rgba(154,167,232,.09); font-size:11px; font-weight:800; cursor:pointer; }
.reservation-action:hover { border-color:rgba(255,106,0,.32); color:#ffae72; background:rgba(255,106,0,.08); } .reservation-action:disabled { opacity:.35; cursor:wait; }
.lock-release-request { border-color:rgba(255,106,0,.34); background:linear-gradient(110deg,rgba(255,106,0,.1),rgba(154,167,232,.05)); }
.reservation-request-actions { display:flex; align-items:center; gap:7px; }
.reservation-action.secondary { color:#aab4c6; background:rgba(154,167,232,.04); }
.lock-flag.request { border-color:rgba(255,106,0,.28); color:#ffae72; background:rgba(255,106,0,.08); }
.lock-owner.waiting { color:#ffae72; }
.dashboard-share-list { display:grid; gap:9px; }
.dashboard-share-group { display:flex; align-items:center; gap:9px; margin-top:5px; color:#8794a7; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.dashboard-share-group::after { order:1; content:""; height:1px; flex:1; background:var(--line); }
.dashboard-share-group button { order:2; min-height:26px; padding:4px 7px; border:1px solid rgba(255,123,132,.2); border-radius:8px; color:#e99ba2; background:rgba(255,123,132,.05); font-size:9px; font-weight:800; letter-spacing:0; text-transform:none; cursor:pointer; }
.dashboard-share-bulk { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 10px; border:1px solid rgba(255,123,132,.24); border-radius:11px; color:#ffabb1; background:rgba(255,123,132,.065); font-size:10px; font-weight:800; }
.dashboard-share-bulk button { min-height:28px; padding:4px 8px; border:1px solid rgba(255,123,132,.3); border-radius:8px; color:#fff; background:rgba(255,123,132,.1); font-size:9px; font-weight:800; cursor:pointer; }
.dashboard-share-row { display:grid; grid-template-columns:16px minmax(0,1fr) auto; gap:9px; padding:12px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.027); }
.dashboard-share-row.is-active { border-color:rgba(99,217,189,.17); background:rgba(99,217,189,.035); }
.dashboard-share-select { grid-column:1; grid-row:1; width:16px; min-height:22px; display:flex; align-items:flex-start; padding-top:1px; cursor:pointer; }
.dashboard-share-select input { position:absolute; opacity:0; pointer-events:none; }
.dashboard-share-select span { width:14px; height:14px; border:1px solid #526177; border-radius:4px; background:rgba(255,255,255,.025); }
.dashboard-share-select input:checked+span { border-color:#ff8a94; background:#ff6572; box-shadow:inset 0 0 0 3px #152033; }
.dashboard-share-select input:focus-visible+span { outline:2px solid #ffae72; outline-offset:2px; }
.dashboard-share-open { grid-column:2; grid-row:1; min-width:0; display:grid; grid-template-columns:10px minmax(0,1fr); align-items:start; gap:10px; padding:0; border:0; color:inherit; background:transparent; text-align:left; cursor:pointer; }
.dashboard-share-open:hover strong { color:#ffae72; }
.dashboard-share-open.is-disabled { cursor:default; }
.dashboard-share-dot { width:8px; height:8px; margin-top:5px; border-radius:50%; background:#69768a; }
.dashboard-share-dot.active { background:var(--teal); box-shadow:0 0 12px rgba(99,217,189,.46); }
.dashboard-share-copy { min-width:0; display:block; }
.dashboard-share-copy strong,.dashboard-share-copy small,.dashboard-share-copy time { display:block; }
.dashboard-share-copy strong { overflow-wrap:anywhere; color:#f1f4fa; font-size:13px; line-height:1.35; }
.dashboard-share-copy small { margin-top:5px; overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-share-copy time { margin-top:4px; color:#8190a4; font-size:10px; }
.dashboard-share-policy { grid-column:2/-1; display:flex; align-items:center; justify-content:space-between; gap:8px; padding-left:20px; color:#9ba8b9; font-size:10px; }
.dashboard-share-policy small { color:#ffae72; }
.dashboard-share-revoke { grid-row:1; grid-column:3; align-self:center; min-height:32px; padding:6px 9px; border:1px solid rgba(255,123,132,.25); border-radius:9px; color:#ffabb1; background:rgba(255,123,132,.07); font-size:10px; font-weight:800; cursor:pointer; }
.dashboard-share-revoke:hover { border-color:rgba(255,123,132,.48); color:#fff; background:rgba(255,123,132,.13); }
.dashboard-share-revoke:disabled { opacity:.4; cursor:wait; }
#shouts-card { position:relative; overflow:hidden; }
#shouts-card.has-unread { border-color:rgba(255,76,88,.72); animation:announcement-panel-alert 1.55s ease-in-out infinite; }
#shouts-card.has-unread .count-badge { border-color:rgba(255,255,255,.36); color:#fff; background:rgba(122,0,10,.46); }
.shout-row { width:100%; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:11px; padding:13px 14px; border:1px solid rgba(255,106,0,.16); border-radius:13px; color:inherit; background:rgba(255,106,0,.045); text-align:left; cursor:pointer; transition:border-color .16s ease,background .16s ease,transform .16s ease; }
.shout-row:hover { transform:translateY(-1px); border-color:rgba(255,123,132,.48); background:rgba(255,123,132,.1); }
.shout-row.is-read { opacity:.72; border-color:var(--line); background:rgba(255,255,255,.025); }
.shout-symbol { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#fff; background:var(--red); box-shadow:0 5px 18px rgba(255,54,68,.2); }
.shout-symbol svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.shout-row.is-read .shout-symbol { color:var(--soft-text); background:rgba(154,167,232,.1); box-shadow:none; }
.shout-main { min-width:0; display:block; } .shout-main>strong { display:block; overflow-wrap:anywhere; color:#f1f4fa; font-size:13px; line-height:1.35; }
.shout-main>span { display:block; margin-top:5px; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; } .shout-main>time { display:block; margin-top:4px; color:#8190a4; font-size:11px; }
.shout-state { padding:5px 7px; border:1px solid rgba(255,123,132,.32); border-radius:999px; color:#ffabb1; background:rgba(255,123,132,.09); font-size:10px; font-weight:800; white-space:nowrap; }
.shout-row.is-read .shout-state { border-color:var(--line); color:var(--muted); background:rgba(255,255,255,.025); }
.update-summary { margin:0 0 14px; color:var(--muted); font-size:12px; line-height:1.55; }.update-actions { display:flex; gap:8px; }.update-actions[hidden] { display:none; }.update-actions button { flex:1; min-height:36px; padding:7px 10px; border:1px solid rgba(154,167,232,.25); border-radius:9px; color:#d1d7ff; background:rgba(154,167,232,.09); font-size:11px; font-weight:800; cursor:pointer; }.update-actions button.primary { border-color:rgba(255,106,0,.3); color:#ffae72; background:rgba(255,106,0,.09); }.update-actions button:hover { border-color:rgba(255,106,0,.38); }.update-actions button:disabled { opacity:.35; cursor:wait; }
.lock-owner { color:#8190a4; font-size:10px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.muted { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.empty-state { min-height:220px; display:grid; place-items:center; align-content:center; gap:9px; color:var(--muted); text-align:center; }
.empty-state span { color:rgba(255,106,0,.48); font-size:35px; } .empty-state p { margin:0; font-size:13px; }
footer { display:flex; justify-content:space-between; padding:21px 4px 0; color:#778499; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }

.toast-stack { position:fixed; z-index:20; right:24px; bottom:22px; width:min(400px,calc(100vw - 48px)); display:grid; gap:9px; pointer-events:none; }
.toast { overflow:hidden; padding:15px 17px; border:1px solid rgba(99,217,189,.2); border-radius:14px; background:rgba(16,28,44,.97); box-shadow:0 18px 50px rgba(0,0,0,.48); backdrop-filter:blur(22px); animation:toast-in .22s ease-out; }
.toast strong,.toast span { display:block; } .toast strong { color:#f1f4fa; font-size:13px; } .toast span { margin-top:5px; color:var(--muted); font-size:12px; line-height:1.5; white-space:pre-line; }
.toast.critical { border-color:rgba(255,123,132,.3); } .toast.normal { border-color:rgba(244,199,109,.25); } .toast.is-leaving { opacity:0; transform:translateY(7px); transition:.2s ease; }
.journal-overlay { position:fixed; z-index:15; inset:0; display:grid; place-items:center; padding:38px; background:rgba(3,8,15,.76); backdrop-filter:blur(14px); }
.journal-overlay[hidden] { display:none; }
.journal-dialog { width:min(1080px,calc(100vw - 76px)); max-height:min(780px,calc(100vh - 76px)); display:grid; grid-template-rows:auto auto auto minmax(0,1fr); overflow:hidden; border:1px solid rgba(154,167,232,.23); border-radius:21px; background:rgba(12,23,38,.98); box-shadow:0 30px 100px rgba(0,0,0,.64); }
.journal-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 26px 11px; } .journal-dialog h2 { margin:0; font-size:24px; }
.journal-close { width:38px; height:38px; border:1px solid var(--line); border-radius:11px; color:var(--soft-text); background:rgba(255,255,255,.03); font-size:21px; cursor:pointer; }
.journal-close:hover { color:#fff; background:rgba(255,255,255,.09); }
.journal-intro { margin:0; padding:0 26px 19px; color:var(--muted); font-size:13px; line-height:1.5; }
.journal-columns,.journal-row { display:grid; grid-template-columns:130px 170px minmax(0,1fr); gap:16px; }
.journal-columns { padding:11px 26px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#8190a4; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.journal-list { min-height:180px; overflow-y:auto; padding:10px 12px 15px; background:rgba(2,8,15,.28); font-family:var(--technical); scrollbar-width:thin; scrollbar-color:rgba(154,167,232,.31) transparent; }
.journal-row { align-items:start; margin:4px 0; padding:13px 14px; border:1px solid rgba(255,255,255,.055); border-radius:10px; background:rgba(2,8,15,.24); } .journal-row:hover { background:rgba(255,255,255,.035); }
.journal-row time,.journal-repo { color:var(--muted); font-family:var(--technical); font-size:12px; font-variant-numeric:tabular-nums; }
.journal-copy strong { display:block; color:#edf2f8; font-size:13px; font-weight:400; line-height:1.5; } .journal-copy p { margin:6px 0 0; color:var(--muted); font-size:12px; font-weight:400; line-height:1.55; white-space:pre-line; }
.journal-row.is-error { background:rgba(255,123,132,.04); } .journal-row.is-error .journal-copy strong { color:#ff9ca3; }

.version-overlay { position:fixed; z-index:18; inset:0; display:grid; place-items:center; padding:38px; background:rgba(3,8,15,.78); backdrop-filter:blur(14px); }
.version-overlay[hidden] { display:none; }
.version-dialog { width:min(720px,calc(100vw - 76px)); max-height:calc(100vh - 76px); overflow-x:hidden; overflow-y:auto; border:1px solid rgba(255,106,0,.34); border-radius:21px; background:rgba(12,23,38,.98); box-shadow:0 30px 100px rgba(0,0,0,.66),0 0 46px rgba(255,106,0,.09); scrollbar-width:thin; scrollbar-color:rgba(154,167,232,.31) transparent; }
.version-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 26px 18px; }
.version-dialog h2 { margin:0; font-size:25px; }
.version-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:4px 26px 19px; }
.version-details article { padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.027); }
.version-details small,.version-details strong { display:block; }
.version-details small { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.version-details strong { margin-top:7px; color:var(--text); font-size:20px; font-variant-numeric:tabular-nums; }
.version-status { margin:0; padding:0 26px 23px; color:var(--muted); font-size:13px; line-height:1.55; white-space:pre-line; }
.product-provider { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:22px; margin:0 26px 16px; padding:19px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.027); }
.provider-logo { width:100%; height:auto; display:block; padding:11px; border-radius:10px; background:#fff; box-sizing:border-box; }
.product-provider h3,.product-legal h3 { margin:0 0 7px; color:var(--text); font-size:14px; }
.product-provider p,.product-provider address,.product-legal p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.product-provider address { margin-top:7px; font-style:normal; }
.product-provider a { color:var(--orange-soft); }
.product-legal { margin:0 26px 22px; padding:17px 19px; border-left:3px solid var(--orange); background:rgba(255,106,0,.035); }
.product-legal p+p { margin-top:7px; }
.product-legal details { margin-top:12px; color:var(--soft-text); font-size:12px; }
.product-legal summary { cursor:pointer; font-weight:800; }
.license-copy { max-height:180px; overflow-y:auto; margin-top:11px; padding:13px 15px; border:1px solid var(--line); border-radius:10px; background:rgba(2,8,15,.24); color:var(--muted); font-family:var(--technical); font-size:10px; line-height:1.48; }
.license-copy p,.license-copy ol { margin:0 0 9px; }
.license-copy ol { padding-left:19px; }
.version-dialog>footer { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:18px 26px 22px; border-top:1px solid var(--line); color:inherit; font-size:inherit; letter-spacing:0; text-transform:none; }
.version-dialog>footer>button { min-height:39px; padding:9px 14px; border:1px solid var(--line); border-radius:10px; color:var(--soft-text); background:rgba(255,255,255,.04); font-size:12px; font-weight:800; cursor:pointer; }
.version-dialog>footer>button:hover { color:#fff; background:rgba(255,255,255,.09); }
.version-dialog .update-actions { min-width:260px; }

.announcement-overlay { position:fixed; z-index:18; inset:0; display:grid; place-items:center; padding:38px; background:rgba(3,8,15,.8); backdrop-filter:blur(15px); }
.announcement-overlay[hidden] { display:none; }
.announcement-dialog { width:min(700px,calc(100vw - 76px)); max-height:calc(100vh - 76px); overflow:auto; border:1px solid rgba(255,123,132,.52); border-radius:21px; background:var(--panel-solid); box-shadow:var(--shadow); }
.announcement-dialog>header { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:15px; padding:25px 26px 17px; }
.announcement-dialog h2 { margin:0; font-size:25px; }
.announcement-dialog .eyebrow { margin-bottom:5px; color:#ff929a; }
.announcement-dialog-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:15px; color:#fff; background:var(--red); box-shadow:0 7px 25px rgba(255,54,68,.28); }
.announcement-dialog-icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.announcement-copy { margin:0; padding:10px 26px 22px; color:var(--text); font-size:20px; font-weight:720; line-height:1.5; overflow-wrap:anywhere; white-space:pre-wrap; }
.announcement-meta { display:flex; flex-wrap:wrap; gap:8px; padding:0 26px 23px; color:#abb6c5; font-size:12px; }
.announcement-meta span { padding:6px 9px; border:1px solid rgba(255,255,255,.1); border-radius:999px; background:rgba(255,255,255,.04); }
.announcement-dialog>footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding:18px 26px 22px; border-top:1px solid var(--line); color:inherit; font-size:inherit; letter-spacing:0; text-transform:none; }
.announcement-status { color:#ffabb1; font-size:12px; font-weight:700; line-height:1.4; }
.announcement-buttons { display:flex; flex-wrap:wrap; gap:9px; }
.announcement-buttons button { min-height:39px; padding:9px 14px; border:1px solid var(--line); border-radius:10px; color:var(--soft-text); background:rgba(255,255,255,.04); font-size:12px; font-weight:800; cursor:pointer; }
.announcement-buttons button:hover { color:#fff; background:rgba(255,255,255,.09); }
.announcement-buttons button.primary { border-color:rgba(255,123,132,.55); color:#fff; background:var(--red); }
.announcement-buttons button.primary:hover { background:#dc3945; }
.announcement-buttons button:disabled { opacity:.48; cursor:wait; }

@keyframes spin { to { transform:rotate(360deg); } } @keyframes toast-in { from { opacity:0; transform:translateY(9px) scale(.98); } }
@keyframes alarm-pulse { 50% { transform:scale(1.22); box-shadow:0 0 0 12px rgba(255,123,132,.03),0 0 38px rgba(255,123,132,.58); } }
@keyframes server-alert { 50% { opacity:.62; box-shadow:0 0 13px rgba(255,123,132,.6); } }
@keyframes announcement-panel-alert {
  0%,100% { background:color-mix(in srgb,var(--panel-solid) 83%,#8f0714); box-shadow:0 0 0 rgba(255,54,68,0); }
  50% { background:color-mix(in srgb,var(--panel-solid) 61%,#d91727); box-shadow:0 0 36px rgba(255,54,68,.34); }
}
@media (max-width:1100px) {
  .shell { width:calc(100% - 40px); } .hero { grid-template-columns:1fr auto; gap:24px; padding-inline:2%; } .pulse-card { transform:scale(.84); }
  .metrics { grid-template-columns:repeat(6,minmax(180px,1fr)); overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:rgba(154,167,232,.31) transparent; }
  .metrics article { scroll-snap-align:start; }
  .content-grid { grid-template-columns:1fr; } .side-column { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px) {
  .server-folders { --repo-title-min:330px; --repo-size-column:96px; }
  .repo-columns,.repo-row { min-width:calc(var(--repo-title-min) + var(--repo-actions-column) + var(--repo-size-column) + 24px); grid-template-columns:minmax(var(--repo-title-min),1fr) var(--repo-actions-column) var(--repo-size-column); }
  .repo-queue,.column-queue { display:none; } .journal-dialog { width:calc(100vw - 40px); } .journal-columns,.journal-row { grid-template-columns:115px 140px minmax(0,1fr); }
}
@media (max-width:800px) {
  .side-column { grid-template-columns:1fr; } .server-folders { --repo-title-min:320px; }
  .repo-columns,.repo-row { min-width:calc(var(--repo-title-min) + var(--repo-actions-column) + 12px); grid-template-columns:minmax(var(--repo-title-min),1fr) var(--repo-actions-column); } .repo-size,.repo-columns span:last-child { display:none; }
  .product-provider { grid-template-columns:1fr; } .provider-logo { width:150px; }
}
@media (prefers-color-scheme:light) {
  :root:not([data-system-theme="dark"]) .ambient { opacity:.1; } :root:not([data-system-theme="dark"]) .icon-button,:root:not([data-system-theme="dark"]) .theme-switch,:root:not([data-system-theme="dark"]) .window-controls,:root:not([data-system-theme="dark"]) .repo-row,:root:not([data-system-theme="dark"]) .activity-row,:root:not([data-system-theme="dark"]) .text-button,:root:not([data-system-theme="dark"]) .repo-icon-action,:root:not([data-system-theme="dark"]) .journal-close { background:rgba(11,29,58,.025); }
  :root:not([data-system-theme="dark"]) .window-button { color:#526275; } :root:not([data-system-theme="dark"]) .window-button:hover { color:var(--text); background:rgba(11,29,58,.07); } :root:not([data-system-theme="dark"]) .pulse-caption { background:rgba(255,255,255,.92); }
  :root:not([data-system-theme="dark"]) .server-panel { background:rgba(255,255,255,.4); } :root:not([data-system-theme="dark"]) .server-header { background:linear-gradient(105deg,color-mix(in srgb,var(--realm-accent) 11%,transparent),rgba(18,100,163,.035) 58%,transparent); }
  :root:not([data-system-theme="dark"]) .repo-row:hover { border-color:rgba(11,29,58,.12); background:rgba(255,255,255,.7); } :root:not([data-system-theme="dark"]) .realm-divider::after { background:rgba(11,29,58,.09); } :root:not([data-system-theme="dark"]) .realm-divider b { color:#68778a; background:rgba(11,29,58,.05); }
  :root:not([data-system-theme="dark"]) .reservation-main>strong,:root:not([data-system-theme="dark"]) .shout-main>strong,:root:not([data-system-theme="dark"]) .dashboard-share-copy strong,:root:not([data-system-theme="dark"]) .journal-copy strong,:root:not([data-system-theme="dark"]) .toast strong { color:var(--text); } :root:not([data-system-theme="dark"]) .toast { background:rgba(255,255,255,.97); box-shadow:0 18px 50px rgba(47,65,79,.24); }
  :root:not([data-system-theme="dark"]) .journal-overlay,:root:not([data-system-theme="dark"]) .announcement-overlay,:root:not([data-system-theme="dark"]) .version-overlay { background:rgba(218,226,232,.78); } :root:not([data-system-theme="dark"]) .journal-dialog,:root:not([data-system-theme="dark"]) .version-dialog { background:rgba(255,255,255,.98); box-shadow:0 30px 100px rgba(47,65,79,.28); }
  :root:not([data-system-theme="dark"]) .announcement-dialog { background:linear-gradient(145deg,rgba(255,232,234,.99),rgba(255,255,255,.99) 62%); box-shadow:0 30px 100px rgba(47,65,79,.3),0 0 42px rgba(218,54,67,.13); } :root:not([data-system-theme="dark"]) .announcement-copy { color:var(--text); } :root:not([data-system-theme="dark"]) .announcement-meta { color:var(--muted); }
  :root:not([data-system-theme="dark"]) .journal-list { background:rgba(11,29,58,.035); } :root:not([data-system-theme="dark"]) .journal-row { border-color:rgba(11,29,58,.075); background:rgba(11,29,58,.025); } :root:not([data-system-theme="dark"]) .journal-row:hover { background:rgba(11,29,58,.045); } :root:not([data-system-theme="dark"]) footer { color:#68778a; }
  :root:not([data-system-theme="dark"]) .license-copy { background:rgba(11,29,58,.035); }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } #shouts-card.has-unread { background:color-mix(in srgb,var(--panel-solid) 68%,#c20f20); box-shadow:0 0 28px rgba(255,54,68,.25); } }

/* Nazwy plików bywają jednym ciągiem bez spacji (np. Drzwi_PORTA_..._DWG.dwg)
   i bez tego wychodzą poza kartę - widoczne w Sygnałach i w Dzienniku.
   min-width:0 jest konieczne, bo elementy siatki/flexa domyślnie nie kurczą
   się poniżej rozmiaru treści i samo łamanie by nie zadziałało. */
.activity-row,
.activity-row *,
.journal-row,
.journal-row * {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.repo-unportable { grid-column:1/-1; margin-top:11px; padding:10px 12px; border:1px solid rgba(244,199,109,.28); border-radius:10px; background:rgba(244,199,109,.06); }
.repo-unportable strong { display:block; margin-bottom:6px; color:var(--amber); font-size:11px; font-weight:800; letter-spacing:.04em; }
.repo-unportable ul { margin:0; padding:0; list-style:none; display:grid; gap:5px; }
.repo-unportable li { display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr) auto; gap:9px; align-items:baseline; font-size:12px; }
.repo-unportable code { color:#f0e2c2; font-size:11px; word-break:break-all; }
.repo-unportable span { color:var(--soft-text); }
.repo-unportable .unportable-rename { padding:4px 10px; border:1px solid rgba(244,199,109,.36); border-radius:8px; color:#f0e2c2; background:rgba(244,199,109,.08); font-size:11px; font-weight:700; cursor:pointer; transition:.16s ease; }
.repo-unportable .unportable-rename:hover { border-color:rgba(244,199,109,.6); background:rgba(244,199,109,.16); }
.repo-unportable .unportable-rename:disabled { opacity:.4; cursor:wait; }

.repo-view-preferences { margin:0 0 18px; color:var(--soft-text); }
.repo-view-preferences summary, .idle-group summary { cursor:pointer; padding:12px 4px; font-size:14px; font-weight:600; }
.repo-view-fields { display:flex; flex-wrap:wrap; align-items:end; gap:16px; padding:12px 0; }
.repo-view-fields label { display:grid; gap:8px; font-size:14px; }
.repo-view-fields input { width:110px; padding:9px; border:1px solid var(--line); border-radius:10px; color:inherit; background:transparent; font:inherit; }
.repo-view-fields input, .repo-view-fields .primary-button { box-sizing:border-box; height:40px; }
.repo-view-fields .primary-button { font-family:inherit; font-size:14px; padding:9px 16px; }
.repo-view-fields input:focus-visible, .repo-view-fields .primary-button:focus-visible { outline:2px solid var(--theme-focus); outline-offset:3px; }
.repo-view-preferences p { font-size:14px; line-height:1.6; }
.idle-group { margin:8px 0; padding:0 12px; border:1px solid var(--line); border-radius:14px; background:rgba(128,144,166,.04); }
.idle-group summary:focus-visible, .repo-view-preferences summary:focus-visible { outline:2px solid currentColor; outline-offset:2px; border-radius:8px; }
:root .language-preference {
  flex: 0 1 auto;
  max-width: 190px;
  min-width: 100px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--theme-line);
  border-radius: 10px;
  color: var(--theme-text);
  background: var(--theme-panel-solid);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  --wails-draggable: no-drag;
}
.language-preference:focus-visible {
  outline: 2px solid var(--theme-focus);
  outline-offset: 2px;
}

/* Raw daemon diagnostics in the full journal. Monospace and wrapped because
   it is machine text a person copies into a report, not prose to read. */
.journal-diagnostics {
  margin: 6px 0 0;
  padding: 6px 8px;
  border-radius: 6px;
  background: rgba(127, 127, 127, 0.12);
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 12px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  opacity: 0.85;
}
.parent-shelves {
  margin: 0 0 16px 24px;
  padding-left: 12px;
  border-left: 2px solid var(--realm-accent, #ff6a00);
  min-width: 0;
}
/* Reuse the action spinner while the update dialog remains open. */
.update-in-progress::before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 8px; border: 2px solid #ff6a0033; border-top-color: #ff6a00; border-radius: 50%; animation: update-spinner 1s linear infinite; }
@keyframes update-spinner { to { transform: rotate(360deg); } }
