.ui-button{height:var(--control-height);min-height:var(--control-height);border-radius:var(--radius-control);font:inherit;white-space:nowrap;cursor:pointer;box-sizing:border-box;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.15rem;font-size:.75rem;font-weight:600;line-height:1;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s;display:inline-flex}.ui-button svg{flex-shrink:0}.ui-button:hover:not(:disabled){transform:translateY(-1px)}.ui-button:disabled{cursor:not-allowed;opacity:.55}.ui-button--primary{color:#fff;background:var(--app-primary);box-shadow:0 7px 15px #205bcc29}.ui-button--primary:hover:not(:disabled){background:var(--app-primary-hover);box-shadow:0 9px 18px #205bcc33}.ui-button--secondary{color:var(--app-text);border-color:var(--app-border-strong);background:var(--app-surface)}.ui-button--secondary:hover:not(:disabled){background:var(--app-surface-muted);border-color:#b5c3d2}.ui-button--ghost{color:var(--app-text-secondary);background:0 0}.ui-button--ghost:hover:not(:disabled){color:var(--app-text);background:var(--app-surface-muted)}.ui-button--danger{color:#fff;background:#b9454d}.ui-button--danger:hover:not(:disabled){background:#a23841}.ui-button--sm{gap:.35rem;height:32px;min-height:32px;padding:0 .75rem;font-size:.7rem}.ui-button--lg{height:48px;min-height:48px;padding:0 1.5rem;font-size:.85rem}.ui-button--icon{width:var(--control-height);color:var(--app-text-secondary);background:0 0;padding:0}.ui-button--icon:hover:not(:disabled){color:var(--app-text);background:var(--app-surface-muted)}.ui-input,.ui-select,.ui-textarea{width:100%;height:var(--control-height);border:1px solid var(--app-border-strong);border-radius:var(--radius-control);color:var(--app-text);background:var(--app-surface);font:inherit;outline:none;font-size:.75rem;transition:border-color .18s,box-shadow .18s,background-color .18s}.ui-input{padding:0 .875rem}.ui-textarea{resize:vertical;min-height:108px;padding:.75rem .875rem}.ui-input::placeholder{color:#98a5b3}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--app-primary);box-shadow:0 0 0 3px #205bcc1f}.ui-input:disabled,.ui-select:disabled{color:#7c8997;cursor:not-allowed;background:#f1f3f6}.ui-input--error,.ui-input[aria-invalid=true]{border-color:#c95b62}.ui-input--error:focus,.ui-input[aria-invalid=true]:focus{box-shadow:0 0 0 3px #b9454d1c}.ui-select-wrap{min-width:0;display:inline-flex;position:relative}.ui-select{appearance:none;padding:0 2.25rem 0 .75rem}.ui-select-wrap>svg{pointer-events:none;color:var(--app-text-muted);position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.status-badge{border:1px solid #0000;border-radius:7px;align-items:center;min-height:24px;padding:0 .55rem;font-size:.625rem;font-weight:600;line-height:1;display:inline-flex}.status-badge--neutral-light{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.status-badge--neutral{color:#536273;background:#f4f6f8;border-color:#dce2e8}.status-badge--info{color:#265ba5;background:#edf3fc;border-color:#cbdaf1}.status-badge--success{color:#28705a;background:#edf8f3;border-color:#c5dfd4}.status-badge--warning{color:#b45309;background:#fffbeb;border-color:#fde68a}.status-badge--danger{color:#9b3c43;background:#fbf0f1;border-color:#e7c9cc}.status-badge--emergency{color:#fff;background:#dc2626;border-color:#dc2626;font-weight:700}.empty-state{text-align:center;align-content:center;place-items:center;gap:.875rem;min-height:220px;padding:2rem;display:grid}.empty-state__icon{width:42px;height:42px;color:var(--app-primary);background:#f3f7fc;border:1px solid #dae3eb;border-radius:11px;place-items:center;display:grid}.empty-state h3{color:var(--app-text);margin:0;font-size:.85rem;font-weight:600}.empty-state p{max-width:420px;color:var(--app-text-secondary);margin:.45rem auto 0;font-size:.7rem;line-height:1.65}.empty-state__action{margin-top:.25rem}.empty-state--compact{min-height:165px;padding:1.25rem}.ui-skeleton{background:#e7ebf0;border-radius:7px;display:block;overflow:hidden}.ui-skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb8,#0000);width:100%;height:100%;animation:1.35s ease-in-out infinite skeleton-shimmer;display:block;transform:translate(-100%)}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.ui-skeleton:after,.ui-modal-backdrop,.ui-modal{animation:none}}.filter-toolbar{border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);min-height:52px;box-shadow:var(--shadow-surface);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;padding:10px 16px;display:flex}.filter-toolbar__search{flex:240px;align-items:center;min-width:200px;max-width:360px;display:flex;position:relative}.filter-toolbar__search>svg{color:var(--app-text-muted);pointer-events:none;position:absolute;left:12px}.filter-toolbar__search .ui-input{width:100%;padding-left:36px}.filter-toolbar__filters{flex-flow:wrap;align-items:center;gap:8px;display:flex}.filter-toolbar__filters .ui-select-wrap,.filter-toolbar__filters .ui-select{width:auto;min-width:135px}.filter-toolbar__counter{color:var(--app-text-muted);white-space:nowrap;margin-left:auto;font-size:.75rem;font-weight:500}:is(.data-table-wrap,.sports-table-wrapper,.med-table-container){border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);min-width:0;max-width:100%;box-shadow:var(--shadow-surface);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b9c6d3 transparent;position:relative;overflow-x:auto}:is(.data-table,.sports-table,.med-table){border-collapse:collapse;text-align:left;width:100%;font-size:.8125rem;line-height:1.5}:is(.data-table,.sports-table,.med-table) thead{background:var(--app-surface-muted)}:is(.data-table,.sports-table,.med-table) th{color:#53677b;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--app-border);background:#f4f6f9;height:46px;padding:0 16px;font-size:.6875rem;font-weight:600}:is(.data-table,.sports-table,.med-table) td{border-top:1px solid var(--app-border);min-height:56px;color:var(--app-text-secondary);vertical-align:middle;padding:13px 16px}:is(.data-table,.sports-table,.med-table) tbody tr{background:var(--app-surface);transition:background-color .15s,box-shadow .15s;box-shadow:inset 3px 0 #0000}:is(.data-table,.sports-table,.med-table) tbody tr:hover{box-shadow:inset 3px 0 var(--app-primary);background:#205bcc09}:is(.data-table,.sports-table,.med-table) tbody tr:focus-within{box-shadow:inset 3px 0 var(--app-primary);background:#205bcc0b}.table-num,.med-table-num,.data-table-num{font-variant-numeric:tabular-nums;font-weight:500}.table-primary{color:var(--app-primary);font-weight:600;text-decoration:none}.table-primary:hover{text-decoration:underline}.kpi-strip,.kpi-grid,.module-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-strip--3col{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-card,.module-kpi{border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);box-shadow:var(--shadow-surface);justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px;transition:border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.kpi-card:hover,.module-kpi:hover{border-color:#cbd8e6;box-shadow:0 2px 6px #11263a0a,0 10px 24px #11263a0a}.kpi-card__body,.module-kpi__body{flex-direction:column;min-width:0;display:flex}.kpi-card__label,.module-kpi__label{color:var(--app-text-secondary);letter-spacing:-.01em;font-size:.75rem;font-weight:500;line-height:1.3;display:block}.kpi-card__value,.module-kpi__value{color:var(--app-text);letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:clamp(1.4rem,1.8vw,1.75rem);font-weight:700;line-height:1.15;display:block}.kpi-card__supporting,.module-kpi__supporting{color:var(--app-text-muted);align-items:center;gap:4px;margin-top:6px;font-size:.72rem;font-weight:500;line-height:1.3;display:inline-flex}.kpi-card__icon,.module-kpi__icon{width:40px;min-width:40px;height:40px;min-height:40px;color:var(--app-primary);background:#edf4fc;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.kpi-card__icon--blue{color:var(--app-primary);background:#edf4fc}.kpi-card__icon--emerald{color:var(--app-success);background:#edf8f3}.kpi-card__icon--amber{color:var(--app-warning);background:#fbf7e9}.kpi-card__icon--rose{color:var(--app-danger);background:#fbf0f1}@media (max-width:1200px){.kpi-strip,.kpi-grid,.module-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.kpi-strip,.kpi-grid,.module-kpis{grid-template-columns:1fr}}.ui-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);background:#0f172a7a;justify-content:center;align-items:center;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) forwards uiModalOverlayIn;display:flex;position:fixed;inset:0}@keyframes uiModalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes uiModalContentIn{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.ui-modal{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;flex-direction:column;width:min(560px,100%);max-height:min(860px,100dvh - 40px);animation:.22s cubic-bezier(.16,1,.3,1) forwards uiModalContentIn;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 36px #030e1933}.ui-modal--sm{width:min(440px,100%)}.ui-modal--md{width:min(560px,100%)}.ui-modal--lg{width:min(700px,100%)}.ui-modal--xl{width:min(880px,100%)}.ui-modal>form,.ui-modal__form{flex-direction:column;flex:auto;min-height:0;display:flex}.ui-modal__header{z-index:2;background:var(--app-surface);border-bottom:1px solid var(--app-border);flex:none;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:14px 20px;display:flex;position:relative}.ui-modal__heading{align-items:center;gap:10px;min-width:0;display:flex}.ui-modal__heading>div{min-width:0}.ui-modal__icon{color:var(--app-primary);flex:none;place-items:center;display:grid}.ui-modal__icon svg{width:19px;height:19px}.ui-modal__context,.ui-modal__header>div>span:not(.ui-modal__icon){color:var(--app-text-secondary);margin-bottom:2px;font-size:.6875rem;font-weight:600;line-height:1.35;display:block}.ui-modal__header>div{min-width:0}.ui-modal__header h2,.ui-modal__header h3{color:var(--app-text);letter-spacing:-.01em;margin:0;font-size:1.0625rem;font-weight:600;line-height:1.35}.ui-modal__header p{color:var(--app-text-secondary);margin:4px 0 0;font-size:.75rem;line-height:1.5}.ui-modal__close,.ui-modal__header>button{border-radius:var(--radius-control);width:36px;min-width:36px;height:36px;min-height:36px;color:var(--app-text-secondary);cursor:pointer;background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;transition:all .16s;display:grid}.ui-modal__close:hover,.ui-modal__header>button:hover{color:var(--app-text);background:var(--app-surface-muted)}.ui-modal__close:focus-visible,.ui-modal__header>button:focus-visible{outline:3px solid color-mix(in srgb, var(--app-primary) 20%, transparent);outline-offset:1px}.ui-modal__body{overscroll-behavior:contain;background:var(--app-surface);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b9c6d3 transparent;flex-direction:column;flex:auto;gap:16px;min-height:0;padding:20px;display:flex;overflow-y:auto}.ui-modal__footer{z-index:2;background:var(--app-surface-muted);border-top:1px solid var(--app-border);flex:none;justify-content:flex-end;align-items:center;gap:10px;min-height:64px;padding:12px 20px;display:flex;position:relative}.ui-modal__footer .ui-button{min-width:104px}.ui-modal__confirmation-message{color:var(--app-text-secondary);margin:0;font-size:.8125rem;line-height:1.65}.ui-modal .med-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.ui-modal .med-form-group{flex-direction:column;gap:6px;min-width:0;margin:0;display:flex}.ui-modal .med-form-group label{color:var(--app-text);letter-spacing:0;text-transform:none;margin:0;font-size:.75rem;font-weight:600;line-height:1.35}.ui-modal .med-form-group :is(input,select,textarea){width:100%;min-height:var(--control-height);border:1px solid var(--app-border-strong);border-radius:var(--radius-control);color:var(--app-text);background:var(--app-surface);font-family:var(--app-font-family);outline:none;font-size:.8125rem}.ui-modal .med-form-group :is(input,select){padding:0 .875rem}.ui-modal .med-form-group textarea{resize:vertical;min-height:108px;padding:.75rem .875rem}.ui-modal .med-form-group :is(input,select,textarea):focus{border-color:var(--app-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--app-primary) 12%, transparent)}.ui-modal :is(.med-btn-primary,.med-btn-secondary){min-height:var(--control-height);border-radius:var(--radius-control);font-family:var(--app-font-family);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.15rem;font-size:.75rem;font-weight:600;display:inline-flex}.ui-modal .med-btn-primary{border-color:var(--app-primary);color:#fff;background:var(--app-primary)}.ui-modal .med-btn-primary:hover:not(:disabled){background:var(--app-primary-hover)}.ui-modal .med-btn-secondary{border-color:var(--app-border-strong);color:var(--app-text);background:var(--app-surface)}.ui-modal .med-btn-secondary:hover:not(:disabled){background:var(--app-surface-muted)}@media (max-width:640px){.ui-modal-backdrop{align-items:flex-end;padding:0}.ui-modal{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;width:100%;max-height:92dvh}.ui-modal__body{padding:16px}.ui-modal__footer{padding-bottom:max(14px, env(safe-area-inset-bottom));flex-wrap:wrap-reverse}.ui-modal__footer .ui-button,.ui-modal__footer>button{flex:140px;min-height:44px}.ui-modal .med-form-row{grid-template-columns:1fr}.ui-modal .med-form-group :is(input,select,textarea){min-height:44px;font-size:1rem}}.form-section,.cleaning-form-section,.sports-form-section{flex-direction:column;gap:12px;display:flex}.form-section__title,.cleaning-form-section__title,.sports-form-section__title{letter-spacing:.08em;text-transform:uppercase;color:var(--app-text-secondary);border-bottom:1px solid var(--app-border);margin:0;padding-bottom:6px;font-size:.6875rem;font-weight:700}.form-grid,.cleaning-form-grid,.sports-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.form-grid--full,.cleaning-form-grid--full,.sports-form-grid--full{grid-column:1/-1}.form-field,.cleaning-form-field,.sports-form-field{flex-direction:column;gap:6px;display:flex}.form-field>label,.form-field>span,.cleaning-form-field>span,.sports-form-field>span{color:var(--app-text);font-size:.75rem;font-weight:600}.form-field__hint{color:var(--app-text-muted);font-size:.6875rem}.form-alert,.cleaning-form-alert,.sports-form-alert{border-radius:var(--radius-control);color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:8px;padding:10px 14px;font-size:.75rem;font-weight:500;display:flex}@media (max-width:640px){.form-grid,.cleaning-form-grid,.sports-form-grid{grid-template-columns:1fr}}.pagination{border-top:1px solid var(--app-border);min-height:52px;color:var(--app-text-secondary);background:var(--app-surface-muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-size:.75rem;font-weight:500;display:flex}.pagination>div,.pagination__controls{align-items:center;gap:8px;display:flex}@media (max-width:640px){.pagination{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px}.pagination>div,.pagination__controls{justify-content:space-between}}.report-categories{background:var(--app-surface-muted);border:1px solid var(--app-border);border-radius:var(--radius-surface);flex-wrap:wrap;gap:6px;padding:6px;display:flex}.report-categories button{border-radius:var(--radius-control);color:var(--app-text-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 16px;font-size:.75rem;font-weight:600;transition:all .16s;display:inline-flex}.report-categories button:hover{color:var(--app-text)}.report-categories button.is-active{background:var(--app-surface);color:var(--app-primary);box-shadow:var(--shadow-surface)}.report-filter-panel{border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);box-shadow:var(--shadow-surface);overflow:hidden}.report-filter-header{border-bottom:1px solid var(--app-border);min-height:86px;padding:18px 22px}.report-filter-header>div{gap:4px;display:grid}.report-filter-header span{color:var(--app-primary);letter-spacing:.1em;text-transform:uppercase;font-size:.625rem;font-weight:700}.report-filter-header h2{color:var(--app-text);margin:0;font-size:1rem;font-weight:600;line-height:1.35}.report-filter-header p{color:var(--app-text-secondary);margin:0;font-size:.75rem;line-height:1.5}.report-filters{background:var(--app-surface-muted);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 18px;display:flex}.report-filters>label{color:var(--app-text-secondary);gap:5px;font-size:.6875rem;font-weight:600;display:grid}.report-filters .ui-input{width:min(180px,100%)}.report-filters .ui-select-wrap{width:min(210px,100%)}@media (max-width:760px){.report-filter-header{min-height:0;padding:16px 18px}.report-filters{align-items:stretch;padding:14px}.report-filters>label,.report-filters .ui-input,.report-filters .ui-select-wrap{width:100%}}.workspace-tabs{border-bottom:1px solid var(--app-border);scrollbar-width:none;align-items:center;gap:2px;margin-bottom:20px;padding:0;display:flex;overflow-x:auto}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tab{color:var(--app-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:all .15s;display:inline-flex}.workspace-tab:hover{color:var(--app-text);border-bottom-color:#cbd5e1}.workspace-tab.is-active{color:var(--app-primary);border-bottom-color:var(--app-primary);font-weight:600}.workspace-tab__count{min-width:20px;height:20px;color:var(--app-text-secondary);background:#f1f5f9;border-radius:9999px;justify-content:center;align-items:center;padding:0 6px;font-size:.6875rem;font-weight:600;display:inline-flex}.workspace-tab.is-active .workspace-tab__count{color:var(--app-primary);background:#edf4fc}.asset-identity{border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);box-shadow:var(--shadow-surface);justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:20px 24px;display:flex}.asset-identity__main{align-items:center;gap:16px;min-width:0;display:flex}.asset-identity__icon{width:48px;height:48px;color:var(--app-primary);background:#edf4fc;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.asset-identity__info{min-width:0}.asset-identity__info small{color:var(--app-primary);letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:700;display:block}.asset-identity__info h2{letter-spacing:-.02em;color:var(--app-text);margin:2px 0 0;font-size:1.25rem;font-weight:700;line-height:1.3}.asset-identity__info span{color:var(--app-text-secondary);margin-top:3px;font-size:.75rem;display:block}.asset-identity__meta{flex-shrink:0;align-items:center;gap:20px;margin-left:auto;display:flex}.asset-identity__meta>div{text-align:right;flex-direction:column;gap:2px;min-width:0;display:flex}.asset-identity__meta small{color:var(--app-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.asset-identity__meta strong{color:var(--app-text);white-space:nowrap;font-size:.8125rem;font-weight:600}@media (max-width:900px){.asset-identity{flex-direction:column;align-items:stretch;gap:16px}.asset-identity__meta{border-top:1px solid var(--app-border);flex-wrap:wrap;justify-content:flex-start;gap:16px;margin-left:0;padding-top:14px}.asset-identity__meta>div{text-align:left}}.entity-detail-panel{border:1px solid var(--app-border);border-radius:var(--radius-surface);background:var(--app-surface);box-shadow:var(--shadow-surface);overflow:hidden}.entity-detail-section{padding:22px 26px}.entity-detail-section+.entity-detail-section{border-top:1px solid var(--app-border)}.entity-detail-section>header{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:10px;display:flex}.entity-detail-section>header span{text-transform:uppercase;letter-spacing:.08em;color:var(--app-primary);font-size:.6875rem;font-weight:700;display:block}.entity-detail-section>header h2{color:var(--app-text);letter-spacing:-.015em;margin:2px 0 0;font-size:1.0625rem;font-weight:600}.reading-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;margin:0;display:grid}.reading-grid dt{color:var(--app-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.reading-grid dd{color:var(--app-text);font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:.8125rem;font-weight:500;line-height:1.45}.entity-detail-notes{color:var(--app-text-secondary);margin:0;font-size:.8125rem;line-height:1.6}@media (max-width:1024px){.reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.reading-grid{grid-template-columns:1fr;gap:14px}.entity-detail-section{padding:18px 20px}}.photo-uploader{width:100%}.photo-uploader__grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}@media (max-width:900px){.photo-uploader__grid{grid-template-columns:1fr}}.photo-uploader__column{background:var(--app-surface-muted);border:1px solid var(--app-border);border-radius:var(--radius-surface);flex-direction:column;gap:10px;padding:14px;transition:all .2s;display:flex}.photo-uploader__column.is-required-empty{border-color:color-mix(in srgb, var(--app-warning) 40%, transparent);background:color-mix(in srgb, var(--app-warning) 5%, white)}.photo-uploader__column.is-drag-over{border-color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 8%, white)}.photo-uploader__col-head{justify-content:space-between;align-items:center;height:22px;display:flex}.photo-uploader__col-title{align-items:center;gap:8px;display:flex}.photo-uploader__col-title strong{color:var(--app-text);font-size:.8125rem;font-weight:600}.photo-uploader__count{background:var(--app-surface);border:1px solid var(--app-border);min-width:18px;height:18px;color:var(--app-text-secondary);font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;padding:0 5px;font-size:.6875rem;font-weight:600;display:inline-flex}.photo-uploader__badge-required{color:#b45309;background:#fef3c7;border-radius:9999px;padding:2px 8px;font-size:.6875rem;font-weight:600}.photo-uploader__dropzone{border:1.5px dashed var(--app-border-strong);border-radius:var(--radius-control);background:var(--app-surface);height:56px;color:var(--app-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.photo-uploader__dropzone:hover{border-color:var(--app-primary);color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 4%, white)}.photo-uploader__dropzone svg{color:var(--app-primary)}.photo-uploader__uploading-card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--radius-control);padding:8px 10px}.photo-uploader__progress-row{color:var(--app-text-secondary);align-items:center;gap:8px;font-size:.6875rem;display:flex}.photo-uploader__progress-bar{background:var(--app-surface-muted);border-radius:9999px;flex:1;height:4px;overflow:hidden}.photo-uploader__progress-bar>div{background:var(--app-primary);height:100%;transition:width .2s}.photo-uploader__error-row{color:var(--app-danger);align-items:center;gap:8px;font-size:.6875rem;display:flex}.photo-uploader__thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.photo-uploader__thumb-card{flex-direction:column;gap:4px;min-width:0;display:flex}.photo-uploader__thumb-img-wrap{aspect-ratio:4/3;border-radius:var(--radius-control);cursor:pointer;background:#111;position:relative;overflow:hidden}.photo-uploader__thumb-img-wrap img{object-fit:cover;width:100%;height:100%;display:block}.photo-uploader__thumb-overlay{color:#fff;opacity:0;background:#00000059;place-items:center;transition:opacity .15s;display:grid;position:absolute;inset:0}.photo-uploader__thumb-img-wrap:hover .photo-uploader__thumb-overlay{opacity:1}.photo-uploader__thumb-remove{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#000000a6;border:0;border-radius:9999px;place-items:center;width:22px;height:22px;transition:opacity .15s;display:grid;position:absolute;top:4px;right:4px}.photo-uploader__thumb-img-wrap:hover .photo-uploader__thumb-remove{opacity:1}@media (max-width:768px){.photo-uploader__thumb-remove{opacity:1}}.photo-uploader__thumb-meta{color:var(--app-text-muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:.6875rem;display:flex;overflow:hidden}.photo-uploader__empty{height:100px;color:var(--app-text-muted);place-items:center;font-size:.75rem;display:grid}.photo-preview-compare{grid-template-columns:1fr 1fr;gap:16px;display:grid}.photo-preview-compare__side{flex-direction:column;gap:8px;display:flex}.photo-preview-compare__side img{object-fit:contain;border-radius:var(--radius-control);background:#000;width:100%;max-height:480px}.photo-preview-single{justify-content:center;align-items:center;display:flex;position:relative}.photo-preview-img-container img{object-fit:contain;border-radius:var(--radius-control);background:#000;max-width:100%;max-height:520px}.photo-preview-nav{color:#fff;cursor:pointer;z-index:10;background:#00000080;border:0;border-radius:9999px;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.photo-preview-nav--prev{left:10px}.photo-preview-nav--next{right:10px}.file-dropzone{flex-direction:column;gap:14px;width:100%;display:flex}.file-dropzone__area{border:1.5px dashed var(--app-border-strong);border-radius:var(--radius-surface);background:var(--app-surface);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:16px;height:112px;padding:0 24px;transition:all .15s;display:flex}.file-dropzone__area:hover,.file-dropzone__area.is-drag-over{border-color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 4%, white)}.file-dropzone__icon-wrap{width:44px;height:44px;color:var(--app-primary);background:#edf4fc;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.file-dropzone__text-wrap{flex-direction:column;gap:2px;display:flex}.file-dropzone__main-text{color:var(--app-text);font-size:.8125rem;font-weight:600}.file-dropzone__sub-text{color:var(--app-text-muted);font-size:.6875rem}.file-dropzone__list{flex-direction:column;gap:8px;display:flex}.file-dropzone__row{border:1px solid var(--app-border);border-radius:var(--radius-control);background:var(--app-surface);align-items:center;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.file-dropzone__row--error{border-color:color-mix(in srgb, var(--app-danger) 40%, transparent);background:color-mix(in srgb, var(--app-danger) 5%, white)}.file-icon-badge{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.6875rem;font-weight:700;display:inline-flex}.file-icon-badge--pdf{color:#dc2626;background:#fee2e2}.file-icon-badge--xls{color:#16a34a;background:#dcfce7}.file-icon-badge--doc{color:#0284c7;background:#e0f2fe}.file-icon-badge--img{color:#9333ea;background:#f3e8ff}.file-icon-badge--file{background:var(--app-surface-muted);color:var(--app-text-secondary)}.file-dropzone__row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.file-dropzone__name{color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.file-dropzone__meta{color:var(--app-text-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}.file-dropzone__error-badge{color:var(--app-danger);align-items:center;gap:4px;font-size:.6875rem;font-weight:500;display:inline-flex}.file-dropzone__progress-text{color:var(--app-text-secondary);font-variant-numeric:tabular-nums;font-size:.6875rem}.file-dropzone__progress-track{background:var(--app-surface-muted);border-radius:9999px;width:100%;height:4px;margin-top:4px;overflow:hidden}.file-dropzone__progress-fill{background:var(--app-primary);height:100%;transition:width .2s}.file-dropzone__row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.file-dropzone__action-btn{border-radius:var(--radius-control);border:1px solid var(--app-border);background:var(--app-surface);width:36px;height:36px;color:var(--app-text-secondary);cursor:pointer;place-items:center;transition:all .15s;display:grid}.file-dropzone__action-btn:hover{border-color:var(--app-border-strong);color:var(--app-text);background:var(--app-surface-muted)}.file-dropzone__action-btn--danger:hover{border-color:var(--app-danger);color:var(--app-danger);background:color-mix(in srgb, var(--app-danger) 8%, white)}.file-dropzone__empty{text-align:center;color:var(--app-text-muted);padding:24px;font-size:.8125rem}
