:root,:root[data-theme=light]{--bg: #f4efe7;--surface: rgba(255, 252, 247, .82);--surface-strong: #fffdf8;--surface-alt: rgba(24, 53, 47, .03);--surface-dark: #18352f;--line: rgba(24, 53, 47, .12);--text: #18352f;--text-muted: #5f7068;--muted: #5f7068;--primary: #0f766e;--sidebar-start: #14312b;--sidebar-end: #112721;--tenant-logo-url: none;--primary-hover: #0a5c56;--primary-bg: rgba(15, 118, 110, .08);--teal: #0f766e;--teal-strong: #0a5c56;--amber: #d97706;--blue: #2563eb;--rose: #be123c;--success: #0f766e;--success-bg: rgba(15, 118, 110, .1);--warning: #d97706;--warning-bg: rgba(217, 119, 6, .1);--error: #be123c;--error-bg: rgba(190, 18, 60, .1);--info: #2563eb;--info-bg: rgba(37, 99, 235, .1);--shadow: 0 24px 80px rgba(24, 53, 47, .12);color-scheme:light;font-family:Segoe UI,Helvetica Neue,sans-serif;background:radial-gradient(circle at top left,rgba(15,118,110,.14),transparent 30%),radial-gradient(circle at top right,rgba(37,99,235,.12),transparent 24%),linear-gradient(180deg,#faf6ef,#f4efe7);color:var(--text)}:root[data-theme=dark]{--bg: #0d1f1c;--surface: rgba(28, 50, 46, .82);--surface-strong: #1a3530;--surface-alt: rgba(255, 255, 255, .04);--surface-dark: #0a1815;--line: rgba(255, 255, 255, .1);--text: #e8efed;--text-muted: #9aaca5;--muted: #9aaca5;--primary: #14b8a6;--sidebar-start: #0a1815;--sidebar-end: #07110f;--primary-hover: #2dd4bf;--primary-bg: rgba(20, 184, 166, .16);--teal: #2dd4bf;--teal-strong: #14b8a6;--amber: #f59e0b;--blue: #60a5fa;--rose: #f87171;--success: #2dd4bf;--success-bg: rgba(20, 184, 166, .18);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .18);--error: #f87171;--error-bg: rgba(248, 113, 113, .18);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .18);--shadow: 0 24px 80px rgba(0, 0, 0, .5);color-scheme:dark;background:radial-gradient(circle at top left,rgba(20,184,166,.1),transparent 30%),radial-gradient(circle at top right,rgba(96,165,250,.08),transparent 24%),linear-gradient(180deg,#0d1f1c,#07110f)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}body,button,input,select,textarea,table,th,td{font:inherit}button,input,select,textarea{outline:none}a{color:inherit}#root{min-height:100vh}.route-splash{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.route-splash__inner{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:.875rem}.route-splash__spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:splash-spin .7s linear infinite}@keyframes splash-spin{to{transform:rotate(360deg)}}.app-shell{height:100vh;overflow:hidden;display:grid;grid-template-columns:300px minmax(0,1fr)}.app-shell__sidebar{position:relative;overflow:hidden;padding:32px 24px;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent),linear-gradient(180deg,var(--sidebar-start) 0%,var(--sidebar-end) 100%);color:#f7f4ef}.app-shell__sidebar:after{content:"";position:absolute;inset:auto -80px -80px auto;width:240px;height:240px;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 68%)}.brand-lockup{display:flex;align-items:center;gap:14px;margin-bottom:32px}.brand-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 75%,white 25%),var(--primary));color:#fff;font-weight:800;letter-spacing:.08em}.brand-title{font-size:1.3rem;font-weight:700}.brand-subtitle{color:#f7f4efa3;font-size:.92rem}.sidebar{position:relative;overflow:hidden;padding:24px 16px;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent),linear-gradient(180deg,var(--sidebar-start) 0%,var(--sidebar-end) 100%);color:#f7f4ef}.sidebar:after{content:"";position:absolute;inset:auto -80px -80px auto;width:240px;height:240px;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 68%);pointer-events:none}.sidebar__brand{display:flex;align-items:center;gap:12px;padding:8px 12px;margin-bottom:24px}.sidebar__brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 75%,white 25%),var(--primary));color:#fff;font-weight:800;font-size:14px;letter-spacing:.08em}.sidebar__brand-logo{width:42px;height:42px;border-radius:12px;object-fit:cover;border:1px solid rgba(255,255,255,.28);background:#ffffff14}.sidebar__brand-title{font-size:1.2rem;font-weight:700}.sidebar__brand-subtitle{color:#f7f4efa3;font-size:.8rem}.sidebar__nav{flex:1;min-height:0;display:flex;flex-direction:column;gap:2px;overflow-y:auto;padding-right:4px}.sidebar__nav::-webkit-scrollbar{width:4px}.sidebar__nav::-webkit-scrollbar-track{background:transparent}.sidebar__nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.sidebar__module{display:flex;flex-direction:column}.sidebar__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:#f7f4efb8;text-decoration:none;font-size:.9rem;cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.sidebar__item:hover{color:#fff;background:#ffffff14}.sidebar__item--active{color:#fff;background:#ffffff1f}.sidebar__item--parent{font-weight:500}.sidebar__item-chevron{margin-left:auto;opacity:.5;transition:transform .15s ease}.sidebar__children{display:flex;flex-direction:column;gap:1px;padding-left:12px;margin:4px 0 8px;border-left:2px solid rgba(255,255,255,.1)}.sidebar__child{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;color:#f7f4ef99;text-decoration:none;font-size:.85rem;transition:all .15s ease}.sidebar__child:hover{color:#f7f4efe6;background:#ffffff0d}.sidebar__child--active{color:#fff;background:#ffffff1a}.sidebar__footer{margin-top:auto;padding-top:16px}.sidebar__card{padding:14px;display:grid;gap:4px;border-radius:12px;background:#ffffff14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar__card-label{margin:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80}.sidebar__card strong{font-size:.9rem}.sidebar-nav{display:grid;gap:8px}.sidebar-nav__item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;color:#f7f4efb8;text-decoration:none;transition:transform .16s ease,background-color .16s ease,color .16s ease}.sidebar-nav__item:hover,.sidebar-nav__item--active{transform:translate(4px);color:#fff;background:#ffffff1a}.sidebar-nav__divider{height:1px;margin:12px 0;background:#ffffff1a}.sidebar-nav__label{padding:0 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80}.sidebar-card{margin-top:32px;padding:18px;display:grid;gap:8px;border-radius:20px;background:#ffffff14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar-card strong,.user-chip strong,.hero-panel h1,.login-card h2,.panel h2,.stat-card strong,.list-item strong{letter-spacing:-.02em}.sidebar-card span,.muted,.panel__header p,.stat-card span,.list-item span,.feed-item span,.user-chip span,.hero-panel__status span,.hero-panel__text,.auth-hero p,.login-card__footer{color:var(--muted)}.app-shell__main{display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden}.topbar{padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar__search{flex:1;max-width:520px;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:999px;background:#ffffffb8;box-shadow:0 10px 40px #18352f0d}.topbar__search input{flex:1;border:0;background:transparent;color:var(--text)}.topbar__actions{display:flex;align-items:center;gap:12px}.user-chip{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:18px;border:1px solid var(--line);background:#ffffffb8}.user-chip__meta{display:grid}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 28px 28px}.dashboard-page,.stats-grid,.dashboard-grid,.hero-metrics,.auth-layout,.login-card{display:grid;gap:20px}.hero-panel,.panel,.login-card{border:1px solid rgba(24,53,47,.09);background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.hero-panel{padding:28px;border-radius:28px;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;align-items:end}.hero-panel__text{max-width:760px}.hero-panel__status{padding:18px;border-radius:24px;background:linear-gradient(180deg,#0f766e17,#0f766e08);display:grid;gap:10px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{min-height:150px;padding:22px;border-radius:24px;background:var(--surface-strong);border:1px solid var(--line);display:grid;gap:16px}.stat-card__icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px}.stat-card strong{display:block;margin:6px 0 4px;font-size:2rem}.stat-card--teal .stat-card__icon{background:#0f766e1f;color:var(--teal)}.stat-card--amber .stat-card__icon{background:#d977061f;color:var(--amber)}.stat-card--blue .stat-card__icon{background:#2563eb1f;color:var(--blue)}.stat-card--rose .stat-card__icon{background:#be123c1f;color:var(--rose)}.dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.panel{padding:24px;border-radius:26px}.panel__header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel__header h2,.login-card h2{margin:0;font-size:1.5rem}.panel__header p,.auth-hero p,.hero-panel__text{margin:8px 0 0;line-height:1.6}.list-grid,.feed-list{display:grid;gap:12px}.list-item,.feed-item,.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:18px;background:#ffffffb8;border:1px solid var(--line)}.list-item__meta{display:flex;align-items:center;gap:12px}.feed-item{justify-content:flex-start}.auth-page{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-layout{width:min(1120px,100%);grid-template-columns:minmax(0,1.1fr) minmax(380px,420px);align-items:stretch}.auth-hero{padding:32px;align-self:stretch;display:grid;align-content:center;gap:18px}.auth-hero__badge,.status-badge,.eyebrow{display:inline-flex;align-items:center;gap:8px;width:fit-content;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-hero__badge{padding:10px 14px;background:#0f766e1a;color:var(--teal)}.auth-hero h1{margin:0;font-size:clamp(2.8rem,4vw,4.8rem);line-height:.96;letter-spacing:-.05em}.hero-metric{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:#ffffff85;border:1px solid rgba(24,53,47,.08)}.login-card{padding:28px;border-radius:28px;align-content:start}.field{display:grid;gap:8px}.field span{font-weight:600}.field input{min-height:52px;padding:14px 16px;border-radius:16px;border:1px solid rgba(24,53,47,.14);background:#ffffffd9}.primary-button,.ghost-button,.icon-button{border:0;cursor:pointer;transition:transform .16s ease,opacity .16s ease,background-color .16s ease}.primary-button:hover,.ghost-button:hover,.icon-button:hover{transform:translateY(-1px)}.primary-button{min-height:54px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;background:linear-gradient(135deg,var(--teal),var(--teal-strong));color:#fff;font-weight:700}.primary-button:disabled{opacity:.7;cursor:progress}.ghost-button{padding:10px 14px;border-radius:14px;background:#18352f0d;color:var(--text)}.icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#ffffffb8;color:var(--text);border:1px solid var(--line)}.icon-button--quiet{width:28px;height:28px;background:transparent;border:0}.login-card__footer{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--line)}.status-badge{padding:8px 12px;font-size:.74rem}.status-badge--teal{color:var(--teal);background:#0f766e1a}.status-badge--amber{color:var(--amber);background:#d977061f}.status-badge--blue{color:var(--blue);background:#2563eb1f}.status-badge--slate{color:var(--muted);background:#5f70681f}.status-badge--rose{color:var(--rose);background:#be123c1f}.eyebrow{margin:0;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.toast-stack{position:fixed;right:24px;bottom:24px;width:min(360px,calc(100vw - 24px));display:grid;gap:10px;z-index:20}.toast{box-shadow:0 18px 40px #18352f1f}.toast--success{border-left:4px solid var(--teal)}.toast--warning{border-left:4px solid var(--amber)}.toast--info{border-left:4px solid var(--blue)}@media(max-width:1120px){.auth-layout,.hero-panel{grid-template-columns:1fr}}@media(max-width:900px){.app-shell{grid-template-columns:1fr;height:auto;overflow:visible}.app-shell__main{height:auto;overflow:visible}.page-content{overflow-y:visible}.app-shell__sidebar{display:none}}@media(max-width:640px){.auth-page{padding:14px}.auth-hero{padding:0}.hero-panel,.panel,.login-card{padding:20px;border-radius:22px}.user-chip{width:100%;justify-content:space-between}}.stack-page{display:grid;gap:16px}.page-heading h1{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.table-card{display:grid;gap:10px}.table-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px;border-radius:18px;background:#ffffffb8;border:1px solid var(--line)}.table-row--link{text-decoration:none}.table-row__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.detail-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-item{display:grid;gap:6px;padding:16px;border-radius:18px;background:#ffffffb8;border:1px solid var(--line)}.detail-item span{color:var(--muted)}@media(max-width:640px){.table-row,.table-row__meta{align-items:flex-start;flex-direction:column}.detail-grid{grid-template-columns:1fr}}.stack-page--compact{gap:14px}.form-grid{display:grid;gap:12px}.form-grid input,.form-grid textarea{min-height:48px;padding:12px 14px;border-radius:14px;border:1px solid rgba(24,53,47,.14);background:#ffffffd9}.form-grid select{width:100%;min-height:48px;padding:0 36px 0 14px;border-radius:14px;border:1px solid rgba(24,53,47,.14);background-color:#ffffffd9}.table-row--button{width:100%;border:1px solid var(--line);cursor:pointer;text-align:left}.table-row--button:hover,.table-row--link:hover{transform:translateY(-1px);box-shadow:0 12px 24px #18352f14}.table-row--stacked{align-items:flex-start}.page-heading--split{display:flex;align-items:end;justify-content:space-between;gap:16px}.page-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.page-filter{min-height:40px;min-width:160px;max-width:280px;padding:0 36px 0 14px;border-radius:8px;border:1px solid var(--line);background-color:var(--surface-strong)}.section-label{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.form-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-row{display:flex;align-items:center;gap:10px;min-height:48px}@media(max-width:720px){.page-heading--split{flex-direction:column;align-items:stretch}.form-grid--compact{grid-template-columns:1fr}}.workorder-layout{display:grid;grid-template-columns:1.05fr 1.1fr .85fr;gap:20px}.action-cluster,.toolbar-row,.chip-row,.signature-grid,.metric-list,.timeline-list,.checklist-items{display:grid;gap:12px}.checklist-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--surface-2);border-radius:8px}.checklist-item__label{flex:1}.checklist-item__label strong{display:block;font-size:14px}.checklist-item__label .required-mark{color:var(--rose-500);margin-left:4px}.checklist-item__input{min-width:200px}.checklist-item__input input,.checklist-item__input select{width:100%}.checklist-item__input input[type=checkbox]{width:auto}.action-cluster{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:18px}.toolbar-row{grid-template-columns:repeat(2,minmax(0,220px));margin-bottom:16px}.metric-list__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:#ffffffb8}.metric-list__item--button{width:100%;cursor:pointer;text-align:left}.metric-list__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timeline-item{display:grid;grid-template-columns:16px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.timeline-item__dot{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,var(--teal),var(--blue));margin-top:6px}.signature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.signature-card{padding:16px;border-radius:18px;background:#ffffffb8;border:1px solid var(--line);display:grid;gap:6px}textarea{min-height:112px;resize:vertical}@media(max-width:1120px){.workorder-layout{grid-template-columns:1fr}}@media(max-width:720px){.toolbar-row,.signature-grid{grid-template-columns:1fr}}.notification-anchor,.notification-button{position:relative}.notification-pill{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--rose);color:#fff;font-size:.72rem;font-weight:700}.notification-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(420px,calc(100vw - 48px));padding:16px;display:grid;gap:12px;border:1px solid var(--line);border-radius:20px;background:var(--surface-strong);box-shadow:var(--shadow);z-index:20}.notification-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-panel__header span,.notification-item span,.notification-panel__link{color:var(--muted)}.notification-panel__list{display:grid;gap:10px}.notification-item{padding:12px 14px;display:grid;gap:4px;text-align:left;border:1px solid var(--line);border-radius:16px;background:#f4efe7b3;cursor:pointer}.notification-panel__link{text-decoration:none;font-weight:600}.empty-state{padding:18px;display:flex;align-items:center;gap:10px;border-radius:16px;background:#18352f0d;color:var(--muted)}.portal-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.portal-shell__sidebar{padding:28px 22px;background:linear-gradient(180deg,#1d3d36,#122720);color:#f7f4ef;display:grid;align-content:start;gap:24px}.portal-shell__main{display:flex;flex-direction:column}.portal-topbar{padding:18px 28px;display:flex;align-items:center;justify-content:space-between}.portal-topbar span{display:block;color:var(--muted)}@media(max-width:960px){.portal-shell{grid-template-columns:1fr}}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0;flex-wrap:wrap;min-width:0}.page-heading>div{min-width:0}.page-heading .button-group{flex-wrap:wrap;justify-content:flex-end}@media(max-width:900px){.page-heading{flex-direction:column;align-items:stretch}.page-heading .button-group{justify-content:flex-start}}body.has-cookie-consent .page-content,body.has-cookie-consent .stack-page{padding-bottom:140px}@media(max-width:480px){body.has-cookie-consent .page-content,body.has-cookie-consent .stack-page{padding-bottom:220px}}.page-heading--split,.action-cluster,.stack-page,.table-card,.table-row,.table-row__meta,.detail-grid,.detail-item,.map-shell,.chart-shell{display:grid;gap:16px}.stack-page--compact{gap:12px}.action-cluster{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.table-card{gap:12px}.table-row{padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#ffffffad}.table-row--stacked{grid-template-columns:minmax(0,1fr) auto;align-items:center}.table-row__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.detail-item{padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:#ffffffad}.detail-item span{color:var(--muted);font-size:.88rem}.dashboard-grid--even{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid--wide{grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr)}.map-shell{min-height:480px}.map-canvas{height:480px;width:100%;border-radius:22px;overflow:hidden}.chart-shell{min-height:260px}@media(max-width:1080px){.dashboard-grid--even,.dashboard-grid--wide,.table-row--stacked{grid-template-columns:1fr}.table-row__meta{justify-content:flex-start}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;font-size:14px;font-weight:500;border-radius:10px;border:none;cursor:pointer;transition:all .15s ease;white-space:nowrap;position:relative;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--default{background:var(--teal);color:#fff;box-shadow:0 2px 4px #0f766e33}.btn--default:hover:not(:disabled){background:var(--teal-strong);transform:translateY(-1px);box-shadow:0 4px 8px #0f766e40}.btn--default:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0f766e33}.btn--secondary{background:var(--surface);color:var(--text);border:1px solid var(--line)}.btn--secondary:hover:not(:disabled){background:var(--bg)}.btn--destructive{background:var(--rose);color:#fff}.btn--destructive:hover:not(:disabled){background:#9f1239}.btn--outline{background:transparent;color:var(--teal);border:1px solid var(--teal)}.btn--outline:hover:not(:disabled){background:#0f766e14}.btn--ghost{background:transparent;color:var(--text)}.btn--ghost:hover:not(:disabled){background:var(--surface)}.btn--link{background:transparent;color:var(--teal);text-decoration:underline;padding:0}.btn--link:hover:not(:disabled){color:var(--teal-strong)}.btn--sm{height:32px;padding:0 12px;font-size:13px}.btn--default.btn--sm,.btn--secondary.btn--sm,.btn--destructive.btn--sm,.btn--outline.btn--sm,.btn--ghost.btn--sm{height:32px;padding:0 12px}.btn--lg{height:48px;padding:0 24px;font-size:16px}.btn--icon{width:40px;height:40px;padding:0}.btn--icon.btn--sm{width:32px;height:32px}.btn--icon.btn--lg{width:48px;height:48px}.btn--loading{pointer-events:none}.btn__spinner{width:16px;height:16px;animation:spin 1s linear infinite;position:absolute}.btn__content--hidden{visibility:hidden}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.input-wrapper{position:relative;display:flex;align-items:center}.input{width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f}.input::placeholder{color:var(--muted)}.input:disabled{background:var(--bg);cursor:not-allowed;opacity:.6}.input--error{border-color:var(--rose)}.input--error:focus{box-shadow:0 0 0 3px #be123c1f}.field-error{display:block;color:var(--error);font-size:12px;margin-top:4px;line-height:1.4}.has-error select,.has-error textarea{border-color:var(--rose)}select{width:auto;height:40px;padding:0 32px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font-size:14px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s ease,box-shadow .15s ease}select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f}select:disabled{background-color:var(--bg);cursor:not-allowed;opacity:.6}.input--with-left-icon{padding-left:40px}.input--with-right-icon{padding-right:40px}.input-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--muted);pointer-events:none}.input-icon--left{left:0}.input-icon--right{right:0}.input-wrapper--error .input-icon{color:var(--rose)}.textarea{width:100%;min-height:100px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font-size:14px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f;outline:none}.textarea::placeholder{color:var(--muted)}.textarea:disabled{background:var(--bg);cursor:not-allowed;opacity:.6}.textarea--error{border-color:var(--rose)}.textarea--error:focus{box-shadow:0 0 0 3px #be123c1f}.textarea--auto-resize{resize:none;overflow:hidden}.label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:6px}.label--error{color:var(--rose)}.label__required{color:var(--rose);margin-left:2px}.select-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--text);font-size:14px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.select-trigger:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f;outline:none}.select-trigger[data-placeholder]{color:var(--muted)}.select-trigger:disabled{background:var(--bg);cursor:not-allowed;opacity:.6}.select-trigger--error{border-color:var(--rose)}.select-trigger__icon{width:16px;height:16px;color:var(--muted);flex-shrink:0}.select-content{overflow:hidden;background:var(--surface-strong);border-radius:8px;border:1px solid var(--line);box-shadow:var(--shadow);z-index:100}.select-content--popper{width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height)}.select-viewport{padding:4px}.select-viewport--popper{height:var(--radix-select-content-available-height)}.select-item{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 32px;border-radius:6px;font-size:14px;color:var(--text);cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;outline:none}.select-item[data-highlighted]{background:var(--bg)}.select-item[data-disabled]{color:var(--muted);pointer-events:none}.select-item__indicator{position:absolute;left:8px;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.select-item__check{width:14px;height:14px;color:var(--teal)}.select-label{padding:8px 12px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.select-separator{height:1px;background:var(--line);margin:4px 0}.select-scroll-button{display:flex;align-items:center;justify-content:center;height:24px;background:var(--surface-strong);cursor:default}.select-scroll-button__icon{width:14px;height:14px;color:var(--muted)}.checkbox-wrapper{display:flex;align-items:flex-start;gap:10px}.checkbox{width:18px;height:18px;border:2px solid var(--line);border-radius:4px;background:var(--surface-strong);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.checkbox:hover{border-color:var(--teal)}.checkbox:focus{outline:none;box-shadow:0 0 0 3px #0f766e1f}.checkbox[data-state=checked]{background:var(--teal);border-color:var(--teal)}.checkbox--error{border-color:var(--rose)}.checkbox__indicator{display:flex;align-items:center;justify-content:center}.checkbox__icon{width:12px;height:12px;color:#fff}.checkbox-label-wrapper{display:flex;flex-direction:column;gap:2px}.checkbox-label{font-size:14px;color:var(--text);cursor:pointer;line-height:1.4}.checkbox-description{font-size:13px;color:var(--muted);margin:0}.switch-wrapper{display:flex;align-items:flex-start;gap:10px}.switch{width:42px;height:24px;padding:2px;border-radius:12px;background:var(--line);cursor:pointer;flex-shrink:0;transition:background .15s ease;border:none}.switch:hover{background:var(--muted)}.switch:focus{outline:none;box-shadow:0 0 0 3px #0f766e1f}.switch[data-state=checked]{background:var(--teal)}.switch__thumb{display:block;width:20px;height:20px;border-radius:10px;background:#fff;box-shadow:0 1px 3px #00000026;transition:transform .15s ease}.switch[data-state=checked] .switch__thumb{transform:translate(18px)}.switch-label-wrapper{display:flex;flex-direction:column;gap:2px}.switch-label{font-size:14px;color:var(--text);cursor:pointer;line-height:1.4}.switch-description{font-size:13px;color:var(--muted);margin:0}.spinner{animation:spin 1s linear infinite;color:var(--teal)}.spinner--sm{width:16px;height:16px}.spinner--default{width:24px;height:24px}.spinner--lg{width:40px;height:40px}.spinner-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}.spinner-overlay__label{font-size:14px;color:var(--muted)}.skeleton{background:linear-gradient(90deg,var(--line) 25%,rgba(255,255,255,.5) 50%,var(--line) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:6px}.skeleton-text{display:flex;flex-direction:column;gap:8px}.skeleton-text__line{height:14px;width:100%}.skeleton-text__line--last{width:60%}.skeleton-card{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--surface);border-radius:12px}.skeleton-card__header{height:20px;width:50%}.skeleton-table{display:flex;flex-direction:column;gap:8px}.skeleton-table__row{display:flex;gap:12px}.skeleton-table__cell{height:40px;flex:1}.skeleton-avatar{border-radius:50%}.skeleton-avatar--sm{width:32px;height:32px}.skeleton-avatar--default{width:40px;height:40px}.skeleton-avatar--lg{width:56px;height:56px}.badge{display:inline-flex;align-items:center;font-weight:500;border-radius:9999px;transition:all .2s ease}.badge--sm{padding:2px 8px;font-size:11px;line-height:1.4}.badge--default{padding:4px 10px;font-size:12px;line-height:1.4}.badge--lg{padding:6px 14px;font-size:13px;line-height:1.4}.badge--variant-default{background:var(--surface-alt);color:var(--text)}.badge--variant-success{background:var(--success-bg);color:var(--success)}.badge--variant-warning{background:var(--warning-bg);color:var(--warning)}.badge--variant-error{background:var(--error-bg);color:var(--error)}.badge--variant-info{background:var(--info-bg);color:var(--info)}.badge--variant-outline{background:transparent;border:1px solid var(--line);color:var(--text-muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--surface-alt);color:var(--text-muted);font-weight:500;flex-shrink:0}.avatar--sm{width:32px;height:32px;font-size:12px}.avatar--default{width:40px;height:40px;font-size:14px}.avatar--lg{width:56px;height:56px;font-size:18px}.avatar--xl{width:80px;height:80px;font-size:24px}.avatar__image{width:100%;height:100%;object-fit:cover}.avatar__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--primary);color:#fff;text-transform:uppercase}.avatar-group{display:flex;flex-direction:row-reverse;justify-content:flex-end}.avatar-group>.avatar{border:2px solid var(--background);margin-left:-8px}.avatar-group>.avatar:last-child{margin-left:0}.avatar-group__overflow{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-alt);color:var(--text-muted);font-size:11px;font-weight:600;border:2px solid var(--background)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card--shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.card--clickable{cursor:pointer;transition:all .2s ease}.card--clickable:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000001a}.card__header{display:flex;flex-direction:column;padding:20px 20px 0}.card__title{font-size:18px;font-weight:600;color:var(--text);margin:0}.card__description{font-size:14px;color:var(--text-muted);margin:4px 0 0}.card__content{padding:20px}.card__footer{display:flex;align-items:center;padding:16px 20px;border-top:1px solid var(--line);background:var(--surface-alt)}.alert{display:flex;gap:12px;padding:16px;border-radius:8px;border:1px solid}.alert--info{background:var(--info-bg);border-color:var(--info);color:var(--info)}.alert--success{background:var(--success-bg);border-color:var(--success);color:var(--success)}.alert--warning{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.alert--error{background:var(--error-bg);border-color:var(--error);color:var(--error)}.alert__icon{flex-shrink:0;margin-top:2px}.alert__content{flex:1;min-width:0}.alert__title{font-weight:600;font-size:14px;margin:0 0 4px}.alert__description{font-size:14px;opacity:.9;color:var(--text)}.alert__close{flex-shrink:0;padding:4px;background:none;border:none;cursor:pointer;opacity:.6;transition:opacity .2s}.alert__close:hover{opacity:1}.tooltip-content{background:var(--text);color:var(--background);padding:6px 12px;border-radius:6px;font-size:13px;line-height:1.4;max-width:300px;z-index:1000;animation:tooltip-fade-in .15s ease}@keyframes tooltip-fade-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dialog-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:dialog-overlay-show .2s ease}@keyframes dialog-overlay-show{0%{opacity:0}to{opacity:1}}.dialog-content{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface);border-radius:16px;box-shadow:0 25px 50px -12px #00000040;z-index:1010!important;max-height:85vh;display:flex;flex-direction:column;animation:dialog-content-show .2s ease}@keyframes dialog-content-show{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.dialog-content--sm{width:400px}.dialog-content--md{width:500px}.dialog-content--lg{width:640px}.dialog-content--xl{width:800px}.dialog-content--full{width:calc(100vw - 64px);height:calc(100vh - 64px)}.dialog-header{display:flex;flex-direction:column;padding:24px 24px 0}.dialog-title{font-size:18px;font-weight:600;color:var(--text);margin:0}.dialog-description{font-size:14px;color:var(--text-muted);margin:8px 0 0}.dialog-body{flex:1;padding:24px;overflow-y:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--line)}.dialog-close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;color:var(--text-muted);transition:all .2s}.dialog-close:hover{background:var(--surface-alt);color:var(--text)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:modal-overlay-show .2s ease}@keyframes modal-overlay-show{0%{opacity:0}to{opacity:1}}.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface-strong);border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 50px -12px #00000040;z-index:1010!important;max-height:85vh;max-width:calc(100vw - 32px);display:flex;flex-direction:column;animation:modal-content-show .2s ease;outline:none}@keyframes modal-content-show{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.modal--sm{width:400px}.modal--md{width:500px}.modal--lg{width:640px}.modal--xl{width:800px}.modal--full{width:calc(100vw - 64px);height:calc(100vh - 64px)}.modal__header{display:flex;flex-direction:column;padding:20px 24px 0}.modal__title{font-size:18px;font-weight:600;color:var(--text);margin:0;padding-right:32px}.modal__description{font-size:14px;color:var(--muted);margin:8px 0 0}.modal__body{flex:1;padding:20px 24px 24px;overflow-y:auto}.modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--line)}.modal__close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;color:var(--muted);transition:all .15s}.modal__close:hover{background:#18352f14;color:var(--text)}.modal__close-icon{width:18px;height:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:640px){.modal--sm,.modal--md,.modal--lg,.modal--xl{width:calc(100vw - 32px)}.modal__header{padding:16px 20px 0}.modal__body{padding:16px 20px 20px}.modal__footer{padding:12px 20px}}.confirm-dialog__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:16px}.confirm-dialog__icon--default{background:var(--info-bg);color:var(--info)}.confirm-dialog__icon--destructive,.confirm-dialog__icon--danger{background:var(--error-bg);color:var(--error)}.confirm-dialog__icon--warning{background:var(--warning-bg);color:var(--warning)}.drawer-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:dialog-overlay-show .2s ease}.drawer-content{position:fixed;top:0;bottom:0;background:var(--surface);box-shadow:-4px 0 24px #00000026;z-index:1010!important;display:flex;flex-direction:column;overflow:hidden}.drawer-content--right{right:0;animation:drawer-slide-left .3s ease}.drawer-content--left{left:0;animation:drawer-slide-right .3s ease}@keyframes drawer-slide-left{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-slide-right{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-content--sm{width:320px}.drawer-content--default{width:400px}.drawer-content--lg{width:560px}.drawer-content--xl{width:720px}.drawer-content--full{width:100vw}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.drawer-header__content{flex:1}.drawer-title{font-size:18px;font-weight:600;color:var(--text);margin:0}.drawer-description{font-size:14px;color:var(--text-muted);margin:4px 0 0}.drawer-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;color:var(--text-muted);transition:all .2s;margin:-4px -8px 0 0}.drawer-close:hover{background:var(--surface-alt);color:var(--text)}.drawer-body{flex:1;padding:24px;overflow-y:auto}.drawer-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--line)}.dropdown-menu-content{min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 10px 38px -10px #00000059,0 10px 20px -15px #0003;z-index:100;animation:dropdown-show .15s ease}@keyframes dropdown-show{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dropdown-menu-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;color:var(--text);border-radius:6px;cursor:pointer;outline:none;transition:background .15s}.dropdown-menu-item:hover,.dropdown-menu-item:focus{background:var(--surface-alt)}.dropdown-menu-item[data-disabled]{opacity:.5;pointer-events:none}.dropdown-menu-item--destructive{color:var(--error)}.dropdown-menu-item--destructive:hover,.dropdown-menu-item--destructive:focus{background:var(--error-bg)}.dropdown-menu-label{padding:8px 12px 4px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dropdown-menu-separator{height:1px;background:var(--line);margin:4px 0}.dropdown-menu-shortcut{margin-left:auto;font-size:12px;color:var(--text-muted);opacity:.7}.dropdown-menu-checkbox-item,.dropdown-menu-radio-item{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 32px;font-size:14px;color:var(--text);border-radius:6px;cursor:pointer;outline:none;position:relative;transition:background .15s}.dropdown-menu-checkbox-item:hover,.dropdown-menu-checkbox-item:focus,.dropdown-menu-radio-item:hover,.dropdown-menu-radio-item:focus{background:var(--surface-alt)}.dropdown-menu-item-indicator{position:absolute;left:12px;display:flex;align-items:center;justify-content:center}.dropdown-menu-sub-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;color:var(--text);border-radius:6px;cursor:pointer;outline:none;transition:background .15s}.dropdown-menu-sub-trigger:hover,.dropdown-menu-sub-trigger:focus,.dropdown-menu-sub-trigger[data-state=open]{background:var(--surface-alt)}.dropdown-menu-sub-trigger svg{margin-left:auto}.dropdown-menu-sub-content{min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 10px 38px -10px #00000059,0 10px 20px -15px #0003;z-index:1010!important;animation:dropdown-show .15s ease}.data-table{width:100%;background:var(--surface-strong);overflow:hidden}.data-table__container{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);overflow:hidden;box-shadow:0 1px 3px #18352f0a}.data-table__scroll{overflow-x:auto}.data-table__footer{border-top:1px solid var(--line);padding:12px 16px;background:#18352f05}.data-table__footer .pagination{padding:0}.data-table__footer-right{display:flex;justify-content:flex-end}.data-table__table{width:100%;min-width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.data-table__th{text-align:left;padding:14px 16px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#18352f0a;border-bottom:1px solid var(--line);white-space:nowrap;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis}.data-table__th:first-child{padding-left:20px}.data-table__th:last-child{padding-right:20px}.data-table__th--checkbox{width:48px;padding:14px 12px}.data-table__th-content{display:inline-flex;align-items:center;gap:6px}.data-table__th--sortable{cursor:pointer;transition:color .15s,background .15s}.data-table__th--sortable:hover{color:var(--text);background:#18352f12}.data-table__th--sorted{color:var(--teal);background:#0f766e0f}.data-table__sort-icon{width:14px;height:14px;flex-shrink:0;color:var(--teal);opacity:1;transition:opacity .15s}.data-table__sort-icon--inactive{opacity:0;color:var(--muted)}.data-table__th--sortable:hover .data-table__sort-icon--inactive{opacity:.4}.data-table__th--sorted .data-table__sort-icon{opacity:1}.data-table__th--resizable{position:relative}.data-table__resize-handle{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:col-resize;background:transparent;z-index:2}.data-table__resize-handle:after{content:"";position:absolute;right:3px;top:20%;bottom:20%;width:3px;background:transparent;border-radius:2px;transition:background .15s}.data-table__resize-handle:hover:after{background:var(--teal)}.data-table--resizing .data-table__resize-handle:after{background:var(--teal)}.data-table--resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.data-table--resizing *{cursor:col-resize!important}.data-table__tr{transition:background .1s ease}.data-table__td{padding:14px 16px;border-bottom:1px solid var(--line);color:var(--text);font-size:14px;vertical-align:middle;background:var(--surface-strong);overflow:hidden;text-overflow:ellipsis}.data-table__td:first-child{padding-left:20px}.data-table__td:last-child{padding-right:20px}.data-table__td--checkbox{width:48px;padding:14px 12px}.data-table__tr:last-child .data-table__td{border-bottom:none}.data-table__tr--clickable{cursor:pointer}.data-table__tr--clickable:hover .data-table__td{background:#0f766e0a}.data-table__tr--selected .data-table__td{background:#0f766e14}.data-table__tr--clickable:active .data-table__td{background:#0f766e0f}.data-table__th--numeric,.data-table__td--numeric,.data-table__th--actions,.data-table__td--actions{text-align:right}.data-table__muted{color:var(--muted);opacity:.6}.data-table__empty{padding:60px 24px;text-align:center;color:var(--muted);background:var(--surface-strong)}.data-table__empty p{margin:0 0 16px;font-size:15px}.data-table__skeleton-header{height:14px;width:70%;border-radius:4px;background:linear-gradient(90deg,var(--line) 25%,rgba(255,255,255,.4) 50%,var(--line) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.data-table__skeleton-cell{height:14px;width:60%;border-radius:4px;background:linear-gradient(90deg,var(--line) 25%,rgba(255,255,255,.4) 50%,var(--line) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.data-table__skeleton-checkbox{height:18px;width:18px;border-radius:4px;background:var(--line);animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.column-visibility-trigger{display:inline-flex;align-items:center;gap:6px}.column-visibility-dropdown{min-width:200px;max-width:280px;background:var(--surface-strong);border:1px solid var(--line);border-radius:10px;padding:6px 0;box-shadow:0 10px 40px -10px #18352f40;z-index:100;animation:dropdown-show .15s ease}.column-visibility-dropdown__header{padding:10px 14px 8px;font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);margin-bottom:4px}.column-visibility-dropdown__actions{display:flex;gap:6px;padding:6px 12px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.column-visibility-dropdown__action{flex:1;padding:5px 8px;font-size:11px;font-weight:500;color:var(--teal);background:#0f766e14;border:none;border-radius:5px;cursor:pointer;transition:all .15s}.column-visibility-dropdown__action:hover{background:var(--teal);color:#fff}.column-visibility-dropdown__separator{height:1px;background:var(--line);margin:4px 0}.column-visibility-dropdown__list{max-height:280px;overflow-y:auto;padding:2px 0}.column-visibility-dropdown__item{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;transition:background .1s}.column-visibility-dropdown__item:hover{background:#18352f0a}.column-visibility-dropdown__item[data-highlighted]{background:#18352f0a;outline:none}.column-visibility-dropdown__checkbox{pointer-events:none}.column-visibility-dropdown__fixed{padding:8px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;border-top:1px solid var(--line);margin-top:4px}.column-visibility-dropdown__fixed-label{font-size:11px;color:var(--muted)}.column-visibility-dropdown__fixed-item{font-size:11px;padding:3px 8px;background:#18352f0f;border-radius:4px;color:var(--muted)}.table-link{color:var(--teal);text-decoration:none;font-weight:500;transition:color .15s}.table-link:hover{color:var(--teal-strong);text-decoration:underline}.table-link strong{font-weight:600}.table-actions{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.table-action-btn{min-height:30px;padding:4px 10px;font-size:12px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pagination__info{font-size:13px;color:var(--muted);margin-right:auto}.pagination__total{font-size:13px;color:var(--muted);font-weight:500}.pagination__page-size{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.pagination__label{font-size:13px;color:var(--muted)}.pagination__select{min-width:70px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);font-size:13px;cursor:pointer}.pagination__select:focus{border-color:var(--teal);outline:none}.pagination__controls{display:flex;align-items:center;gap:4px}.pagination__pages{display:flex;align-items:center;gap:2px}.pagination__btn{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--text);cursor:pointer;transition:all .15s}.pagination__btn:hover:not(:disabled){background:#18352f0f;border-color:var(--muted)}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}.pagination__page-btn{min-width:32px;height:32px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.pagination__page-btn:hover{background:#18352f0f}.pagination__page-btn--active{background:var(--teal);color:#fff;border-color:var(--teal)}.pagination__page-btn--active:hover{background:var(--teal-strong)}.pagination__icon{width:16px;height:16px}.pagination__ellipsis{padding:0 6px;color:var(--muted);font-size:13px}.pagination__current{font-size:13px;color:var(--muted);font-weight:500;padding:0 8px}.pagination--simple{justify-content:center}.pagination__btn.btn--outline{padding:0;min-width:32px;width:32px}.pagination__page-btn.btn--default{background:var(--teal);color:#fff}.pagination__page-btn.btn--ghost:hover{background:#18352f0f}.filter-panel{margin-bottom:0}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;background:var(--surface-strong);border:1px solid var(--line);border-radius:10px}.filter-bar select{height:36px;min-width:150px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface-strong);font-size:13px;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}.filter-bar select:hover{border-color:var(--muted)}.filter-bar select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1a;outline:none}.filter-bar input[type=date]{height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface-strong);font-size:13px;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}.filter-bar input[type=date]:hover{border-color:var(--muted)}.filter-bar input[type=date]:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1a;outline:none}.filter-bar .input{height:36px;min-width:180px;max-width:240px;padding:0 12px;border-radius:8px;font-size:13px}.filter-bar__count{margin-left:auto;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;padding:0 4px}.filter-bar__divider{width:1px;height:24px;background:var(--line);margin:0 4px}@media(max-width:768px){.filter-bar{flex-direction:column;align-items:stretch}.filter-bar select,.filter-bar input,.filter-bar .input{width:100%;max-width:none}.filter-bar__count{margin-left:0;text-align:center;padding-top:8px}}.badge--info,.badge--success{background:#0f766e1a;color:var(--teal)}.badge--warning{background:#d977061a;color:var(--amber)}.badge--error{background:#be123c1a;color:var(--rose)}.badge--secondary{background:#18352f14;color:var(--muted)}.badge--count{padding:5px 10px;font-weight:600;font-size:12px}.empty-state{padding:48px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;color:var(--muted)}.empty-state p{margin:0;font-size:15px}.button-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.text-link{color:var(--teal);text-decoration:none;font-weight:500;transition:color .15s}.text-link:hover{color:var(--teal-strong);text-decoration:underline}.form-grid{font-size:14px}.form-grid .label,.form-grid label:not(.checkbox-label):not(.switch-label){display:block;margin-bottom:6px;color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:.01em}.form-grid input,.form-grid select,.form-grid textarea{font-size:14px;font-weight:500}.form-grid input::placeholder,.form-grid textarea::placeholder{color:var(--text-muted);opacity:.72}.table-card{font-size:14px}.table-row__meta{font-size:13px;color:var(--text-muted)}.table-row strong{letter-spacing:-.01em}.topbar__hamburger{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#ffffffb8;color:var(--text);cursor:pointer;flex-shrink:0;transition:background .15s}.topbar__hamburger:hover{background:#fffffff2}.sidebar-overlay{position:fixed;inset:0;background:#00000073;z-index:299;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar__mobile-close{display:none;align-items:center;justify-content:center;width:36px;height:36px;margin-left:auto;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:transparent;color:#f7f4efcc;cursor:pointer;flex-shrink:0;transition:background .15s}.sidebar__mobile-close:hover{background:#ffffff1f;color:#fff}.portal-sidebar__header{display:flex;gap:16px;align-items:flex-start}.topbar__logout-label{display:inline}.user-chip__role{display:block}@media(max-width:1080px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:300;width:280px;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);overflow-y:auto}.sidebar--mobile-open{transform:translate(0);box-shadow:4px 0 40px #0000004d}.sidebar__mobile-close{display:flex}.sidebar__brand{align-items:center}.topbar__hamburger{display:flex}.topbar{padding:14px 16px;gap:12px;flex-wrap:nowrap}.topbar__search{flex:1;min-width:0;padding:10px 14px}.topbar__search input{font-size:14px}.topbar__actions{gap:8px;flex-shrink:0}.user-chip{padding:8px 10px;gap:8px}.user-chip__meta{display:none}.page-content{padding:12px 16px 24px}.dashboard-grid,.dashboard-grid--wide,.dashboard-grid--even{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.page-heading,.page-heading--split{flex-direction:column;align-items:stretch;gap:12px}.page-heading--split .action-cluster{margin-top:0}.action-cluster{flex-wrap:wrap}.form-grid--compact,.toolbar-row,.signature-grid{grid-template-columns:1fr}.stat-card{min-height:120px;padding:16px}.stat-card strong{font-size:1.6rem}}@media(max-width:640px){.auth-page{padding:16px}.auth-layout{grid-template-columns:1fr}.auth-hero{padding:0;display:none}.login-card{padding:24px 20px;border-radius:20px}.stats-grid{grid-template-columns:1fr}.hero-panel{grid-template-columns:1fr;padding:20px;border-radius:20px}.panel{padding:16px;border-radius:18px}.table-row{flex-direction:column;align-items:flex-start;gap:10px}.table-row--stacked{grid-template-columns:1fr}.table-row__meta{justify-content:flex-start;width:100%}.detail-grid{grid-template-columns:1fr}.map-canvas{height:320px}.map-shell{min-height:320px}.notification-panel{right:-8px;width:calc(100vw - 32px);max-width:380px}.user-chip__role{display:none}.topbar__search input::placeholder{content:"Ara...";font-size:13px}.topbar__logout-label{display:none}.page-content{padding:10px 12px 20px}.workorder-layout{grid-template-columns:1fr}}.topbar__hamburger--portal{display:flex;background:#ffffff1f;border-color:#fff3;color:#f7f4ef}.topbar__hamburger--portal:hover{background:#fff3}.portal-topbar{display:flex;align-items:center;gap:12px}.portal-topbar__user{flex:1}@media(min-width:961px){.topbar__hamburger--portal,.portal-shell__sidebar .sidebar__mobile-close{display:none}}@media(max-width:960px){.portal-shell{grid-template-columns:1fr}.portal-shell__sidebar{position:fixed;top:0;left:0;bottom:0;z-index:300;width:280px;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);overflow-y:auto}.portal-shell__sidebar--open{transform:translate(0);box-shadow:4px 0 40px #0000004d}.portal-shell__sidebar .sidebar__mobile-close{display:flex}.portal-sidebar__header{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:12px}.topbar__hamburger--portal{display:flex;flex-shrink:0}.portal-topbar{padding:14px 16px}}@media(max-width:640px){.portal-topbar__user strong{font-size:.9rem}.portal-topbar__user span{font-size:.78rem}}@media(max-width:768px){.data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table__table{min-width:600px}}@media(hover:none)and (pointer:coarse){.btn,.ghost-button,.primary-button,.sidebar__item,.sidebar__child{min-height:44px}.table-row--button:hover,.table-row--link:hover{transform:none;box-shadow:none}.primary-button:hover,.ghost-button:hover,.icon-button:hover{transform:none}}@media(min-width:901px){.sidebar{position:relative;transform:none;transition:none}.topbar__hamburger{display:none}}@media(max-width:500px){.topbar__search{display:none}.topbar{justify-content:space-between}}@media(max-width:640px){.ghost-button .logout-text{display:none}}@media(max-width:640px){.modal{width:100%!important;max-width:100%!important;margin:0!important;border-radius:20px 20px 0 0!important;position:fixed!important;inset:auto 0 0!important;max-height:90vh;overflow-y:auto;transform:none!important}.modal-overlay{align-items:flex-end!important}.modal__body{overflow-y:auto;max-height:60vh}}.tabs-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs-scroll-wrapper::-webkit-scrollbar{display:none}@media(max-width:640px){.tabs__list{display:inline-flex;min-width:max-content;white-space:nowrap}}@media(max-width:640px){.chart-shell{min-height:200px}.recharts-wrapper{overflow:hidden}}.data-table{position:relative}@media(max-width:768px){.data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table__table{min-width:560px}.data-table:after{content:"";position:absolute;top:0;right:0;width:24px;height:100%;background:linear-gradient(to right,transparent,rgba(255,255,255,.8));pointer-events:none}}@media(max-width:1080px){.workorder-layout{grid-template-columns:1fr}}@media(max-width:640px){.signature-grid{grid-template-columns:1fr}}@media(max-width:640px){.modal--lg,.modal--xl{max-height:95vh}.form-grid--compact{grid-template-columns:1fr}.button-group{flex-direction:column}.button-group .btn{width:100%;justify-content:center}}@media(max-width:720px){.page-filter{min-width:100%;width:100%}.page-heading--split .action-cluster{flex-direction:column;align-items:stretch}.page-heading--split .action-cluster .btn,.page-heading--split .action-cluster button{width:100%}}@media(max-width:640px){.portal-topbar{padding:12px 14px;gap:10px}.portal-topbar__user strong{font-size:.85rem}.portal-shell__main .page-content{padding:10px 12px 20px}}@media(max-width:480px){.auth-page{padding:0;align-items:stretch}.login-card{min-height:100vh;border-radius:0;border:none}.field input{font-size:16px}.primary-button{width:100%}}@media(max-width:640px){input,textarea,select{font-size:16px}}@media(hover:none)and (pointer:coarse){.sidebar__child{min-height:44px;display:flex;align-items:center}.notification-item{min-height:44px}.table-row--button,.table-row--link{min-height:56px}}html,body{overflow-x:hidden;max-width:100vw}@media(max-width:900px){.dashboard-grid--wide{grid-template-columns:1fr}}.checkbox-inline{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .6rem;border:1px solid var(--line-soft);border-radius:999px;background:var(--surface)}.checkbox-inline input{margin:0}.kanban-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:16px;align-items:flex-start;min-height:480px}.kanban-column{flex:0 0 220px;min-width:220px;background:var(--surface-strong);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;max-height:78vh;transition:border-color .15s,box-shadow .15s}.kanban-column--drag-over{border-color:var(--primary);box-shadow:0 0 0 2px #0f766e2e}.kanban-column__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--line);gap:8px;flex-shrink:0}.kanban-column__header strong{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-column__body{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.kanban-empty{color:var(--text-muted);font-size:.8rem;text-align:center;padding:24px 8px}.kanban-card{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:4px;transition:box-shadow .15s,border-color .15s,opacity .15s}.kanban-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #18352f1a}.kanban-card--dragging{opacity:.45;box-shadow:var(--shadow)}.kanban-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.kanban-card__top strong{font-size:.75rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card__title{font-size:.8125rem;color:var(--text);margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kanban-card__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.kanban-card__meta>span:first-child{font-size:.7rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-card__type{font-size:.68rem;font-weight:500;color:var(--text-muted);background:var(--surface-alt);border:1px solid var(--line);border-radius:6px;padding:1px 6px;white-space:nowrap;flex-shrink:0}.kanban-card__assignee{font-size:.7rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-top:6px;border-top:1px solid var(--line);margin-top:2px}.legal-page{min-height:100vh;background:var(--surface);padding:40px 16px;overflow-y:auto}.legal-page__container{max-width:820px;margin:0 auto;background:var(--surface-alt);border:1px solid var(--line);border-radius:16px;padding:40px}.legal-content{line-height:1.7;color:var(--text);font-size:.95rem}.legal-content h2{margin-top:28px;margin-bottom:12px;font-size:1.1rem;color:var(--text);font-weight:600}.legal-content p{margin-bottom:14px}.legal-content ul{margin:8px 0 14px 24px;padding-left:0;list-style:disc}.legal-content ul li{margin-bottom:6px}.legal-content a{color:var(--primary-500);text-decoration:underline}.legal-content code{background:var(--surface);padding:2px 6px;border-radius:4px;border:1px solid var(--line);font-size:.85em;font-family:ui-monospace,monospace}body.has-cookie-consent{padding-bottom:120px}@media(max-width:480px){body.has-cookie-consent{padding-bottom:200px}}.cookie-consent{position:fixed;bottom:16px;left:16px;right:16px;max-width:720px;margin:0 auto;background:var(--surface-alt);border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;box-shadow:0 12px 32px #0000002e;z-index:9999;animation:cookie-consent-slide-up .25s ease}.cookie-consent__body{flex:1 1 280px;font-size:.88rem;line-height:1.5;color:var(--text)}.cookie-consent__body p{margin:0}.cookie-consent__body a{color:var(--primary-500);text-decoration:underline}.cookie-consent__actions{display:flex;gap:8px;flex-shrink:0}@keyframes cookie-consent-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.cookie-consent{flex-direction:column;align-items:stretch;bottom:8px;left:8px;right:8px;padding:12px 14px}.cookie-consent__actions{justify-content:flex-end}}:root[data-theme=dark] .filter-bar select,:root[data-theme=dark] .filter-bar input,:root[data-theme=dark] input[type=text],:root[data-theme=dark] input[type=email],:root[data-theme=dark] input[type=password],:root[data-theme=dark] input[type=number],:root[data-theme=dark] input[type=tel],:root[data-theme=dark] input[type=date],:root[data-theme=dark] input[type=search],:root[data-theme=dark] textarea,:root[data-theme=dark] select{background:var(--surface-strong);color:var(--text);border-color:var(--line)}:root[data-theme=dark] .data-table th{background:var(--surface-strong);color:var(--text)}:root[data-theme=dark] .data-table td{background:var(--surface);color:var(--text);border-color:var(--line)}:root[data-theme=dark] .modal__content,:root[data-theme=dark] .data-table__container,:root[data-theme=dark] .filter-panel,:root[data-theme=dark] .panel,:root[data-theme=dark] .login-card,:root[data-theme=dark] .legal-page__container{background:var(--surface-strong);border-color:var(--line)}:root[data-theme=dark] .topbar{background:var(--surface-strong);border-color:var(--line)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;gap:12px}.empty-state__icon{width:64px;height:64px;border-radius:999px;display:grid;place-items:center;background:var(--surface-alt);color:var(--text-muted);margin-bottom:4px}.empty-state__title{margin:0;font-size:1rem;font-weight:600;color:var(--text)}.empty-state__description{margin:0;color:var(--text-muted);font-size:.88rem;max-width:360px;line-height:1.5}.empty-state__actions{margin-top:8px;display:flex;gap:8px}.audit-timeline{display:flex;flex-direction:column;gap:24px;background:var(--surface-strong);border:1px solid var(--line);border-radius:16px;padding:24px}.audit-timeline__day-header{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.audit-timeline__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.audit-event{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}.audit-event__rail{position:relative;width:24px;display:flex;justify-content:center;padding-top:6px}.audit-event__rail:before{content:"";position:absolute;top:18px;bottom:-16px;left:50%;width:2px;background:var(--line);transform:translate(-50%)}.audit-event:last-child .audit-event__rail:before{display:none}.audit-event__dot{width:12px;height:12px;border-radius:999px;border:2px solid var(--surface-strong);z-index:1}.audit-event__dot--teal{background:var(--teal)}.audit-event__dot--amber{background:var(--amber)}.audit-event__dot--rose{background:var(--rose)}.audit-event__dot--blue{background:var(--blue)}.audit-event__dot--slate{background:var(--text-muted)}.audit-event__body{display:flex;flex-direction:column;gap:4px;padding-bottom:4px}.audit-event__header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.9rem}.audit-event__user{display:flex;align-items:center;gap:4px;font-size:.82rem;color:var(--text-muted)}.risk-card{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface-alt)}.risk-card--good{border-color:var(--teal)}.risk-card--warn{border-color:var(--amber)}.risk-card--danger{border-color:var(--rose)}.risk-card__gauge{position:relative;width:160px;height:160px}.risk-gauge{width:100%;height:100%;transform:rotate(-90deg)}.risk-gauge__track{fill:none;stroke:var(--line);stroke-width:10}.risk-gauge__progress{fill:none;stroke:var(--teal);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.risk-card--warn .risk-gauge__progress{stroke:var(--amber)}.risk-card--danger .risk-gauge__progress{stroke:var(--rose)}.risk-card__score{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.risk-card__score strong{font-size:2.4rem;font-weight:700;color:var(--text);line-height:1}.risk-card__score span{font-size:.78rem;color:var(--text-muted);margin-top:4px}.risk-card__body{display:flex;flex-direction:column;gap:16px}.risk-card__header{display:flex;align-items:center;gap:8px;font-size:1rem}.risk-card--good .risk-card__header{color:var(--teal)}.risk-card--warn .risk-card__header{color:var(--amber)}.risk-card--danger .risk-card__header{color:var(--rose)}.risk-breakdown{display:flex;flex-direction:column;gap:8px}.risk-breakdown__item{display:flex;flex-direction:column;gap:4px}.risk-breakdown__label{display:flex;justify-content:space-between;font-size:.82rem;color:var(--text)}.risk-breakdown__bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}.risk-breakdown__fill{height:100%;border-radius:999px;transition:width .4s ease}.risk-card__tips{padding-top:12px;border-top:1px dashed var(--line)}.risk-card__tips strong{font-size:.82rem;color:var(--text);display:block;margin-bottom:6px}.risk-card__tips ul{margin:0;padding-left:18px;font-size:.82rem;color:var(--text-muted);line-height:1.5}.risk-card__tips li{margin-bottom:4px}@media(max-width:640px){.risk-card{grid-template-columns:1fr;text-align:center}.risk-card__gauge{margin:0 auto;width:140px;height:140px}}@media(max-width:768px){button,.button,.icon-button,a.button,[role=button]{min-height:44px;min-width:44px}.button--sm,.table-action-btn{min-height:36px}.filter-bar{flex-wrap:wrap!important;gap:8px!important}.filter-bar>input,.filter-bar>select{flex:1 1 100%!important;min-width:0!important;max-width:none!important}.filter-bar__count{flex:1 1 100%;text-align:center;padding:4px 0}.page-heading--split,.page-heading{flex-wrap:wrap;gap:12px}.page-heading h1{font-size:1.4rem}.modal__content{max-width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px);margin:12px}.form-grid--compact,.detail-grid,.dashboard-grid,.dashboard-grid--even{grid-template-columns:1fr!important}.topbar__search input{font-size:.85rem}.topbar__search input::placeholder{font-size:.85rem}.data-table__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:600px}.page-content{padding:16px!important}.stack-page{gap:16px!important}}@media(max-width:480px){h1{font-size:1.25rem!important}.eyebrow{font-size:.7rem!important}.cookie-consent{padding:10px 12px}.cookie-consent__body{font-size:.82rem}.risk-card{grid-template-columns:1fr;text-align:center;padding:16px}.pagination__page-button{padding:6px 8px!important;min-width:36px}.notification-panel{position:fixed!important;top:64px!important;left:8px!important;right:8px!important;width:auto!important;max-width:none!important}.sidebar--mobile-open{width:88vw!important;max-width:320px}.audit-timeline{padding:16px 12px}.audit-event__header{font-size:.85rem}}@supports (padding: max(0px)){.app-shell__main{padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-top:env(safe-area-inset-top)}.cookie-consent{padding-bottom:max(16px,env(safe-area-inset-bottom))}}.einvoice-status{margin-top:16px;padding:14px;background:var(--surface-alt);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:8px}.einvoice-status__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}.einvoice-status__row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.einvoice-status__row>span{color:var(--text-muted)}.einvoice-status__row code{background:var(--surface);padding:2px 8px;border-radius:4px;border:1px solid var(--line);font-size:.78rem;font-family:ui-monospace,monospace}.bulk-import__step{padding:16px;border:1px dashed var(--line);border-radius:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.bulk-import__step strong{font-size:.95rem}.bulk-import__step p{margin:0;font-size:.85rem}.bulk-import__step input[type=file]{font-size:.85rem;padding:6px 0}.bulk-import__result{background:var(--surface-alt);padding:14px;border-radius:10px;border:1px solid var(--line)}.bulk-import__counts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.bulk-import__result details{margin-top:8px}.bulk-import__result summary{cursor:pointer;font-size:.88rem;color:var(--text-muted)}.bulk-import__result ul{margin:8px 0 0 18px;padding:0;font-size:.82rem;color:var(--text-muted);max-height:200px;overflow-y:auto}.widget-settings__list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt)}.widget-settings__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background-color .15s ease}.widget-settings__item:hover{background:var(--surface)}.widget-settings__item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.widget-settings__item span{font-size:.9rem;color:var(--text)}.map-grid{display:grid;grid-template-columns:1fr 320px;gap:16px}.map-shell{height:calc(100vh - 280px);min-height:480px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.map-canvas{width:100%;height:100%}.map-sidebar{display:flex;flex-direction:column;gap:16px;height:calc(100vh - 280px);min-height:480px}.map-sidebar__list{flex:1 1 50%;min-height:200px;background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.map-tech-item{text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:all .15s ease;color:var(--text);font:inherit}.map-tech-item:hover{background:var(--surface-alt)}.map-tech-item--selected{background:var(--primary-bg);border-color:var(--primary)}.map-tech-item__head{display:flex;justify-content:space-between;align-items:center;gap:8px}.map-tech-item__head strong{font-size:.9rem}.map-tech-item__meta{display:flex;gap:12px;font-size:.78rem;color:var(--text-muted)}.map-tech-item__meta span{display:inline-flex;align-items:center;gap:4px}.map-tech-item__team{color:var(--blue)}.map-tech-item__nearest{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-muted);padding-top:4px;border-top:1px dashed var(--line)}.map-sidebar__route{background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;padding:12px;max-height:280px;overflow-y:auto}.map-sidebar__route-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:8px}.map-sidebar__route-list{list-style:decimal;margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}.map-sidebar__route-list li{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:.85rem}.map-sidebar__route-list li strong{grid-column:1}.map-sidebar__route-list li span:first-of-type{grid-column:1;color:var(--text-muted);font-size:.78rem}.map-sidebar__route-list li .muted{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:.78rem}.signalr-status{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;padding:4px 10px;border-radius:999px;font-weight:500}.signalr-status--live{background:#0f766e26;color:var(--teal-strong)}.signalr-status--live svg{animation:signalr-pulse 1.6s ease-in-out infinite}.signalr-status--offline{background:var(--line);color:var(--text-muted)}@keyframes signalr-pulse{0%,to{opacity:1}50%{opacity:.4}}.filter-bar__toggle{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.filter-bar__toggle input{width:16px;height:16px;cursor:pointer}@media(max-width:900px){.map-grid{grid-template-columns:1fr}.map-sidebar{height:auto;min-height:0}.map-sidebar__list{max-height:280px}}.callcenter-grid{display:grid;grid-template-columns:1fr 360px;gap:16px}.callcenter-list{display:flex;flex-direction:column;gap:8px;background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;padding:12px;max-height:calc(100vh - 320px);overflow-y:auto}.callcenter-item{text-align:left;background:var(--surface-alt);border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;transition:all .15s ease;color:var(--text);font:inherit;display:flex;flex-direction:column;gap:6px}.callcenter-item:hover{background:var(--surface)}.callcenter-item--selected{border-color:var(--primary);background:var(--primary-bg)}.callcenter-item--urgent{border-color:var(--rose);border-left-width:4px;animation:callcenter-urgent-pulse 2s ease-in-out infinite}@keyframes callcenter-urgent-pulse{0%,to{box-shadow:0 0 #be123c66}50%{box-shadow:0 0 0 6px #be123c00}}.callcenter-item__head{display:flex;justify-content:space-between;align-items:center;gap:8px}.callcenter-item__head strong{font-size:.95rem}.callcenter-item__body{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--text-muted)}.callcenter-item__type{color:var(--text);font-weight:500}.callcenter-item__meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem;color:var(--text-muted)}.callcenter-item__assignee{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--blue);padding-top:4px;border-top:1px dashed var(--line)}.callcenter-detail{background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;padding:16px;max-height:calc(100vh - 320px);overflow-y:auto}.dispatch-suggestions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dispatch-suggest{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:var(--surface-alt);border:1px solid var(--line);border-radius:8px}.dispatch-suggest>div:first-child{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.dispatch-suggest>div:first-child strong{font-size:.88rem}.dispatch-suggest>div:first-child span{font-size:.78rem}.dispatch-suggest__meta{display:flex;align-items:center;gap:8px}@media(max-width:900px){.callcenter-grid{grid-template-columns:1fr}.callcenter-detail{max-height:none}}.iot-alert-list{display:flex;flex-direction:column;gap:8px}.iot-alert{display:grid;grid-template-columns:1fr auto;gap:16px;padding:14px 16px;background:var(--surface-strong);border:1px solid var(--line);border-left-width:4px;border-radius:10px}.iot-alert--rose{border-left-color:var(--rose)}.iot-alert--amber{border-left-color:var(--amber)}.iot-alert--teal{border-left-color:var(--teal)}.iot-alert--slate{border-left-color:var(--text-muted)}.iot-alert__head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.iot-alert__body p{margin:0 0 4px}.iot-alert__body span{font-size:.82rem}.iot-alert__actions{display:flex;align-items:center}.forecast-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--text-muted)}.forecast-legend .dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:4px;vertical-align:middle}.forecast-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px;background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;padding:16px;height:280px}.forecast-bar{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.72rem}.forecast-bar__date{text-align:center;color:var(--text-muted)}.forecast-bar__chart{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;min-height:100px}.forecast-bar__column{width:70%;display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden;min-height:4px}.forecast-bar__scheduled{background:var(--blue)}.forecast-bar__faults{background:var(--amber)}.forecast-bar--overload .forecast-bar__column{outline:2px solid var(--rose)}.forecast-bar__values{text-align:center}.forecast-bar__values strong{display:block;color:var(--text)}.forecast-table-wrap{background:var(--surface-strong);border:1px solid var(--line);border-radius:12px;overflow:hidden}.csat-form{display:flex;flex-direction:column;gap:20px}.csat-stars{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.csat-star{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;border-radius:8px;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--text-muted);font:inherit;font-size:.78rem;min-width:44px;transition:all .15s ease}.csat-star:hover{background:var(--surface-alt);border-color:var(--primary)}.csat-star--filled{color:var(--amber);border-color:var(--amber)}.csat-feedback{text-align:center;font-size:.95rem;color:var(--text)}.webhook-events{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt)}.webhook-events__item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:.85rem;cursor:pointer}.webhook-events__item:hover{background:var(--surface)}.webhook-events__item input{cursor:pointer}.stat-card{display:flex;gap:12px;padding:16px;border-radius:12px;background:var(--surface-strong);border:1px solid var(--line);border-left-width:4px}.stat-card--rose{border-left-color:var(--rose)}.stat-card--amber{border-left-color:var(--amber)}.stat-card--teal{border-left-color:var(--teal)}.stat-card--blue{border-left-color:var(--blue)}.stat-card__icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface-alt);color:var(--text-muted)}.stat-card__content{display:flex;flex-direction:column;gap:2px}.stat-card__label{font-size:.78rem;color:var(--text-muted);font-weight:500}.stat-card__value{font-size:1.4rem;font-weight:700}.stat-card__detail{font-size:.75rem;color:var(--text-muted)}.push-opt-in{position:fixed;bottom:80px;right:16px;max-width:360px;background:var(--surface-alt);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 8px 24px #00000024;z-index:9998;animation:push-opt-in-slide .25s ease}.push-opt-in__icon{color:var(--primary-500);flex-shrink:0;margin-top:2px}.push-opt-in__text{flex:1;display:flex;flex-direction:column;gap:2px;font-size:.85rem;line-height:1.4;color:var(--text)}.push-opt-in__text strong{font-weight:600}.push-opt-in__text span{color:var(--text-muted);font-size:.8rem}.push-opt-in__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.push-opt-in__dismiss{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:4px;display:flex;align-items:center;line-height:1}.push-opt-in__dismiss:hover{color:var(--text);background:var(--surface-hover)}@keyframes push-opt-in-slide{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.push-opt-in{right:8px;left:8px;max-width:none;bottom:72px}}.assistant-fab{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;background:var(--color-primary, #0b7a75);color:#fff;font-size:22px;border:none;cursor:pointer;z-index:1000;box-shadow:0 4px 16px #0000002e;display:flex;align-items:center;justify-content:center;transition:background .15s}.assistant-fab:hover{background:#095e5a}.assistant-drawer{position:fixed;bottom:88px;right:24px;width:380px;height:520px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0000002e;z-index:1001;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e5edf0}.assistant-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--color-primary, #0b7a75);color:#fff;font-weight:700;font-size:15px}.assistant-drawer__header .ghost-button{color:#fff;font-size:16px}.assistant-drawer__messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.assistant-drawer__hint{color:#8ba0a8;font-size:13px;text-align:center;margin-top:24px}.assistant-message{max-width:85%;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.5;white-space:pre-wrap}.assistant-message--user{align-self:flex-end;background:var(--color-primary, #0b7a75);color:#fff;border-bottom-right-radius:4px}.assistant-message--assistant{align-self:flex-start;background:#f0f4f5;color:#12323a;border-bottom-left-radius:4px}.assistant-message--loading{padding:14px 18px}.dot-flashing{display:inline-block;width:8px;height:8px;border-radius:50%;background:#8ba0a8;animation:dot-flashing 1s infinite alternate}@keyframes dot-flashing{0%{opacity:.3}to{opacity:1}}.assistant-drawer__error{color:#c0392b;font-size:13px;padding:4px 0}.assistant-drawer__input-row{display:flex;gap:8px;padding:12px;border-top:1px solid #e5edf0}.assistant-drawer__input{flex:1;border:1px solid #d5e0e4;border-radius:10px;padding:8px 12px;font-size:14px;background:#f9fbfc;outline:none}.assistant-drawer__input:focus{border-color:#0b7a75}.assistant-drawer__send{background:var(--color-primary, #0b7a75);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer}.assistant-drawer__send:disabled{opacity:.5;cursor:default}@media(max-width:440px){.assistant-drawer{right:0;left:0;width:100%;bottom:80px;border-radius:16px 16px 0 0}}
