@charset "UTF-8";*{box-sizing:border-box}html,body,app-root{margin:0;padding:0;min-height:100vh}app-root,app-shell{display:block;min-height:100vh}body{font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-text);background-color:var(--color-bg);background-image:var(--bg-gradient);background-attachment:fixed}h1,h2,h3,h4,p{margin:0}a{color:var(--color-primary);text-decoration:none}::selection{background:var(--color-primary-soft)}.text-soft{color:var(--color-text-soft)}.text-faint{color:var(--color-text-faint);font-size:var(--font-size-sm)}.mono{font-variant-numeric:tabular-nums}.ui-card{background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--card-padding)}.ui-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:calc(var(--space-xs) / 2) var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.ui-badge--success{background:var(--color-success-soft);color:var(--color-success)}.ui-badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.ui-badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.ui-badge--info{background:var(--color-info-soft);color:var(--color-info)}.ui-badge--neutral{background:var(--color-neutral-soft);color:var(--color-neutral)}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--color-text-faint)}.ui-spinner{width:var(--space-lg);height:var(--space-lg);border:var(--border-width-strong) solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:ui-spin .8s linear infinite;margin:var(--space-lg) auto}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-switch{position:relative;display:inline-flex;width:var(--switch-width);height:var(--switch-height);border-radius:var(--radius-full);background:var(--color-neutral-soft);border:var(--border-width) solid var(--color-border-strong);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.ui-switch:after{content:"";position:absolute;inset-block-start:50%;inset-inline-start:calc(var(--space-xs) / 2);transform:translateY(-50%);width:calc(var(--switch-height) - var(--space-xs) - var(--border-width) * 2);height:calc(var(--switch-height) - var(--space-xs) - var(--border-width) * 2);border-radius:var(--radius-full);background:var(--color-surface-solid);box-shadow:var(--shadow-sm);transition:inset-inline-start var(--transition-fast)}.ui-switch--on{background:var(--brand-gradient);border-color:transparent;box-shadow:var(--shadow-glow)}.ui-switch--on:after{inset-inline-start:calc(100% - var(--switch-height) + var(--space-xs) / 2 + var(--border-width))}.ui-switch:focus-visible{outline:var(--border-width-strong) solid var(--color-focus-ring);outline-offset:var(--border-width-strong)}.ui-toasts{position:fixed;inset-block-start:var(--space-md);inset-inline-end:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);z-index:1000}.ui-toast{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-inline-start:var(--border-width-strong) solid var(--color-info);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.ui-toast--success{border-inline-start-color:var(--color-success)}.ui-toast--error{border-inline-start-color:var(--color-danger)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);height:var(--control-height);padding:0 var(--space-md);border-radius:var(--radius-md);border:var(--border-width) solid transparent;font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.ui-btn:active:not(:disabled){transform:translateY(var(--border-width))}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn:focus-visible{outline:var(--border-width-strong) solid var(--color-focus-ring);outline-offset:var(--border-width-strong)}.ui-btn--primary{background:var(--brand-gradient);color:var(--color-text-inverse);box-shadow:var(--shadow-glow)}.ui-btn--primary:hover:not(:disabled){background:var(--brand-gradient-hover)}.ui-btn--ghost{background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--color-text);border-color:var(--color-border-strong)}.ui-btn--ghost:hover:not(:disabled){background:var(--glass-highlight);box-shadow:var(--shadow-sm)}.ui-btn--danger{background:var(--color-danger);color:var(--color-text-inverse)}.ui-btn--icon{padding:0;width:var(--control-height)}.ui-field{display:flex;flex-direction:column;gap:var(--space-xs)}.ui-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-soft)}.ui-field__hint{font-size:var(--font-size-xs);color:var(--color-text-faint)}.ui-control{height:var(--control-height);padding:0 var(--space-sm);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-md);width:100%}textarea.ui-control{height:auto;min-height:calc(var(--control-height) * 2);padding:var(--space-sm);resize:vertical}.ui-control:focus-visible{outline:var(--border-width-strong) solid var(--color-focus-ring);outline-offset:calc(var(--border-width) * -1)}.ui-input-group{position:relative;display:flex;align-items:center}.ui-input-group .ui-control{padding-inline-end:calc(var(--control-height) + var(--space-xs))}.ui-input-group__action{position:absolute;inset-inline-end:var(--space-xs);display:inline-flex;align-items:center;justify-content:center;width:calc(var(--control-height) - var(--space-sm));height:calc(var(--control-height) - var(--space-sm));border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-soft);cursor:pointer}.ui-input-group__action:hover{background:var(--color-neutral-soft)}.ui-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-md)}.ui-tabs{display:flex;gap:var(--space-xs);padding:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;background:var(--color-surface-alt);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);width:fit-content;max-width:100%}.ui-tab{padding:var(--space-sm) var(--space-md);border:none;background:none;font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-text-soft);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast),color var(--transition-fast)}.ui-tab--active{color:var(--color-text-inverse);font-weight:var(--font-weight-medium);background:var(--brand-gradient);box-shadow:var(--shadow-glow)}.ui-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);backdrop-filter:blur(calc(var(--glass-blur) / 3));-webkit-backdrop-filter:blur(calc(var(--glass-blur) / 3));display:flex;align-items:center;justify-content:center;z-index:900;padding:var(--space-md)}.ui-modal{background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(680px,100%);max-height:90vh;overflow:auto;padding:var(--space-lg)}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.ui-modal__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.ui-table__files{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.ui-table__file,.image-input__file{font-size:var(--font-size-xs);padding:var(--space-xs) var(--space-sm);max-width:calc(var(--sidebar-width) * .8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-table__thumb-btn{padding:0;border:none;background:transparent;cursor:zoom-in;line-height:0}.ui-table__thumb{width:calc(var(--space-xl) * 2);height:calc(var(--space-xl) * 1.4);object-fit:cover;border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border);background:var(--color-surface-alt);display:block}.ui-table-wrap{overflow-x:auto;border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-md)}.ui-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ui-table th{text-align:start;padding:var(--space-sm) var(--space-md);background:var(--color-surface-alt);color:var(--color-text-soft);font-weight:var(--font-weight-medium);border-bottom:var(--border-width) solid var(--color-border);white-space:nowrap}.ui-table td{padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border);height:var(--table-row-height);vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr{transition:background var(--transition-fast)}.ui-table tbody tr:hover{background:var(--color-surface-alt)}.ui-table--clickable tbody tr{cursor:pointer}.ui-table .cell--number{text-align:end;font-variant-numeric:tabular-nums}.ui-table .cell--center{text-align:center}.ui-table__actions-col{width:calc(var(--sidebar-icon-plate) * 3.4)}.ui-table__actions{display:flex;gap:var(--space-xs);justify-content:center}.ui-table__action{width:var(--sidebar-icon-plate);height:var(--sidebar-icon-plate);display:inline-flex;align-items:center;justify-content:center;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-solid);cursor:pointer}.ui-table__action:hover,.ui-table__action:focus-visible{background:var(--color-primary-soft);outline:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}#alerts,#tickets{scroll-margin-top:var(--space-xl)}.stat-card{display:flex;gap:var(--space-md);align-items:center}.stat-card--link{cursor:pointer}.stat-card--link:hover,.stat-card--link:focus-visible{box-shadow:var(--shadow-lg);outline:none}.stat-card__icon{width:calc(var(--control-height) + var(--space-sm));height:calc(var(--control-height) + var(--space-sm));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--brand-gradient);color:var(--color-text-inverse);box-shadow:var(--shadow-glow);flex-shrink:0}.stat-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums}.stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-soft)}.stat-card__trend{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.stat-card__trend--up{color:var(--color-success)}.stat-card__trend--down{color:var(--color-danger)}.bar-chart{display:flex;flex-direction:column;gap:var(--space-sm)}.bar-chart__row{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm)}.bar-chart__track{background:var(--color-surface-alt);border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-full);overflow:hidden;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.bar-chart__fill{height:var(--chart-bar-height);background:var(--brand-gradient);border-radius:var(--radius-full);box-shadow:var(--shadow-glow);transition:width var(--transition-fast)}.bar-chart__value{min-width:calc(var(--control-height) * 2);text-align:end;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);background:var(--color-surface);border:var(--border-width) solid var(--glass-highlight);font-weight:var(--font-weight-medium)}.alert-list{display:flex;flex-direction:column;gap:var(--space-sm)}.alert-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-md);line-height:1.45;border:var(--border-width) solid var(--color-border)}.alert-item--link{cursor:pointer}.alert-item--link:hover,.alert-item--link:focus-visible{box-shadow:var(--shadow-md);outline:none}.alert-item--info{background:var(--color-info-soft);color:var(--color-info);border-color:transparent}.alert-item--warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:transparent}.alert-item--danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:transparent}.column-chart{display:flex;align-items:stretch;gap:var(--space-sm)}.column-chart__col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.column-chart__track{width:100%;max-width:var(--chart-column-width);height:var(--chart-column-height);display:flex;align-items:flex-end;background:var(--color-surface-alt);border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-sm);overflow:hidden}.column-chart__fill{width:100%;background:var(--brand-gradient);border-radius:var(--radius-sm) var(--radius-sm) 0 0;box-shadow:var(--shadow-glow);transition:height var(--transition-fast)}.column-chart__value{font-size:var(--font-size-xs)}.column-chart__label{font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.donut-chart{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.donut-chart__svg{width:var(--chart-donut-size);height:var(--chart-donut-size);flex-shrink:0;transform:rotate(0)}.donut-chart__seg{stroke-width:var(--chart-donut-stroke);stroke-linecap:butt}.donut-chart__legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-sm)}.donut-chart__item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm)}.donut-chart__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-chart__pct{min-width:calc(var(--space-xl) + var(--space-sm));text-align:end}.donut-chart__dot{width:var(--space-sm);height:var(--space-sm);border-radius:var(--radius-full);flex-shrink:0}.donut-chart__seg--1{stroke:var(--chart-color-1)}.donut-chart__seg--2{stroke:var(--chart-color-2)}.donut-chart__seg--3{stroke:var(--chart-color-3)}.donut-chart__seg--4{stroke:var(--chart-color-4)}.donut-chart__seg--5{stroke:var(--chart-color-5)}.donut-chart__seg--6{stroke:var(--chart-color-6)}.donut-chart__dot--1{background:var(--chart-color-1)}.donut-chart__dot--2{background:var(--chart-color-2)}.donut-chart__dot--3{background:var(--chart-color-3)}.donut-chart__dot--4{background:var(--chart-color-4)}.donut-chart__dot--5{background:var(--chart-color-5)}.donut-chart__dot--6{background:var(--chart-color-6)}.token-toolbar{gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-sm)}.token-toolbar__hint{margin:0;flex:1;min-width:0}.token-toolbar__actions{gap:var(--space-sm);flex-shrink:0}.token-search{width:calc(var(--sidebar-width) - var(--space-xl))}.token-list{display:flex;flex-direction:column;margin-top:var(--space-sm)}.token-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;border-bottom:var(--border-width) solid var(--color-border)}.token-row:last-child{border-bottom:none}.token-row__key{flex:0 0 clamp(160px,30%,320px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm);color:var(--color-text-soft)}.token-row__key--compact{flex-basis:clamp(120px,18%,220px)}.token-row__key--code{flex-basis:calc(var(--space-xl) * 2)}.token-row .ui-control{flex:1;min-width:0}.ui-pager{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-md)}.token-row__grow{flex:1;min-width:0}.token-row__swatch{width:var(--control-height);height:calc(var(--control-height) - var(--space-sm));border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border-strong);flex-shrink:0}.statement{display:flex;flex-direction:column}.statement__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border);font-size:var(--font-size-md)}.statement__row:last-child{border-bottom:none}.statement__row--header{font-weight:var(--font-weight-bold);color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius-sm);margin-top:var(--space-sm)}.statement__row--line{padding-inline-start:var(--space-xl);color:var(--color-text-soft)}.statement__row--subtotal{font-weight:var(--font-weight-medium);background:var(--color-surface-alt)}.statement__row--total{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);background:var(--brand-gradient);color:var(--color-text-inverse);border-radius:var(--radius-md);margin-top:var(--space-sm);box-shadow:var(--shadow-glow)}.statement__amount--negative{color:var(--color-danger)}.statement__row--total .statement__amount--negative{color:var(--color-text-inverse)}.statement-summary{gap:var(--space-lg);flex-wrap:wrap;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:var(--color-surface-alt);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-soft)}.statement-summary__item strong{color:var(--color-text)}.statement-card__note{margin-top:var(--space-sm)}.backup-card{margin-bottom:var(--space-lg)}.backup-form{align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap;margin-top:var(--space-md)}.backup-card__switch{gap:var(--space-sm);align-items:center;height:var(--control-height);white-space:nowrap}.backup-card__field{flex:0 1 calc(var(--sidebar-width) * .6)}.backup-card__field .ui-field__label{margin-bottom:var(--space-xs)}.backup-form__save{height:var(--control-height)}.backup-card__next{margin:var(--space-md) 0 0}.backup-head{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.backup-head__text{display:flex;flex-direction:column;gap:var(--space-xs)}.backup-head__text .ui-card__title,.backup-head__text .ui-field__hint{margin:0}.image-input{display:flex;flex-direction:column;gap:var(--space-sm)}.image-input__list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.image-input__item{position:relative;display:inline-flex}.image-input__remove{position:absolute;inset-block-start:calc(var(--space-xs) * -1);inset-inline-end:calc(var(--space-xs) * -1);display:inline-flex;align-items:center;justify-content:center;width:var(--space-lg);height:var(--space-lg);border-radius:var(--radius-full);border:var(--border-width) solid var(--color-border-strong);background:var(--color-surface-solid);color:var(--color-danger);cursor:pointer}.image-input__controls{gap:var(--space-sm);flex-wrap:wrap}.image-input__controls .ui-control{flex:1;min-width:0}.ui-table__thumbs{display:inline-flex;flex-wrap:wrap;gap:var(--space-xs)}.crud-filter{gap:var(--space-xs);align-items:center;flex-shrink:0}.crud-filter .ui-field__label{margin:0}.crud-filter .ui-control{width:auto}.crud-search{flex:1;min-width:calc(var(--space-xl) * 5);max-width:calc(var(--space-xl) * 9)}.shell{display:flex;min-height:100vh;overflow-x:hidden}.shell__main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:100vh}.shell__content{flex:1;padding:var(--space-lg);max-width:var(--content-max-width);width:100%;margin:0 auto}app-sidebar{display:block;width:var(--sidebar-width);flex-shrink:0}.shell--nav-closed app-sidebar{width:0}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar-width);height:100vh;background:var(--color-sidebar-bg);color:var(--color-sidebar-text);display:flex;flex-direction:column;overflow-y:auto;transition:transform var(--transition-fast);z-index:500}.sidebar--closed{transform:translate(-100%)}[dir=rtl] .sidebar--closed{transform:translate(100%)}.sidebar__brand{display:flex;align-items:center;justify-content:center;padding:var(--space-md);border-bottom:var(--border-width) solid var(--color-sidebar-active-bg)}.sidebar__logo{display:block;width:100%;height:auto;max-height:var(--sidebar-logo-height);object-fit:contain;background:var(--color-logo-plate);filter:var(--sidebar-logo-filter)}.sidebar__close{display:none;align-self:flex-end;margin:var(--space-sm) var(--space-sm) 0;background:transparent;border:none;color:var(--color-sidebar-text);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm)}.sidebar__nav{padding:var(--space-md) var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm);flex:1}.sidebar__link{display:flex;align-items:center;gap:var(--space-md);min-height:var(--sidebar-item-height);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-sidebar-text);font-size:var(--font-size-lg);transition:background var(--transition-fast),color var(--transition-fast)}.sidebar__link-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sidebar-icon-plate);height:var(--sidebar-icon-plate);border-radius:var(--radius-sm);background:var(--color-sidebar-icon-bg);flex-shrink:0;transition:background var(--transition-fast)}.sidebar__link-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__link:hover{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text)}.sidebar__link--active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm)}.sidebar__link--active .sidebar__link-icon{background:var(--brand-gradient);color:var(--color-text-inverse);box-shadow:var(--shadow-glow)}.sidebar-backdrop{display:none}.topbar{height:var(--header-height);background:var(--color-header-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:var(--border-width) solid var(--glass-highlight);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);position:sticky;top:0;z-index:100;gap:var(--space-md)}.topbar__start{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.topbar__logo{height:var(--topbar-logo-height);width:auto;object-fit:contain;background:transparent}.topbar__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__actions{display:flex;align-items:center;gap:var(--space-sm)}.topbar__user{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.topbar__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.topbar__user-role{font-size:var(--font-size-xs);color:var(--color-text-faint)}@media(max-width:960px){.sidebar{box-shadow:var(--shadow-lg)}.sidebar__close{display:inline-flex;position:absolute;inset-block-start:var(--space-sm);inset-inline-end:var(--space-sm);margin:0}.sidebar-backdrop{display:block;position:fixed;inset:0;background:var(--overlay-bg);z-index:400;border:none;padding:0}}.topbar__search{position:relative;display:flex;align-items:center;gap:var(--space-sm);flex:1;max-width:calc(var(--space-xl) * 12);padding:0 var(--space-md);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-alt);color:var(--color-text-faint);transition:border-color var(--transition-fast),background var(--transition-fast)}.topbar__search:focus-within{border-color:var(--color-primary);background:var(--color-surface)}.topbar__search-input{flex:1;min-width:0;appearance:none;-webkit-appearance:none;border:none;outline:none;background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);padding:var(--space-sm) 0}.topbar__search-input::placeholder{color:var(--color-text-faint)}.topbar__search-input:focus,.topbar__search-input:focus-visible{outline:none;box-shadow:none}.topbar__search-results{position:absolute;top:calc(100% + var(--space-xs));inset-inline:0;display:flex;flex-direction:column;gap:var(--space-xs);max-height:calc(var(--space-xl) * 14);overflow-y:auto;padding:var(--space-sm);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:120}.topbar__search-result{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);text-align:start;cursor:pointer}.topbar__search-result:hover{background:var(--color-primary-soft)}.topbar__search-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:calc(var(--space-xl) * 1.1);height:calc(var(--space-xl) * 1.1);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary)}.topbar__search-name{font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__search-module{margin-inline-start:auto;flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-faint);background:var(--color-surface-alt);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-sm)}.report-section{margin-block-end:var(--space-lg)}.report-section__title{display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-md);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text)}.report-section__icon{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--space-xl) * 1.1);height:calc(var(--space-xl) * 1.1);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary)}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-xl) * 6.5),1fr));gap:var(--space-md)}.report-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);text-align:start;font:inherit;cursor:pointer;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.report-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(calc(var(--space-xs) * -.5))}.report-card__name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.report-card__meta{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-faint)}.report-view__bar{display:flex;align-items:center;gap:var(--space-md);margin-block-end:var(--space-md)}.report-view__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text)}.report-view__crumb{font-size:var(--font-size-xs);color:var(--color-text-faint);background:var(--color-surface-alt);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-md)}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.lightbox__backdrop{position:absolute;inset:0;border:none;background:var(--overlay-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));cursor:zoom-out}.lightbox__body{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);max-width:90vw;max-height:90vh}.lightbox__image{max-width:100%;max-height:75vh;object-fit:contain;border-radius:var(--radius-lg);border:var(--border-width) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg)}.lightbox__actions{justify-content:center}app-token-color{position:relative;display:inline-flex;flex-shrink:0}.token-row__swatch--picker{padding:0;cursor:pointer;background:transparent}.token-row__swatch--picker::-webkit-color-swatch-wrapper{padding:0}.token-row__swatch--picker::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.token-row__swatch--btn{padding:0;cursor:pointer}.color-pop{position:absolute;top:calc(100% + var(--space-xs));inset-inline-start:0;z-index:200;display:flex;flex-direction:column;gap:var(--space-sm);min-width:calc(var(--space-xl) * 9);padding:var(--space-md);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.color-pop__row{align-items:center;gap:var(--space-sm)}.color-pop__row .ui-field__label{margin:0;flex-shrink:0}.color-pop__swatch{width:var(--control-height);height:calc(var(--control-height) - var(--space-sm));padding:0;border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);background:transparent;cursor:pointer;flex-shrink:0}.color-pop__swatch::-webkit-color-swatch-wrapper{padding:0}.color-pop__swatch::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.color-pop__value{flex:1;font-size:var(--font-size-xs);color:var(--color-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.page-header__title{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold)}.page-header__subtitle{color:var(--color-text-soft);font-size:var(--font-size-md);margin-top:var(--space-xs)}.page-header__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.content-grid{columns:2;column-gap:var(--space-lg)}.content-grid>*,.content-grid .ui-card{break-inside:avoid;margin-bottom:var(--space-lg)}.stack{display:flex;flex-direction:column;gap:var(--space-md)}.row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.row--between{justify-content:space-between}.ui-card--list{display:flex;flex-direction:column;padding-bottom:0;overflow:hidden}.ui-card--list .ui-card__head{margin-bottom:var(--space-sm)}.toggle-list{display:flex;flex-direction:column;gap:var(--space-sm)}.toggle-item{display:flex;align-items:center;gap:var(--space-md)}.feed-list,.ui-card--list .toggle-list{gap:0;margin-inline:calc(var(--card-padding) * -1)}.ui-card--list .toggle-item,.feed-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--card-padding);border-bottom:var(--border-width) solid var(--color-border)}.ui-card--list .toggle-item:last-child,.feed-row:last-child{border-bottom:none}.feed-row__text,.toggle-item__text{display:flex;flex-direction:column;gap:var(--space-xs);flex:1;min-width:0}.toggle-item__label{font-weight:var(--font-weight-bold)}.toggle-item__desc{color:var(--color-text-soft);font-size:var(--font-size-sm)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-md)}.login-card{width:min(460px,100%);display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl)}.login-card__logo{width:var(--login-logo-width);max-width:88%;align-self:center;background:transparent}.login-card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);text-align:center}.login-card__subtitle{text-align:center;color:var(--color-text-soft);font-size:var(--font-size-sm)}.login-card__divider{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-faint);font-size:var(--font-size-xs);margin-top:var(--space-sm)}.login-card__divider:before,.login-card__divider:after{content:"";flex:1;border-top:var(--border-width) solid var(--color-border)}.login-card__demo{display:flex;flex-direction:column;gap:var(--space-sm)}.demo-account{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);font-family:var(--font-family);text-align:start;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.demo-account:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--shadow-sm)}.demo-account:disabled{opacity:.55;cursor:not-allowed}.demo-account:focus-visible{outline:var(--border-width-strong) solid var(--color-focus-ring);outline-offset:var(--border-width-strong)}.demo-account__avatar{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--control-height) - var(--space-xs));height:calc(var(--control-height) - var(--space-xs));border-radius:var(--radius-full);background:var(--brand-gradient);color:var(--color-text-inverse);flex-shrink:0}.demo-account__text{display:flex;flex-direction:column;gap:calc(var(--space-xs) / 2);min-width:0}.demo-account__label{font-weight:var(--font-weight-medium);font-size:var(--font-size-md);color:var(--color-text)}.demo-account__user{font-size:var(--font-size-sm);color:var(--color-text-faint)}@media(max-width:960px){.content-grid{columns:1}}.roll-label{width:340px;background:var(--color-surface-solid);color:var(--color-text);border:var(--border-width) solid var(--color-text);font-size:var(--font-size-sm);direction:ltr}.roll-label__head{display:grid;grid-template-columns:auto 1fr;gap:var(--space-sm);align-items:center;padding:var(--space-sm);border-bottom:var(--border-width) solid var(--color-text)}.roll-label__logo{width:64px;object-fit:contain}.roll-label__company{font-size:var(--font-size-xs);line-height:1.5}.roll-label__product{text-align:center;font-weight:var(--font-weight-bold);font-size:var(--font-size-md);padding:var(--space-xs);border-bottom:var(--border-width) solid var(--color-text);direction:rtl}.roll-label__grid{display:grid;grid-template-columns:1fr 1fr}.roll-label__grid>div{padding:var(--space-xs) var(--space-sm);border-bottom:var(--border-width) solid var(--color-text)}.roll-label__grid>div:nth-child(odd){border-inline-end:var(--border-width) solid var(--color-text);font-weight:var(--font-weight-medium)}.roll-label__grid>div:nth-child(2n){text-align:center}.roll-label__iso{display:flex;justify-content:space-around;padding:var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);border-bottom:var(--border-width) solid var(--color-text)}.roll-label__footer{text-align:center;padding:var(--space-xs);font-size:var(--font-size-xs)}.roll-label__barcode{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xs)}.print-only{display:none}.print-sheet__logo{height:var(--print-sheet-logo-height);width:auto;object-fit:contain}.print-sheet__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:var(--space-sm) 0 0;text-align:center}.print-sheet__doc{text-align:center;font-weight:var(--font-weight-medium);margin:var(--space-xs) 0 0}.print-sheet__foot{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-soft);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:var(--border-width) solid var(--color-text)}.print-record{width:100%;margin:0;border:var(--border-width) solid var(--color-text)}.print-record__row{display:grid;grid-template-columns:var(--print-record-label) 1fr;border-bottom:var(--border-width) solid var(--color-text)}.print-record__row:last-child{border-bottom:none}.print-record dt{margin:0;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-medium);background:var(--color-surface-alt);border-inline-end:var(--border-width) solid var(--color-text)}.print-record dd{margin:0;padding:var(--space-sm) var(--space-md)}@media print{@page{margin:var(--print-page-margin)}.print-only{display:block}body *{visibility:hidden}.print-area,.print-area *,.print-sheet,.print-sheet *{visibility:visible}app-sidebar,.sidebar,.topbar,.page-header,.ui-tabs,.token-toolbar,.ui-table__actions-col,.ui-table-wrap--solo .ui-table,.print-sheet .print-nested-hide,body.is-print-row .print-sheet:not(.ui-table-wrap--solo)>.print-sheet__head,body.is-print-row .print-sheet:not(.ui-table-wrap--solo)>.print-sheet__foot,body.is-print-row .print-sheet:not(.ui-table-wrap--solo)>.statement-summary{display:none}html,body,.shell,.shell__main,.shell__content,.ui-card,.statement-card,.print-area,.print-sheet,.ui-table-wrap{display:block;position:static;overflow:visible;box-sizing:border-box;max-width:100%;width:100%;min-width:0;height:auto;padding:0;margin:0;background:transparent;box-shadow:none;border:none;border-radius:0;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none;filter:none}.ui-modal-overlay,.ui-modal{position:static;overflow:visible;max-height:none;width:auto;padding:0;border:none;box-shadow:none;background:transparent}.print-area:has(.roll-label){padding:var(--print-label-inset);width:auto}.print-sheet{padding-inline:var(--print-sheet-inset)}.print-area .ui-table,.print-sheet .ui-table{width:100%;max-width:100%;table-layout:auto;border-collapse:collapse}.print-area .ui-table th,.print-area .ui-table td,.print-sheet .ui-table th,.print-sheet .ui-table td,.print-area .ui-table tbody tr:last-child td,.print-sheet .ui-table tbody tr:last-child td{border:var(--border-width) solid var(--color-text);padding:var(--space-xs) var(--space-sm);height:auto;overflow-wrap:break-word;word-break:normal}.print-area .ui-table th,.print-area .ui-table td,.print-sheet .ui-table th{white-space:nowrap}.print-sheet .ui-table td{white-space:normal}.print-sheet .statement-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-md);box-sizing:border-box;width:100%;margin-block:var(--space-md);padding:var(--space-sm) 0;background:transparent;border-radius:0;border-block:var(--border-width) solid var(--color-text)}.print-sheet__head{text-align:center;margin-bottom:var(--space-md)}.print-sheet__logo{display:block;margin-inline:auto}.print-record dt{background:var(--color-surface-solid)}.roll-label{overflow:visible;break-inside:avoid}}.role-mod{margin-bottom:var(--space-md);background:var(--color-surface);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--card-padding)}.role-mod__head,.role-screen__head{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;list-style:none}.role-mod__head{font-size:var(--font-size-lg)}.role-mod__head::-webkit-details-marker,.role-screen__head::-webkit-details-marker{display:none}.role-mod__head:before,.role-screen__head:before{content:"";width:0;height:0;border-block-start:var(--space-sm) solid transparent;border-block-end:var(--space-sm) solid transparent;border-inline-start:var(--space-sm) solid var(--color-text-soft);flex-shrink:0}details[open]>.role-mod__head:before,details[open]>.role-screen__head:before{border-inline-start-color:transparent;border-inline-start-width:var(--space-sm);border-inline-end:var(--space-sm) solid transparent;border-block-start:var(--space-sm) solid var(--color-text-soft);border-block-end:none}.role-screen,.role-mod>app-role-perms{display:block;margin-top:var(--space-md);padding-top:var(--space-md);border-top:var(--border-width) solid var(--color-border)}.role-screen .ui-field__label{margin-top:var(--space-sm)}.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--sidebar-width) * .65),1fr));gap:var(--space-xs) var(--space-md);margin-top:var(--space-xs)}.checkin{display:flex;flex-direction:column;gap:var(--space-lg)}.checkin-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap}.checkin-hero__who{display:flex;align-items:center;gap:var(--space-md);flex:1 1 auto;min-width:0}.checkin-hero__photo{width:calc(var(--control-height) * 2);height:calc(var(--control-height) * 2);border-radius:var(--radius-full);object-fit:contain;background:var(--color-primary-soft);border:var(--border-width) solid var(--color-border);flex-shrink:0}.checkin-hero__photo--empty{display:flex;align-items:center;justify-content:center;background:var(--brand-gradient);color:var(--color-text-inverse);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);border-color:transparent;box-shadow:var(--shadow-glow)}.checkin-hero__id{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.checkin-hero__name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);overflow-wrap:break-word}.checkin-hero__status{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-sm)}.checkin-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--sidebar-width) * .55),1fr));gap:var(--space-md)}.checkin-metric{background:var(--color-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:var(--border-width) solid var(--glass-highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--card-padding)}.checkin-metric__value{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold)}.checkin-metric__label{margin-top:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-soft)}.checkin-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--sidebar-width) * .7),1fr));gap:var(--space-md)}.checkin-actions .ui-btn{width:100%;height:calc(var(--control-height) * 1.7);font-size:var(--font-size-lg)}.checkin-history{display:flex;flex-direction:column;gap:var(--space-md)}.checkin-history .ui-card__title{margin-bottom:0}@media print{.role-editor{display:none}}
