/* Signal production theme. Shared layout lives in obsidian.css; page rules are scoped below. */
:root{background:#08090d;--border:rgba(255,235,224,.10);--muted:#b7adaa;--orange:#ff681e}
body{background:#08090d;color:#f7f1ee}
.ambient-background{background:#08090d}
.ambient-background:before{inset:-4%;background:radial-gradient(ellipse 55% 38% at 19% 0%,#fa571b 0%,#cf3c13b5 30%,#8b2a1545 63%,transparent 100%),radial-gradient(ellipse 51% 39% at 94% 7%,#e93415e6 0%,#b9261690 31%,#83171933 65%,transparent 100%),radial-gradient(ellipse 44% 27% at 56% -7%,#eb6417b3,transparent 90%);animation:signal-drift 14s ease-in-out infinite alternate;transform-origin:50% 0}
.ambient-background:after{inset:-8%;background:radial-gradient(ellipse 45% 36% at 85% 78%,#f46a1652,transparent 80%),radial-gradient(ellipse 44% 30% at 36% 90%,#f94e1245,transparent 80%);animation:signal-ember 17s ease-in-out infinite alternate;transform-origin:50% 85%}
@keyframes signal-drift{0%{transform:translate(-3%,-2%) scale(1);opacity:.85}50%{opacity:1}100%{transform:translate(4%,3%) scale(1.09);opacity:.9}}
@keyframes signal-ember{from{transform:translate(-5%,2%) scale(1);opacity:.65}to{transform:translate(6%,-3%) scale(1.12);opacity:1}}
.crm-sidebar{background:linear-gradient(180deg,#1b100e35,#09090ddd 63%);border-right:1px solid #ffffff0d;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.crm-main>.topbar{border-bottom:1px solid #ffffff12;margin-bottom:10px;background:#ffffff03}
.breadcrumb{color:#e0c3b8}.breadcrumb strong{color:#fff}.breadcrumb span{color:#c49987}
.icon-button{background:linear-gradient(135deg,#ffffff20,#ffffff04);border:1px solid #ffffff2c;box-shadow:inset 0 1px #ffffff16;color:#f5e6df;width:32px;height:32px}
.demo-label{background:#120b0733;border-color:#ffffff24;color:#f2d8cd}
.overview-actions{margin:22px 0 20px}.period-picker,.button{background:#ffffff09;border:1px solid #ffffff22;border-radius:24px;color:#f0e3dd;backdrop-filter:blur(14px)}
.button.primary{background:linear-gradient(110deg,#ff951c,#ff5312 55%,#cd210d);border-color:#ff91353b;box-shadow:inset 0 1px #ffffff24,0 5px 22px #d130122a;color:#fff}
.metric,.panel,.exchange-card{border:1px solid #ffffff13;background:linear-gradient(125deg,#141416,#0d0d0f);box-shadow:inset 0 1px #ffffff09,0 8px 24px #00000020;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-radius:18px}
.panel:before{display:none}.metric{min-height:148px;padding:20px 18px 48px;background:linear-gradient(120deg,rgba(19,19,21,.95),rgba(12,12,14,.95));border-color:rgba(255,235,221,.12);backdrop-filter:blur(12px) saturate(110%);-webkit-backdrop-filter:blur(12px) saturate(110%);box-shadow:inset 0 1px 0 rgba(255,244,235,.14),inset 1px 0 0 rgba(255,230,211,.06),inset 0 -1px 0 rgba(255,255,255,.07),0 8px 24px #00000026}
.metric:before{display:block;background:linear-gradient(115deg,transparent 15%,rgba(255,239,224,.01) 30%,rgba(255,239,224,.04) 44%,rgba(255,239,224,.01) 57%,transparent 72%);background-size:240% 100%;animation:glass-reflection 14s ease-in-out infinite alternate}
.metric-title{color:#cdbdb4;font-size:11px;position:relative;padding-right:28px;min-height:24px}
.metric-title>svg{position:absolute;right:0;top:-5px;width:30px;height:30px;padding:7px;border:1px solid #ffffff32;border-radius:50%;background:linear-gradient(130deg,#ffffff20,#ffffff03);box-shadow:inset 0 1px #ffffff17}
.metric-number{font-size:29px;margin-top:10px;letter-spacing:-1px;color:#fff6ef}
.metric-bottom{position:absolute;bottom:0;left:0;right:0;min-height:37px;padding:10px 16px;background:#0606084f;border-top:1px solid #ffffff05;color:#c2b7b1;font-size:9px;gap:7px}
.metric .spark{width:44px;bottom:48px;right:14px;opacity:.55}.average-metric{padding-bottom:18px}.average-values{margin-top:10px}.average-values small{color:#c1b1a9}.average-values strong{color:#fff2e9}
.panel{background:linear-gradient(115deg,#121214c9,#0c0c11aa)}
.panel h2{color:#f0e7e2;font-size:14px;font-weight:400}.panel-subtitle,.chart-legend,.chart-foot,.direction-legend,.overview-note{color:#b4aaa6}
.chart-total,.expense-total{color:#f8eee9}.segment{border-radius:22px;background:#ffffff07;border:1px solid #ffffff0f;padding:3px}.segment button{border-radius:20px;color:#bfb3ab}.segment .selected{background:#ffffff10;color:#fff2e9;box-shadow:inset 0 1px #ffffff12}
.direction-panel,.exchange-card{background:radial-gradient(ellipse at 70% 90%,#c550071c,transparent 75%),linear-gradient(125deg,#171313c9,#0c0c11aa)}
.orange-bar{background:linear-gradient(180deg,#ffb154,#ff6415 55%,#d82d0d)!important;box-shadow:0 0 28px #ff6a1518,inset 1px 0 #ffd0a340}
.bar:not(.orange-bar){background:linear-gradient(180deg,#9c8580,#574740)}
.expense-row{padding:10px 12px;margin-top:5px;background:#ffffff04;border-radius:9px;color:#d2c8c3;font-size:12px}.expense-row b{color:#f4e8e2}.expense-track{opacity:.85}
.traffic-track{background:#ffffff08}.traffic-track span{background:linear-gradient(90deg,var(--source-color),var(--source-color));opacity:.9}.traffic-row{color:#d1c4bc}
.chart-months .selected{background:#ff6a1520;color:#ffaf77}.chart-months button,.text-button{color:#c4b4aa}.tag{background:#ffffff08;color:#c4b5ad}footer{color:#aea09a}.logout-button{background:#ffffff04}
@media(min-width:1101px) and (max-height:950px){.metric{min-height:142px}.overview-actions{margin:20px 0 18px}}
@media(max-width:800px){.metric{padding:16px 13px 49px}.metric-title{font-size:10px}.metric-number{font-size:25px}.average-metric{padding-bottom:18px}.metric-bottom{padding:9px 12px}.top-actions{gap:8px}.breadcrumb{font-size:9px}.ambient-background:before{background:radial-gradient(ellipse 100% 29% at 25% 0%,#e34d17db,transparent 95%),radial-gradient(ellipse 70% 26% at 100% 12%,#b52e1f80,transparent 95%)}}
@media(max-width:520px){.demo-label{max-width:72px;text-align:center;font-size:8px}.breadcrumb{gap:7px}.breadcrumb>span{display:none}.breadcrumb{font-size:0}.breadcrumb strong{font-size:12px}.metric{min-height:147px}.metric-title{padding-right:24px}.metric-title>svg{width:26px;height:26px;padding:6px}.metric .spark{width:30px;opacity:.4}.metric-number{font-size:25px}.average-metric{min-height:135px}.top-actions{gap:7px}.overview-actions{gap:14px}.metric-bottom{font-size:9px}.panel h2{font-size:13px}}

/* Anchor the lower light to its cards rather than the viewport bottom. */
.bottom-grid{position:relative;isolation:isolate}
.bottom-grid:before{content:"";position:absolute;z-index:-1;inset:-35px 0 -18px;pointer-events:none;border-radius:28px;background:radial-gradient(ellipse 48% 78% at 20% 85%,rgba(255,99,14,.78),transparent 78%),radial-gradient(ellipse 43% 85% at 88% 52%,rgba(235,66,12,.64),transparent 82%);background-size:130% 130%;filter:blur(32px);animation:signal-lower-flow 12s ease-in-out infinite alternate}
.bottom-grid>.panel{background:linear-gradient(115deg,#121214,#0c0c11);backdrop-filter:none;-webkit-backdrop-filter:none}
@keyframes signal-lower-flow{from{background-position:0% 20%;opacity:.85}to{background-position:100% 90%;opacity:1}}
.motion-paused .bottom-grid:before{animation-play-state:paused}

/* Shared surfaces and controls. Dense content remains opaque. */
:root{--signal-panel:#121214;--signal-menu:linear-gradient(140deg,#18181a,#101012);--signal-primary:linear-gradient(110deg,#ff951c,#ff5312 55%,#cd210d)}
.crm-sidebar .crm-nav-scroll{margin-top:16px}.crm-sidebar .nav-group:first-child{margin-top:12px}
.nav-group>p{color:#b4a39d}.nav-item{color:#c8bfbb}.nav-item i{color:#bfb3ad}
.nav-item.active{background:linear-gradient(110deg,#ffffff23,#ffffff09);border-color:#ffffff25;border-radius:11px;box-shadow:inset 0 1px #ffffff1c,0 4px 16px #16060030}
.nav-item.active:before{background:#ff8545;box-shadow:0 0 16px #ff5615}
.glass{background:linear-gradient(125deg,#141416,#101012);border:1px solid #ffffff18;box-shadow:inset 0 1px #ffffff0d,0 8px 24px #0003;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.modal-in,.panel-in{background:var(--signal-menu)!important;border-color:#ffffff22!important;box-shadow:inset 0 1px #ffffff16,0 30px 90px #0009!important}
.crm-dialog-overlay>.glass{background:var(--signal-menu)}
.crm-table-scroll{background:#101014;border-color:#ffffff18;border-radius:16px}.crm-table-header{color:#c3b5ad}.trow:hover{background:#ff8a4010!important}.trow.selected{background:#ff6a1512!important}
.crm-page-header h1{color:#f7eee8;letter-spacing:-.5px}.crm-page-header p{color:#baada5}
.crm-content input:not([type=checkbox]):not([type=radio]),.crm-content textarea,.crm-content select,.modal-in input:not([type=checkbox]):not([type=radio]),.modal-in textarea,.modal-in select{background-color:#111113;color:#f3e9e2;border-color:#ffffff21}
select option{background:#19191b;color:#f3e9e2}
.signal-load-error{margin:16px 0;padding:16px 20px;border:1px solid #ed977c40;border-radius:14px;background:#241715;color:#f0c2b2;display:flex;align-items:center;justify-content:space-between;gap:16px}.signal-load-error p{margin:0;line-height:1.6}
/* Page-specific treatments preserve each workflow and its density. */
.crm-content[data-page=orders] .crm-table-scroll{box-shadow:0 12px 35px #0003}
.crm-content[data-page=clients] .crm-table-scroll,.crm-content[data-page=contractors] .crm-table-scroll{background:linear-gradient(135deg,#141416,#0e0e10)}
.crm-content[data-page=salary] .crm-salary-employees{background:#101012;border:1px solid #ffffff12;border-radius:16px;padding:12px;align-self:flex-start}
.crm-content[data-page=team] .crm-table-scroll{border-radius:18px!important;background:linear-gradient(125deg,#141416,#101012)!important}
.crm-content[data-page=expenses] .crm-responsive-grid{gap:16px!important}
.crm-content[data-page=marketing] .glass{border-radius:18px;background:linear-gradient(130deg,#141416,#101012)}
.crm-content[data-page=pl] .pl-table{background:#101014}.crm-content[data-page=pl] .crm-table-header{background:#19191b!important}
.crm-content[data-page=reminders] .reminder-card{border-radius:16px!important;background:#111113!important}
.crm-content[data-page=dashboard] .employee-greeting{border-bottom:1px solid #ffffff12;margin-bottom:20px}
.signal-auth .glass{background:linear-gradient(135deg,#141416,#101012);border:1px solid #ffffff25;box-shadow:inset 0 1px #ffffff20,0 24px 70px #0007}

.signal-empty{padding:32px;color:#baada5;text-align:center;font-size:13px}
.crm-content[data-page=dashboard] .overview-period select{background:#ffffff09}

/* Separate management from the preceding financial navigation. */
.crm-sidebar .nav-group-management{margin-top:32px}

/* A restrained signal pulse for real pending requests, without artificial delays. */
.signal-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px;color:#bcbcbc}
.signal-loader-mark{position:relative;display:block;width:var(--loader-size);height:var(--loader-size)}
.signal-loader-mark:before,.signal-loader-mark:after{content:"";position:absolute;inset:0;border-radius:50%}
.signal-loader-mark:before{border:2px solid #ffffff12;border-top-color:#ff792e;border-right-color:#ff792e55;animation:signal-orbit 1.4s linear infinite}
.signal-loader-mark:after{inset:35%;background:#ff792e;box-shadow:0 0 14px #ff681e66;animation:signal-pulse 1.4s ease-in-out infinite}
.signal-loader-label{font-size:11px;letter-spacing:.06em}
@keyframes signal-orbit{to{transform:rotate(360deg)}}
@keyframes signal-pulse{50%{opacity:.35;transform:scale(.65)}}
.motion-paused .signal-loader-mark:before,.motion-paused .signal-loader-mark:after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.signal-loader-mark:before,.signal-loader-mark:after{animation:none}}

/* Neutral liquid glass: 95% dark base by default; dashboard KPIs allow more light through. */
:root{
  --signal-glass-edge:inset 0 1px 0 #ffffff24,inset 1px 0 0 #ffffff0c,inset 0 -1px 0 #ffffff08,0 12px 30px #00000026;
}
.metric,.glass,.signal-card,.crm-content[data-page=marketing] .glass{
  --signal-glass:linear-gradient(125deg,#ffffff0d,transparent 42%,#ffffff03 75%,#ffffff07),linear-gradient(150deg,rgba(24,25,28,var(--signal-glass-opacity,.95)),rgba(13,14,17,var(--signal-glass-opacity,.95)));
  background:var(--signal-glass)!important;
  border-color:#ffffff20;
  box-shadow:var(--signal-glass-edge);
  backdrop-filter:blur(20px) saturate(70%);-webkit-backdrop-filter:blur(20px) saturate(70%);
}
.metric:before{background:linear-gradient(115deg,transparent 15%,#ffffff02 30%,#ffffff0e 44%,#ffffff02 57%,transparent 72%);background-size:240% 100%}
/* Dense tables and the two lower dashboard panels stay opaque, with a soft glass rim. */
.crm-table-scroll,.crm-content[data-page=salary] .crm-salary-employees{box-shadow:var(--signal-glass-edge)}
.crm-dialog-overlay>.glass,.modal-in,.panel-in{background:var(--signal-menu)!important}

/* Gentle glass treatment only on the five dashboard summary cards. */
.crm-content[data-page=dashboard] .metric{
  --signal-glass-opacity:.55;
  --signal-glass:linear-gradient(125deg,#ffffff12,transparent 48%,#ffffff08),linear-gradient(150deg,rgba(48,49,53,var(--signal-glass-opacity)),rgba(32,33,37,var(--signal-glass-opacity)));
  border-color:#ffffff14;
  box-shadow:inset 0 1px 0 #ffffff12,inset 1px 0 0 #ffffff05,0 8px 24px #00000020;
  backdrop-filter:blur(26px) saturate(65%);-webkit-backdrop-filter:blur(26px) saturate(65%);
}
.crm-content[data-page=dashboard] .metric:before{
  background:linear-gradient(115deg,transparent 20%,#ffffff02 34%,#ffffff09 46%,#ffffff02 58%,transparent 74%);
  background-size:240% 100%;animation-duration:18s;
}

/* Stronger refraction on the exchange form; keep the fields opaque and readable. */
.crm-content[data-page=exchange] .exchange-card{
  background:linear-gradient(125deg,#ffffff10,transparent 35%,#ffffff02 65%,#ffffff07),linear-gradient(145deg,rgba(20,21,24,.78),rgba(10,11,14,.72));
  border-color:#ffffff38;
  box-shadow:inset 0 1px 0 #ffffff45,inset 1px 0 0 #ffffff20,inset 0 -1px 0 #ffffff14,0 18px 48px #00000038;
  backdrop-filter:blur(32px) saturate(80%);-webkit-backdrop-filter:blur(32px) saturate(80%);
}

/* Light behind the glass, anchored to the form's lower-right corner. */
.crm-content[data-page=exchange] .exchange-card{position:relative;isolation:isolate;overflow:hidden}
.exchange-card:before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  width:85%;height:65%;right:-28%;bottom:-24%;border-radius:50%;
  background:radial-gradient(ellipse at 60% 65%,#ff891c66 0%,#ef48143d 32%,#e3321015 56%,transparent 74%);
  filter:blur(24px);animation:exchange-glow-flow 12s ease-in-out infinite alternate;
}
@keyframes exchange-glow-flow{
  from{transform:translate(4%,5%) scale(.94);opacity:.55}
  to{transform:translate(-10%,-8%) scale(1.14);opacity:.95}
}
.motion-paused .exchange-card:before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.exchange-card:before{animation:none;opacity:.7}}

/* Reference-style dark translucent footers with quiet rounded labels. */
.crm-content[data-page=dashboard] .metric-bottom{
  background:linear-gradient(110deg,rgba(6,7,9,.78),rgba(9,10,12,.65));
  border-top:1px solid #ffffff04;padding:9px 12px;gap:5px;flex-wrap:wrap;
}
.crm-content[data-page=dashboard] .metric-bottom>span{
  display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;
  background:#ffffff09;box-shadow:inset 0 1px 0 #ffffff08;color:#c2b7b1;line-height:1.3;
}
.crm-content[data-page=dashboard] .average-values small{
  display:inline-block;width:fit-content;padding:3px 7px;border-radius:999px;
  background:rgba(6,7,9,.5);box-shadow:inset 0 1px 0 #ffffff08;
}
@media(min-width:801px) and (max-width:1400px){
  .crm-content[data-page=dashboard] .metric-bottom{padding:9px 10px;gap:4px}
  .crm-content[data-page=dashboard] .metric-bottom>span{padding:3px 5px;font-size:8px}
}

/* One typeface for text, numbers, forms and dialogs, matching the dashboard. */
:root{--font-ui:'Inter';--font-numbers:var(--font-ui);font-family:var(--font-ui),sans-serif}
body,button,input,select,textarea,option{font-family:var(--font-ui),sans-serif}
.avatar{background:#000}

/* Shared client identity and reminder time controls. */
.telegram-username{display:inline-flex;align-items:center;gap:5px;position:relative;max-width:100%;vertical-align:middle}
.telegram-handle,.telegram-copy{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.telegram-handle{overflow-wrap:anywhere;text-align:left}
.telegram-copy{display:inline-flex;flex-shrink:0;padding:4px;color:var(--muted)}
.telegram-handle:hover,.telegram-copy:hover{color:var(--orange)}
.telegram-username button:focus-visible,.crm-time-picker button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.telegram-copy-status{position:absolute;top:100%;left:0;z-index:450;padding:6px 10px;background:#18181a;border:1px solid #ffffff26;border-radius:7px;color:#f7f1ee;font-size:11px;min-width:100px;max-width:240px}
.telegram-copy-status input{width:100%;color:inherit;background:#111113;border:1px solid #ffffff26;padding:5px;box-sizing:border-box}
.new-client-badge{display:inline-block;font-size:10px;color:var(--orange);background:#ff681e18;border-radius:6px;padding:3px 6px;margin-top:3px}
.crm-time-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.crm-time-column label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#c2b5ad}
.crm-time-column input{width:100%;box-sizing:border-box;background:#1b1b1d;color:#f7f1ee;border:1px solid #ffffff26;border-radius:8px;padding:7px;text-align:center;font:inherit;font-size:14px;font-variant-numeric:tabular-nums}
.crm-time-column input:focus{outline:1px solid var(--orange)}
.crm-time-column input[aria-invalid=true]{border-color:var(--semantic-red)}
.crm-time-list{position:relative;margin-top:6px;height:108px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-radius:8px;background:#111113}
.crm-time-list button{display:block;width:100%;height:30px;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:#c2b5ad;font:inherit;font-size:12px;cursor:pointer}
.crm-time-list button:hover{background:#ffffff14}
.crm-time-list button[aria-selected=true]{background:var(--orange);color:#fff}
.crm-time-done{margin-top:10px;width:100%;padding:8px;border:0;border-radius:8px;background:var(--orange);color:#fff;cursor:pointer}
.crm-time-done:disabled{opacity:.5;cursor:not-allowed}

:root{--semantic-green:#1DD613;--semantic-red:#D91111;--semantic-green-rgb:29,214,19;--semantic-red-rgb:217,17,17}

/* Repeat purchases: comparable rings on a fixed 0–100% scale. */
.obsidian-overview .client-retention{margin:24px 0}
.retention-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.retention-heading>div:first-child{display:flex;flex-direction:column;gap:5px}
.retention-heading strong{font-size:15px;font-weight:500;color:var(--text)}
.retention-subtitle{font-size:11px;color:var(--muted)}
.retention-period{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted)}
.retention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.retention-card{min-width:0;padding:20px 24px;border:1px solid #ffffff12;border-radius:16px;background:linear-gradient(125deg,#191819,#111113);color:var(--muted);font-size:11px}
.retention-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.retention-card-top>strong{color:var(--text);font-size:13px;font-weight:500}
.retention-card-top>span{font-size:10px;color:var(--muted)}
.retention-reading{display:flex;align-items:center;gap:22px;margin-top:20px}
.retention-ring{position:relative;width:96px;height:96px;flex-shrink:0;display:grid;place-items:center}
.retention-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:5}
.retention-ring-base{stroke:#ffffff0b}
.retention-ring-value{stroke:var(--orange)}
.retention-ring>span{font-size:25px;font-weight:400;letter-spacing:-1px;color:var(--text);font-variant-numeric:tabular-nums}
.retention-caption{display:flex;flex-direction:column;gap:6px;line-height:1.5}
.retention-caption>strong{font-size:16px;font-weight:500;color:var(--text)}
.retention-secondary{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:10px}
.retention-secondary b{margin-left:5px;color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}
.retention-pending{border-top:1px solid #ffffff0b;margin-top:16px;padding-top:12px;font-size:10px;line-height:1.6}
.retention-help{font-size:11px;color:var(--muted);line-height:1.7;margin-top:10px}
.retention-help summary{cursor:pointer;width:fit-content;font-size:10px}
.retention-help summary:hover{color:var(--text)}
.retention-help p{margin:8px 0;max-width:780px}
.retention-loading{min-height:180px;display:grid;place-items:center;border:1px solid #ffffff12;border-radius:16px}
@media(max-width:750px){.retention-grid{grid-template-columns:1fr}.retention-card{padding:18px}.retention-reading{gap:18px}.retention-heading{gap:12px}.retention-caption>strong{font-size:15px}}
