.ac-page{box-sizing:border-box;width:100%;min-width:0;max-width:1120px;margin:0 auto;padding:28px 24px 40px}.ac-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.ac-header__main{align-items:flex-start;gap:16px;min-width:0;display:flex}.ac-header__icon{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 12%, transparent), var(--primary-soft));width:48px;height:48px;color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 12%, transparent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ac-header__eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin:0 0 4px;font-size:12px;font-weight:600}.ac-header__title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:28px;font-weight:700;line-height:1.2}.ac-header__desc{color:var(--muted);max-width:52ch;margin:6px 0 0;font-size:14px;line-height:1.5}.ac-header__actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.ac-subnav{background:var(--surface-subtle);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:4px;display:flex}.ac-subnav__link,a.ac-subnav__link{min-width:140px;color:var(--text-secondary);text-align:center;border-radius:10px;flex:1;padding:10px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}.ac-subnav__link:hover,a.ac-subnav__link:hover{color:var(--text);background:var(--surface-hover);text-decoration:none}.ac-subnav__link--active,a.ac-subnav__link--active{color:var(--primary);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.ac-btn-primary{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-700));box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 22%, transparent);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex}.ac-btn-primary:hover{filter:brightness(1.03);box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 28%, transparent);transform:translateY(-1px)}.ac-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.ac-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.ac-stat{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:14px;padding:14px 16px}.ac-stat__label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ac-stat__value{color:var(--text);margin-top:4px;font-size:24px;font-weight:700;line-height:1.1}.ac-alert{border-radius:12px;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;font-size:14px;line-height:1.5;display:flex}.ac-alert--info{-webkit-backdrop-filter:blur(8px);color:#0c4a6e;background:#f0f9ffbf;border:1px solid #bae6fdcc}.ac-alert--info a{color:#0369a1;font-weight:600}.ac-alert--success{-webkit-backdrop-filter:blur(8px);color:#065f46;background:#ecfdf5bf;border:1px solid #a7f3d0cc}.ac-alert--error{-webkit-backdrop-filter:blur(8px);color:#991b1b;background:#fef2f2bf;border:1px solid #fecacacc}.ac-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;min-width:0;overflow:hidden}.ac-panel:hover{box-shadow:var(--glass-shadow);transform:none}.ac-toolbar{border-bottom:1px solid var(--glass-border);background:var(--surface-toolbar);-webkit-backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.ac-search{flex:1;max-width:360px;position:relative}.ac-search__icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.ac-search__input{border:1px solid var(--border);width:100%;color:var(--text);background:var(--input-bg);box-sizing:border-box;border-radius:10px;padding:10px 12px 10px 40px;font-size:14px;transition:border-color .15s,box-shadow .15s}.ac-search__input::placeholder{color:var(--muted)}.ac-search__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring,var(--primary-soft));outline:none}.ac-table-wrap{overflow-x:auto}.ac-table{border-collapse:collapse;width:100%}.ac-table thead th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--table-head);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:12px 18px;font-size:12px;font-weight:600}.ac-table tbody td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 18px;font-size:14px}.ac-table tbody tr:last-child td{border-bottom:none}.ac-user{align-items:center;gap:12px;min-width:0;display:flex}.ac-user__text{min-width:0}.ac-avatar{width:40px;height:40px;color:var(--primary);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, transparent), var(--primary-soft));border:1px solid var(--primary-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.ac-user__name{color:var(--text);font-weight:600}.ac-user__meta{color:var(--muted);margin-top:2px;font-size:13px}.ac-role-select{border:1px solid var(--border);min-width:148px;color:var(--text);background-color:var(--input-bg);appearance:none;cursor:pointer;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='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:10px;padding:8px 32px 8px 12px;font-size:13px;font-weight:500;transition:border-color .15s,box-shadow .15s}.ac-role-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring,var(--primary-soft));outline:none}.ac-role-select:disabled{opacity:.72;cursor:not-allowed;color:var(--text-secondary)}.ac-role-picker--saving .ac-role-select:disabled{cursor:wait}.ac-badge{border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.ac-badge--admin{color:var(--danger);background:color-mix(in srgb, var(--danger) 16%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent)}.ac-badge--user{color:var(--text-secondary);background:var(--surface-subtle);border:1px solid var(--border)}.ac-badge--custom{color:var(--info);background:color-mix(in srgb, var(--info) 16%, transparent);border:1px solid color-mix(in srgb, var(--info) 30%, transparent)}.ac-badge--system{color:#a78bfa;background:#7c3aed29;border:1px solid #7c3aed4d}.ac-empty{text-align:center;padding:48px 24px}.ac-empty__icon{width:56px;height:56px;color:var(--muted);border:1px solid var(--border);background:#f8fafc;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.ac-empty__title{color:#0f172a;margin:0 0 6px;font-size:16px;font-weight:600}.ac-empty__desc{color:var(--muted);margin:0;font-size:14px}.ac-pagination{border-top:1px solid var(--border);background:#fafbfc;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.ac-pagination__info{color:var(--muted);font-size:13px}.ac-pagination__nav{gap:8px;display:flex}.ac-btn-ghost{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.ac-btn-ghost:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.ac-btn-ghost:disabled{opacity:.45;cursor:not-allowed}.ac-skeleton-rows{padding:8px 0}.ac-skeleton-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 1.2fr 140px;gap:16px;padding:14px 18px;display:grid}.ac-skeleton-block{background:linear-gradient(90deg, var(--skeleton-from) 0%, var(--skeleton-to) 50%, var(--skeleton-from) 100%);background-size:200% 100%;border-radius:6px;height:14px;animation:1.2s ease-in-out infinite ac-shine}.ac-skeleton-block--avatar{border-radius:12px;width:40px;height:40px}@keyframes ac-shine{0%{background-position:200% 0}to{background-position:-200% 0}}.ac-role-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:stretch;gap:16px;min-width:0;padding:18px;display:grid}.ac-role-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-sizing:border-box;border-radius:14px;flex-direction:column;gap:12px;min-width:0;padding:18px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.ac-role-card:hover{border-color:color-mix(in srgb, var(--primary) 20%, transparent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.ac-role-card__top{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.ac-role-card__top>div:first-child{min-width:0}.ac-role-card__name{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:17px;font-weight:700}.ac-role-card__desc{color:var(--muted);min-height:40px;margin:0;font-size:13px;line-height:1.5}.ac-role-card__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ac-role-card__count{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.ac-role-card__actions{gap:8px;margin-top:auto;padding-top:4px;display:flex}.ac-btn-icon{cursor:pointer;border:1px solid var(--border);background:var(--input-bg);color:var(--text-secondary);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ac-btn-icon:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.ac-btn-icon--danger{color:var(--danger)}.ac-btn-icon--danger:hover{background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));color:var(--danger)}.ac-toast{z-index:600;top:max(16px, env(safe-area-inset-top,0px));right:max(16px, env(safe-area-inset-right,0px));color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;align-items:center;gap:10px;max-width:min(420px,100vw - 32px);padding:12px 16px;font-size:14px;font-weight:500;animation:.25s ac-toast-in;display:flex;position:fixed;box-shadow:0 10px 40px #0f172a1f}.ac-toast__close{width:28px;height:28px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.ac-toast__close:hover{opacity:1;background:#0000000d}@keyframes ac-toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ac-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ac-chip{border:1px solid var(--border-strong);color:var(--text-secondary);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ac-chip:hover{background:var(--surface-hover);border-color:var(--border-strong)}.ac-chip--active{color:var(--primary);background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 25%, transparent);font-weight:600}.ac-chip__count{color:inherit;background:#0f172a0f;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:700}.ac-chip--active .ac-chip__count{background:color-mix(in srgb, var(--primary) 12%, transparent)}.ac-search__clear{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ac-search__clear:hover{background:var(--surface-hover);color:var(--text)}.ac-search__input--has-clear{padding-right:40px}.ac-role-picker{align-items:center;display:inline-flex;position:relative}.ac-role-picker--saving .ac-role-select{opacity:.65;pointer-events:none}.ac-role-picker__spinner{border:2px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite ac-spin;position:absolute;right:10px}@keyframes ac-spin{to{transform:rotate(360deg)}}.ac-member-list{flex-direction:column;gap:10px;padding:12px;display:none}.ac-member-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.ac-member-card:hover{border-color:color-mix(in srgb, var(--primary) 15%, transparent);box-shadow:0 4px 16px #0f172a0a}.ac-member-card__head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.ac-member-card__role{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.ac-member-card__role-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ac-role-card--clickable{cursor:pointer}.ac-role-card--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ac-role-card__perms{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.ac-modal-backdrop{z-index:500;background:var(--overlay);-webkit-backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:16px;animation:.15s ac-fade-in;display:flex;position:fixed;inset:0}.ac-modal{background:var(--glass-bg-strong);width:100%;max-width:420px;-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg);border-radius:16px;padding:24px;animation:.2s ac-modal-in}.ac-modal__title{color:var(--text);margin:0 0 8px;font-size:18px;font-weight:700}.ac-modal__desc{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.5}.ac-modal__actions{justify-content:flex-end;gap:10px;display:flex}.ac-btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.ac-btn-danger:hover{background:#b91c1c}.ac-btn-danger:disabled{opacity:.6;cursor:not-allowed}@keyframes ac-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ac-modal-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.ac-page--detail{max-width:1040px}.ac-detail-layout{flex-direction:column;gap:16px;display:flex}.ac-detail-layout--split{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=900px){.ac-detail-layout--split{grid-template-columns:minmax(280px,340px) 1fr;align-items:start}.ac-detail-form{position:sticky;top:16px}}.ac-detail-form,.ac-detail-perms{padding:20px 22px}.ac-detail-skeleton{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.ac-detail-section-title{color:#0f172a;margin:0 0 16px;font-size:15px;font-weight:700}.ac-detail-perms__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.ac-detail-perms__search{flex:1;min-width:180px;max-width:280px;position:relative}.ac-detail-perms__search input{border:1px solid var(--border);width:100%;color:var(--text);background:var(--input-bg);box-sizing:border-box;border-radius:10px;padding:8px 12px 8px 36px;font-size:13px;transition:border-color .15s,box-shadow .15s}.ac-detail-perms__search input::placeholder{color:var(--muted)}.ac-detail-perms__search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring,var(--primary-soft));outline:none}.ac-detail-perms__search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ac-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.ac-field__label{color:#334155;font-size:13px;font-weight:600}.ac-field__input{border:1px solid var(--border);box-sizing:border-box;border-radius:10px;width:100%;height:42px;padding:0 12px;font-family:inherit;font-size:14px;line-height:normal;transition:border-color .15s,box-shadow .15s;display:block}.ac-field__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}select.ac-field__input{appearance:none;cursor:pointer;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='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.ac-field__input[type=month]{align-items:center;display:inline-flex}.ac-field__input[type=month]::-webkit-datetime-edit{padding:0;line-height:1}.ac-field__input[type=month]::-webkit-datetime-edit-fields-wrapper{padding:0;line-height:1}.ac-field__input[type=month]::-webkit-datetime-edit-text{padding:0;line-height:1}.ac-field__input[type=month]::-webkit-datetime-edit-month-field{padding:0;line-height:1}.ac-field__input[type=month]::-webkit-datetime-edit-year-field{padding:0;line-height:1}.ac-field__textarea{resize:vertical;height:auto;min-height:72px;padding:10px 12px}.ac-perm-summary{color:var(--muted);background:var(--surface-subtle);border:1px solid var(--border);border-radius:10px;margin-top:4px;padding:10px 12px;font-size:13px}.ac-perm-summary__count{color:var(--primary);font-weight:700}.ac-perm-card{border:1px solid var(--border);background:var(--bg-elevated);border-radius:12px;margin-bottom:12px;transition:border-color .15s;overflow:hidden}.ac-perm-card:last-child{margin-bottom:0}.ac-perm-card--partial .ac-perm-card__header{background:var(--primary-soft)}.ac-perm-card__header{background:var(--surface-toolbar);border-bottom:1px solid var(--border);cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 14px;font-weight:600;display:flex}.ac-perm-card__header--collapsed{border-bottom:none}.ac-perm-card__title{flex:1;font-size:14px}.ac-perm-card__count{color:var(--text-secondary);background:var(--input-bg);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.ac-perm-card__chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}.ac-perm-card__chevron--open{transform:rotate(180deg)}.ac-perm-list{flex-direction:column;gap:4px;padding:8px 10px 10px;display:flex}.ac-perm-item{cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;transition:background .12s;display:flex}.ac-perm-item:hover{background:var(--surface-hover)}.ac-perm-item--selected{background:color-mix(in srgb, var(--primary) 14%, transparent)}.ac-perm-checkbox{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex-shrink:0;margin-top:2px}.ac-perm-item__body{flex-direction:column;gap:2px;min-width:0;display:flex}.ac-perm-code{color:var(--text);background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;width:fit-content;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:600}.ac-perm-item__desc{color:var(--muted);font-size:13px}.ac-detail-actions{background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.ac-detail-layout--split .ac-detail-actions{grid-column:1/-1}.ac-detail-actions--sticky{z-index:10;position:sticky;bottom:12px}.ac-empty--compact{padding:32px 20px}.ac-page--modern{box-sizing:border-box;width:100%;max-width:1180px}.ac-hero{background:radial-gradient(ellipse 80% 60% at 100% 0%, var(--primary-soft), transparent 55%), radial-gradient(ellipse 60% 50% at 0% 100%, color-mix(in srgb, var(--text) 4%, transparent), transparent 50%), linear-gradient(180deg, var(--glass-bg-strong) 0%, var(--surface-subtle) 100%);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;margin-bottom:24px;padding:28px 28px 24px;position:relative;overflow:hidden}.ac-hero .ac-header{margin-bottom:0}.ac-hero .ac-subnav{background:var(--surface-muted,var(--surface-subtle));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-top:20px;margin-bottom:0}.ac-stats--modern{gap:14px;margin-bottom:20px}.ac-stat--modern{align-items:flex-start;gap:14px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.ac-stat--modern:before{content:"";background:linear-gradient(180deg, var(--primary), var(--primary-700,#8f0018));opacity:.85;border-radius:3px 0 0 3px;width:3px;position:absolute;inset:0 auto 0 0}.ac-stat__icon{background:var(--primary-soft);width:40px;height:40px;color:var(--primary);border:1px solid var(--primary-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ac-stat__body{min-width:0}.ac-panel__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px 0;display:flex}.ac-panel__head .ac-detail-section-title{margin-bottom:4px}.ac-panel__head .ac-search{flex:220px;min-width:min(100%,260px);max-width:320px}.ac-panel__subtitle{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.5}.ac-panel__body{padding:0 22px 22px}.ac-panel__body--flush-top{padding-top:0}.ac-role-grid--modern{gap:16px;padding:18px}.ac-role-card--modern{border-radius:16px;height:100%;padding:0;position:relative;overflow:hidden}.ac-role-card--modern:before{content:"";background:linear-gradient(90deg,#3b82f6,#60a5fa);height:3px;position:absolute;top:0;left:0;right:0}.ac-role-card--full-access:before{background:linear-gradient(90deg, var(--primary-700), var(--primary))}.ac-role-card--system:before{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.ac-role-card--custom:before{background:linear-gradient(90deg,#2563eb,#38bdf8)}.ac-role-card__inner{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;min-height:0;padding:18px 18px 16px;display:flex}.ac-role-card__key{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);overflow-wrap:anywhere;margin:0 0 2px;font-size:11px;font-weight:600}.ac-role-card__menus{flex-wrap:wrap;flex:1;align-content:flex-start;gap:6px;min-height:28px;display:flex}.ac-menu-pill{color:var(--text-secondary);background:var(--surface-subtle);border:1px solid var(--border);border-radius:999px;align-items:center;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:600;display:inline-flex}.ac-menu-pill--more{color:var(--muted);background:var(--bg-elevated);font-family:inherit}.ac-role-card__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:12px;display:flex}.ac-role-card__footer .ac-role-card__actions{flex:1;margin-top:0;padding-top:0}.ac-role-card__arrow{width:32px;height:32px;color:var(--muted);background:var(--surface-subtle);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:flex}.ac-role-card--clickable:hover .ac-role-card__arrow{color:var(--primary);background:var(--primary-soft);transform:translate(2px)}.ac-assign-layout{grid-template-columns:1fr;gap:16px;width:100%;min-width:0;display:grid}@media (width>=900px){.ac-assign-layout{grid-template-columns:minmax(0,360px) 1fr;align-items:start}}.ac-sync-stack{flex-direction:column;gap:12px;width:100%;min-width:0;display:flex}.ac-sync-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);box-sizing:border-box;border-radius:16px;min-width:0;padding:18px 20px}.ac-sync-card__title{color:var(--text);align-items:center;gap:10px;margin:0 0 10px;font-size:15px;font-weight:700;display:flex}.ac-sync-card__icon{color:#0369a1;background:#0ea5e91f;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.ac-sync-card__text{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.ac-sync-card__text strong{color:var(--text);font-weight:600}.ac-sync-flow{flex-direction:column;gap:8px;margin-top:14px;display:flex}.ac-sync-step{background:var(--surface-subtle);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-strong);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.ac-sync-step__from,.ac-sync-step__to{border-radius:8px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:700}.ac-sync-step__from{color:var(--text-secondary);background:var(--input-bg);border:1px solid var(--border-strong)}.ac-sync-step__to{color:#9f1239;background:#fff1f2bf;border:1px solid #fecdd3cc}.ac-sync-step__arrow{color:var(--muted);flex-shrink:0}.ac-btn-sso{color:#0369a1;box-sizing:border-box;background:#fff;border:1px solid #7dd3fc;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;max-width:100%;margin-top:14px;padding:11px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s,transform .15s;display:flex}.ac-btn-sso:hover{background:#f0f9ff;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 14px #0ea5e926}.ac-btn-sso svg{flex-shrink:0}.ac-directory-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.ac-directory-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);border-radius:14px;padding:16px 18px;transition:border-color .15s,box-shadow .15s}.ac-directory-card__head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.ac-directory-card__name{color:#0f172a;margin:0;font-size:16px;font-weight:700}.ac-directory-card__desc{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.5}.ac-directory-card__label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:11px;font-weight:600}.ac-skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.ac-skeleton-card{border:1px solid var(--border);background:var(--bg-elevated);border-radius:14px;flex-direction:column;gap:10px;padding:18px;display:flex}@media (width<=767px){.ac-page{padding:16px 14px 28px}.ac-header{flex-direction:column}.ac-header__title{font-size:22px}.ac-toolbar{flex-direction:column;align-items:stretch}.ac-search{max-width:none}.ac-pagination{flex-direction:column;align-items:stretch}.ac-pagination__nav{justify-content:space-between}.ac-table-wrap{display:none}.ac-member-list{display:flex}.ac-detail-actions{flex-direction:column-reverse}.ac-detail-actions .ac-btn-primary,.ac-detail-actions .ac-btn-ghost{justify-content:center;width:100%}.ac-hero{padding:20px 16px 18px}.ac-sync-card{padding:16px}.ac-sync-step{flex-wrap:wrap;gap:8px}.ac-btn-sso{padding:12px 14px;font-size:13px}.ac-role-grid,.ac-role-grid--modern{grid-template-columns:1fr;gap:12px;padding:14px}.ac-role-card__inner{padding:16px}.ac-role-card__footer{flex-wrap:wrap}.ac-btn-icon{min-width:0}}.ac-header__icon{background:linear-gradient(135deg, var(--primary-soft), transparent);color:var(--primary);border-color:var(--primary-soft)}.ac-header__title{color:var(--text)}.ac-subnav{background:var(--surface-subtle);border-color:var(--border)}.ac-subnav__link{color:var(--text-secondary)}.ac-subnav__link:hover{color:var(--text);background:var(--surface-hover)}.ac-subnav__link--active{color:var(--primary);background:var(--bg);box-shadow:var(--shadow-sm)}.ac-btn-primary{box-shadow:var(--shadow-sm)}.ac-btn-primary:hover{box-shadow:var(--shadow)}.ac-btn-ghost{border-color:var(--border);color:var(--text-secondary);background:var(--bg)}.ac-btn-ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.ac-panel{background:var(--bg-elevated);border-color:var(--border);box-shadow:var(--shadow-sm)}.ac-toolbar,.ac-pagination{background:var(--surface-toolbar);border-color:var(--border)}.ac-table thead th{background:var(--table-head);color:var(--muted);border-color:var(--border)}.ac-table tbody td{color:var(--text);border-color:var(--border)}.ac-user__name{color:var(--text)}.ac-user__meta{color:var(--muted)}.ac-role-select{color:var(--text);background-color:var(--input-bg);border-color:var(--border)}.ac-table tbody tr:hover{background:var(--surface-hover)}.ac-detail-actions{background:var(--bg-elevated);border-color:var(--border);box-shadow:var(--shadow-sm)}.ac-modal-backdrop{background:var(--overlay)}.ac-modal{background:var(--bg-elevated);box-shadow:var(--shadow-md)}.ac-modal__title{color:var(--text)}.ac-field__label{color:var(--text-secondary)}.ac-field__input,.ac-field__textarea{background-color:var(--input-bg);color:var(--text);border-color:var(--border)}[data-theme=dark] select.ac-field__input,[data-theme=dark] .ac-role-select{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='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) select.ac-field__input,:root:not([data-theme=light]):not([data-theme=dark]) .ac-role-select{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='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}}.ac-field__input:focus,.ac-field__textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.ac-empty__title,.ac-detail-section-title{color:var(--text)}.ac-empty__desc,.ac-panel__subtitle{color:var(--muted)}.ac-empty__icon{background:var(--surface-subtle);color:var(--muted);border-color:var(--border)}.ac-alert--error{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:color-mix(in srgb, var(--danger) 28%, transparent);color:var(--danger)}.ac-alert--success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 30%, transparent);color:var(--success)}.ac-alert--info{background:color-mix(in srgb, var(--info) 12%, transparent);border-color:color-mix(in srgb, var(--info) 28%, transparent);color:var(--info)}.ac-perm-card,.ac-perm-summary,.ac-role-card--modern{background:var(--bg-elevated);border-color:var(--border)}.ac-perm-card__header{background:var(--surface-toolbar);border-color:var(--border);color:var(--text)}[data-theme=dark] .ac-btn-primary{color:#0f172a;background:linear-gradient(135deg, var(--primary), var(--primary-700));box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 28%, transparent)}[data-theme=dark] .ac-hero{background:radial-gradient(ellipse 80% 60% at 100% 0%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 55%), radial-gradient(ellipse 60% 50% at 0% 100%, #94a3b80f, transparent 50%), linear-gradient(180deg, var(--bg-elevated) 0%, var(--surface-subtle) 100%);border-color:var(--border)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .ac-hero{background:radial-gradient(ellipse 80% 60% at 100% 0%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 55%), radial-gradient(ellipse 60% 50% at 0% 100%, #94a3b80f, transparent 50%), linear-gradient(180deg, var(--bg-elevated) 0%, var(--surface-subtle) 100%);border-color:var(--border)}}.ac-hero .ac-subnav{background:var(--surface-subtle);border-color:var(--border)}.ac-sync-card{background:var(--bg-elevated);border-color:var(--border);box-shadow:var(--shadow-sm)}.ac-sync-card--highlight{background:linear-gradient(135deg, color-mix(in srgb, var(--info) 12%, var(--bg-elevated)) 0%, var(--bg-elevated) 100%);border-color:color-mix(in srgb, var(--info) 35%, var(--border))}.ac-sync-card__title{color:var(--text)}.ac-sync-card__icon{background:color-mix(in srgb, var(--info) 16%, transparent);color:var(--info)}.ac-sync-card__text strong{color:var(--text)}.ac-sync-step{background:var(--surface-subtle);border-color:var(--border)}.ac-sync-step__from{color:var(--text-secondary);background:var(--input-bg);border-color:var(--border)}.ac-sync-step__to{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.ac-btn-sso{color:var(--info);background:var(--bg-elevated);border-color:color-mix(in srgb, var(--info) 45%, var(--border))}.ac-btn-sso:hover{background:color-mix(in srgb, var(--info) 12%, transparent);box-shadow:0 4px 14px color-mix(in srgb, var(--info) 20%, transparent)}.ac-directory-card{background:var(--input-bg);border-color:var(--border)}.ac-directory-card:hover{border-color:color-mix(in srgb, var(--primary) 28%, var(--border));box-shadow:var(--shadow-sm)}.ac-directory-card__name{color:var(--text)}.ac-menu-pill{color:var(--text-secondary);background:var(--surface-subtle);border-color:var(--border)}.ac-menu-pill--all{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.ac-menu-pill--more{color:var(--muted);background:var(--bg-elevated)}.ac-badge--admin{color:var(--danger);background:color-mix(in srgb, var(--danger) 16%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.ac-badge--user{color:var(--text-secondary);background:var(--surface-subtle);border-color:var(--border)}.ac-badge--custom{color:var(--info);background:color-mix(in srgb, var(--info) 16%, transparent);border-color:color-mix(in srgb, var(--info) 30%, transparent)}.ac-badge--system{color:#a78bfa;background:#7c3aed29;border-color:#7c3aed4d}.ac-role-card{background:var(--bg-elevated);border-color:var(--border)}.ac-role-card__name{color:var(--text)}.ac-role-card__footer{border-top-color:var(--border)}.ac-role-card__arrow{background:var(--surface-subtle);color:var(--muted)}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#c8102e;--primary-700:#9e0c24;--primary-soft:#c8102e1f;--accent:#c8102e;--accent-glow:#c8102e59;--text:#0f172a;--text-secondary:#475569;--muted:#64748b;--bg:#ffffffa6;--bg-elevated:#ffffffb8;--card:#ffffff9e;--border:#ffffff73;--border-strong:#94a3b873;--surface-subtle:#f8fafc8c;--surface-muted:#f1f5f980;--surface-hover:#ffffffbf;--surface-toolbar:#fafbfca6;--input-bg:#ffffffb3;--table-head:#f8fafcb8;--overlay:#0f172a59;--danger:#ef4444;--success:#059669;--success-soft:#0596691f;--warning:#d97706;--info:#0284c7;--ring:#c8102e3d;--glass-bg:#ffffff94;--glass-bg-strong:#ffffffb8;--glass-bg-dark:#080c16f0;--glass-border:#ffffff6b;--glass-border-dark:#ffffff14;--glass-blur:16px;--glass-blur-strong:20px;--glass-shadow:0 4px 24px #0f172a14, 0 1px 3px #0f172a0f;--glass-shadow-lg:0 8px 32px #0f172a1a, 0 2px 8px #0f172a0f;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 16px #0f172a14, 0 2px 6px #0f172a0a;--shadow-lg:0 12px 40px #0f172a1a, 0 4px 12px #0f172a0f;--skeleton-from:#f1f5f9cc;--skeleton-to:#e2e8f0e6;--map-tint:#c8102e;--bg-base:#e8edf4;--badge-published-bg:#dcfce7;--badge-published-text:#166534;--badge-pending-bg:#fef9c3;--badge-pending-text:#854d0e;--badge-unpublished-bg:#f1f5f9;--badge-unpublished-text:#475569;--badge-positive-bg:#dcfce7;--badge-positive-text:#166534;--badge-neutral-bg:#e2e8f0;--badge-neutral-text:#334155;--badge-negative-bg:#fee2e2;--badge-negative-text:#991b1b;--badge-happy-bg:#dbeafe;--badge-happy-text:#1d4ed8;--badge-surprise-bg:#fae8ff;--badge-surprise-text:#86198f;--badge-anger-bg:#fee2e2;--badge-anger-text:#b91c1c;--badge-sadness-bg:#e0e7ff;--badge-sadness-text:#3730a3;--badge-disgust-bg:#ffedd5;--badge-disgust-text:#9a3412;--badge-unmapped-bg:#fff7ed;--badge-unmapped-text:#9a3412;--badge-estimate-bg:#fef3c7;--badge-estimate-text:#92400e;--badge-estimate-border:#fcd34d;--danger-soft-bg:#fef2f2e6;--danger-soft-border:#fecacad9;--danger-text:#b91c1c;--danger-text-strong:#991b1b;--success-soft-bg:#f0fdf4d9;--success-soft-border:#bbf7d0cc;--success-text:#15803d;--success-text-strong:#166534;--warning-star:#ca8a04;--select-chevron:%23475600;--bg-gradient-base:linear-gradient(160deg, #e2e8f0 0%, #eef2f7 35%, #e8edf4 70%, #dfe6ef 100%);--estimate-card-border:#fde68ab3;--estimate-card-bg:linear-gradient(180deg, #fffbebd9 0%, #ffffffa6 40%);--row-active-bg:#fef2f2a6;--progress-track:#e2e8f099;--glass-fallback:#fffffff2;--glass-input-fallback:#fff;--sidebar-bg:var(--glass-bg-strong);--sidebar-border:var(--border-strong);--sidebar-shadow:var(--glass-shadow-lg);--sidebar-text:var(--text);--sidebar-text-muted:var(--muted);--sidebar-divider:var(--border-strong);--sidebar-brand-icon-bg:linear-gradient(145deg, #c8102e24, #c8102e0f);--sidebar-brand-icon-color:var(--primary);--sidebar-brand-icon-border:#c8102e47;--sidebar-nav-hover-bg:#0f172a0f;--sidebar-nav-hover-text:var(--text);--sidebar-nav-active-bg:var(--primary-soft);--sidebar-nav-active-text:var(--primary-700);--sidebar-nav-active-shadow:0 0 0 1px #c8102e2e, 0 4px 16px var(--accent-glow);--sidebar-toggle-bg:#ffffffc7;--sidebar-toggle-border:var(--border-strong);--sidebar-toggle-text:var(--text-secondary);--sidebar-toggle-hover-bg:#fffffff2;--sidebar-toggle-hover-text:var(--text);--sidebar-toggle-shadow:var(--shadow-sm);--sidebar-toggle-hover-shadow:var(--shadow-md);--sidebar-toggle-icon-bg:var(--primary-soft);--sidebar-toggle-icon-color:var(--primary);--sidebar-toggle-icon-border:#c8102e47;--sidebar-toggle-icon-hover-bg:#c8102e2e;--sidebar-toggle-icon-hover-color:var(--primary-700);--sidebar-toggle-icon-hover-border:#c8102e59;--sidebar-toggle-focus:var(--primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#f14862;--primary-700:#c8102e;--primary-soft:#f1486229;--accent:#ff8fa0;--accent-glow:#f1486259;--text:#f1f5f9;--text-secondary:#cbd5e1;--muted:#94a3b8;--bg:#0f172ab8;--bg-elevated:#1a2332d1;--card:#151d2bc7;--border:#2a3648a6;--border-strong:#3b4a63bf;--surface-subtle:#151d2ba6;--surface-muted:#0b12208c;--surface-hover:#1e293bbf;--surface-toolbar:#151d2bb3;--input-bg:#0f172ad9;--table-head:#151d2bd1;--overlay:#020617a6;--danger:#f87171;--success:#6ee7b7;--success-soft:#6ee7b724;--warning:#fbbf24;--info:#38bdf8;--ring:#f148624d;--glass-bg:#0f172aad;--glass-bg-strong:#151d2bd1;--glass-border:#3341558c;--glass-shadow:0 4px 24px #00000047, 0 1px 3px #0003;--glass-shadow-lg:0 8px 32px #00000052, 0 2px 8px #00000038;--shadow-sm:0 1px 3px #00000038, 0 1px 2px #00000029;--shadow-md:0 4px 16px #00000047, 0 2px 6px #0000002e;--shadow-lg:0 12px 40px #00000059, 0 4px 12px #00000038;--skeleton-from:#1e293bd9;--skeleton-to:#334155e6;--map-tint:#f14862;--bg-base:#0b1220;--badge-published-bg:#6ee7b72e;--badge-published-text:#6ee7b7;--badge-pending-bg:#fbbf242e;--badge-pending-text:#fbbf24;--badge-unpublished-bg:#94a3b82e;--badge-unpublished-text:#cbd5e1;--badge-positive-bg:#6ee7b72e;--badge-positive-text:#6ee7b7;--badge-neutral-bg:#94a3b82e;--badge-neutral-text:#cbd5e1;--badge-negative-bg:#f871712e;--badge-negative-text:#fca5a5;--badge-happy-bg:#60a5fa2e;--badge-happy-text:#93c5fd;--badge-surprise-bg:#e879f92e;--badge-surprise-text:#e879f9;--badge-anger-bg:#f871712e;--badge-anger-text:#fca5a5;--badge-sadness-bg:#818cf82e;--badge-sadness-text:#a5b4fc;--badge-disgust-bg:#fb923c2e;--badge-disgust-text:#fdba74;--badge-unmapped-bg:#fb923c2e;--badge-unmapped-text:#fdba74;--badge-estimate-bg:#fbbf242e;--badge-estimate-text:#fcd34d;--badge-estimate-border:#fbbf2473;--danger-soft-bg:#7f1d1d59;--danger-soft-border:#f8717159;--danger-text:#fca5a5;--danger-text-strong:#fecaca;--success-soft-bg:#064e3b59;--success-soft-border:#6ee7b759;--success-text:#6ee7b7;--success-text-strong:#a7f3d0;--warning-star:#fbbf24;--select-chevron:%2394a3b8;--bg-gradient-base:linear-gradient(160deg, #0f172a 0%, #111827 35%, #0b1220 70%, #0a101c 100%);--estimate-card-border:#fbbf2459;--estimate-card-bg:linear-gradient(180deg, #78350f59 0%, #0f172ab8 40%);--row-active-bg:#7f1d1d59;--progress-track:#334155a6;--glass-fallback:#0f172afa;--glass-input-fallback:#0f172a;--sidebar-bg:var(--glass-bg-dark);--sidebar-border:var(--glass-border-dark);--sidebar-shadow:4px 0 24px #0000001f;--sidebar-text:#e2e8f0;--sidebar-text-muted:#94a3b8;--sidebar-divider:#ffffff24;--sidebar-brand-icon-bg:linear-gradient(145deg, #fff8f929, #fff1f314);--sidebar-brand-icon-color:#fca5a5;--sidebar-brand-icon-border:#c8102e59;--sidebar-nav-hover-bg:#ffffff14;--sidebar-nav-hover-text:#f8fafc;--sidebar-nav-active-bg:#c8102e59;--sidebar-nav-active-text:#fff;--sidebar-nav-active-shadow:0 0 0 1px #ffffff1f, 0 4px 16px var(--accent-glow), inset 0 1px 0 #ffffff26;--sidebar-toggle-bg:#ffffff1c;--sidebar-toggle-border:#ffffff3d;--sidebar-toggle-text:#e2e8f0;--sidebar-toggle-hover-bg:#ffffff29;--sidebar-toggle-hover-text:#fff;--sidebar-toggle-shadow:0 0 0 1px #0000002e, inset 0 1px 0 #ffffff1a;--sidebar-toggle-hover-shadow:0 0 0 1px #00000024, 0 4px 14px #00000038, inset 0 1px 0 #ffffff24;--sidebar-toggle-icon-bg:#c8102e47;--sidebar-toggle-icon-color:#fecdd3;--sidebar-toggle-icon-border:#f1486273;--sidebar-toggle-icon-hover-bg:#c8102e61;--sidebar-toggle-icon-hover-color:#fff;--sidebar-toggle-icon-hover-border:#f148628c;--sidebar-toggle-focus:#f14862}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#f14862;--primary-700:#c8102e;--primary-soft:#f1486229;--accent:#ff8fa0;--accent-glow:#f1486259;--text:#f1f5f9;--text-secondary:#cbd5e1;--muted:#94a3b8;--bg:#0f172ab8;--bg-elevated:#1a2332d1;--card:#151d2bc7;--border:#2a3648a6;--border-strong:#3b4a63bf;--surface-subtle:#151d2ba6;--surface-muted:#0b12208c;--surface-hover:#1e293bbf;--surface-toolbar:#151d2bb3;--input-bg:#0f172ad9;--table-head:#151d2bd1;--overlay:#020617a6;--danger:#f87171;--success:#6ee7b7;--success-soft:#6ee7b724;--warning:#fbbf24;--info:#38bdf8;--ring:#f148624d;--glass-bg:#0f172aad;--glass-bg-strong:#151d2bd1;--glass-border:#3341558c;--glass-shadow:0 4px 24px #00000047, 0 1px 3px #0003;--glass-shadow-lg:0 8px 32px #00000052, 0 2px 8px #00000038;--shadow-sm:0 1px 3px #00000038, 0 1px 2px #00000029;--shadow-md:0 4px 16px #00000047, 0 2px 6px #0000002e;--shadow-lg:0 12px 40px #00000059, 0 4px 12px #00000038;--skeleton-from:#1e293bd9;--skeleton-to:#334155e6;--map-tint:#f14862;--bg-base:#0b1220;--badge-published-bg:#6ee7b72e;--badge-published-text:#6ee7b7;--badge-pending-bg:#fbbf242e;--badge-pending-text:#fbbf24;--badge-unpublished-bg:#94a3b82e;--badge-unpublished-text:#cbd5e1;--badge-positive-bg:#6ee7b72e;--badge-positive-text:#6ee7b7;--badge-neutral-bg:#94a3b82e;--badge-neutral-text:#cbd5e1;--badge-negative-bg:#f871712e;--badge-negative-text:#fca5a5;--badge-happy-bg:#60a5fa2e;--badge-happy-text:#93c5fd;--badge-surprise-bg:#e879f92e;--badge-surprise-text:#e879f9;--badge-anger-bg:#f871712e;--badge-anger-text:#fca5a5;--badge-sadness-bg:#818cf82e;--badge-sadness-text:#a5b4fc;--badge-disgust-bg:#fb923c2e;--badge-disgust-text:#fdba74;--badge-unmapped-bg:#fb923c2e;--badge-unmapped-text:#fdba74;--badge-estimate-bg:#fbbf242e;--badge-estimate-text:#fcd34d;--badge-estimate-border:#fbbf2473;--danger-soft-bg:#7f1d1d59;--danger-soft-border:#f8717159;--danger-text:#fca5a5;--danger-text-strong:#fecaca;--success-soft-bg:#064e3b59;--success-soft-border:#6ee7b759;--success-text:#6ee7b7;--success-text-strong:#a7f3d0;--warning-star:#fbbf24;--select-chevron:%2394a3b8;--bg-gradient-base:linear-gradient(160deg, #0f172a 0%, #111827 35%, #0b1220 70%, #0a101c 100%);--estimate-card-border:#fbbf2459;--estimate-card-bg:linear-gradient(180deg, #78350f59 0%, #0f172ab8 40%);--row-active-bg:#7f1d1d59;--progress-track:#334155a6;--glass-fallback:#0f172afa;--glass-input-fallback:#0f172a;--sidebar-bg:var(--glass-bg-dark);--sidebar-border:var(--glass-border-dark);--sidebar-shadow:4px 0 24px #0000001f;--sidebar-text:#e2e8f0;--sidebar-text-muted:#94a3b8;--sidebar-divider:#ffffff24;--sidebar-brand-icon-bg:linear-gradient(145deg, #fff8f929, #fff1f314);--sidebar-brand-icon-color:#fca5a5;--sidebar-brand-icon-border:#c8102e59;--sidebar-nav-hover-bg:#ffffff14;--sidebar-nav-hover-text:#f8fafc;--sidebar-nav-active-bg:#c8102e59;--sidebar-nav-active-text:#fff;--sidebar-nav-active-shadow:0 0 0 1px #ffffff1f, 0 4px 16px var(--accent-glow), inset 0 1px 0 #ffffff26;--sidebar-toggle-bg:#ffffff1c;--sidebar-toggle-border:#ffffff3d;--sidebar-toggle-text:#e2e8f0;--sidebar-toggle-hover-bg:#ffffff29;--sidebar-toggle-hover-text:#fff;--sidebar-toggle-shadow:0 0 0 1px #0000002e, inset 0 1px 0 #ffffff1a;--sidebar-toggle-hover-shadow:0 0 0 1px #00000024, 0 4px 14px #00000038, inset 0 1px 0 #ffffff24;--sidebar-toggle-icon-bg:#c8102e47;--sidebar-toggle-icon-color:#fecdd3;--sidebar-toggle-icon-border:#f1486273;--sidebar-toggle-icon-hover-bg:#c8102e61;--sidebar-toggle-icon-hover-color:#fff;--sidebar-toggle-icon-hover-border:#f148628c;--sidebar-toggle-focus:#f14862}}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:var(--bg-base);margin:0}.glass-surface{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-surface--strong{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg)}.glass-surface--dark{background:var(--glass-bg-dark);-webkit-backdrop-filter:blur(var(--glass-blur-strong));border-right:1px solid var(--glass-border-dark);box-shadow:4px 0 24px #0000001f}.glass-input{background:var(--input-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-strong)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass-surface,.glass-surface--strong{background:var(--glass-fallback)}.glass-surface--dark{background:#080c16fa}.glass-input{background:var(--glass-input-fallback)}}.app-background{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.app-background__gradient{background:radial-gradient(ellipse 60% 50% at 15% 20%, #c8102e1a, transparent 55%), radial-gradient(ellipse 50% 40% at 85% 75%, #c8102e14, transparent 50%), radial-gradient(ellipse 70% 60% at 50% 100%, #64748b1a, transparent 60%), var(--bg-gradient-base);position:absolute;inset:0}.app-background__map{width:min(75vw,900px);height:min(65vh,650px);color:var(--map-tint);opacity:.1;animation:32s ease-in-out infinite alternate map-drift;position:absolute;bottom:-8%;right:-5%}.app-background--subdued .app-background__map{opacity:.04}.app-background__map-inner{filter:drop-shadow(8px 12px 18px #0f172a2e)drop-shadow(-4px -2px 8px #c8102e1a);width:100%;height:100%}.app-background__map-svg{width:100%;height:100%;display:block}@keyframes map-drift{0%{transform:translate(0)scale(1)}to{transform:translate(-12px,-8px)scale(1.02)}}@media (prefers-reduced-motion:reduce){.app-background__map{animation:none}}.forbidden-layout{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.forbidden-layout__card{z-index:1;position:relative}.app-shell{z-index:1;min-height:100vh;display:flex;position:relative}.app-sidebar{z-index:2;width:240px;color:var(--sidebar-text);background:var(--sidebar-bg);-webkit-backdrop-filter:blur(var(--glass-blur-strong));border-right:1px solid var(--sidebar-border);box-shadow:var(--sidebar-shadow);flex-direction:column;flex-shrink:0;padding:1rem 0;display:flex;position:relative}.app-brand{border-bottom:1px solid var(--sidebar-divider);letter-spacing:-.01em;align-items:center;gap:.625rem;margin-bottom:.5rem;padding:0 1.25rem 1rem;font-size:1.125rem;font-weight:700;display:flex}.app-brand-icon{background:var(--sidebar-brand-icon-bg);border:1px solid var(--sidebar-brand-icon-border);width:2.25rem;height:2.25rem;color:var(--sidebar-brand-icon-color);border-radius:.625rem;flex-shrink:0;place-items:center;display:grid}.app-brand-text{color:var(--sidebar-text)}.app-nav{flex-direction:column;flex:1;gap:.25rem;min-height:0;padding:0 .5rem;display:flex}.app-sidebar__footer{border-top:1px solid var(--sidebar-divider);margin-top:auto;padding:.75rem .75rem 1rem}.nav-link{color:var(--sidebar-text-muted);border-radius:.625rem;align-items:center;gap:.625rem;padding:.625rem .75rem;font-size:.9375rem;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s;display:flex}.nav-link:hover{background:var(--sidebar-nav-hover-bg);color:var(--sidebar-nav-hover-text)}.nav-link.active{background:var(--sidebar-nav-active-bg);color:var(--sidebar-nav-active-text);box-shadow:var(--sidebar-nav-active-shadow);-webkit-backdrop-filter:blur(8px)}.nav-group{flex-direction:column;gap:.125rem;display:flex}.nav-submenu{flex-direction:column;gap:.125rem;margin-top:.125rem;padding-left:1rem;display:flex}.nav-link--sub{color:var(--sidebar-text-muted);padding:.5rem .75rem;font-size:.875rem}.nav-link--sub:before{content:"";opacity:.4;background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.nav-link--sub.active:before{opacity:1}.theme-toggle{border:1px solid var(--sidebar-toggle-border);background:var(--sidebar-toggle-bg);width:100%;color:var(--sidebar-toggle-text);cursor:pointer;box-shadow:var(--sidebar-toggle-shadow);border-radius:.625rem;align-items:center;gap:.625rem;padding:.625rem .75rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.theme-toggle:hover{background:var(--sidebar-toggle-hover-bg);border-color:var(--sidebar-toggle-border);color:var(--sidebar-toggle-hover-text);box-shadow:var(--sidebar-toggle-hover-shadow)}.theme-toggle:focus-visible{outline:2px solid var(--sidebar-toggle-focus);outline-offset:2px}.theme-toggle__icon{background:var(--sidebar-toggle-icon-bg);border:1px solid var(--sidebar-toggle-icon-border);width:1.75rem;height:1.75rem;color:var(--sidebar-toggle-icon-color);border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover .theme-toggle__icon{background:var(--sidebar-toggle-icon-hover-bg);border-color:var(--sidebar-toggle-icon-hover-border);color:var(--sidebar-toggle-icon-hover-color)}.theme-toggle__text{text-align:left;flex:1}.app-main{z-index:1;isolation:isolate;flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.app-header{z-index:10;border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:.875rem 1.5rem;display:flex;position:sticky;top:0}.app-header-title{font-weight:600}.app-header-user{color:var(--muted);font-size:.875rem}.app-content{flex:1;padding:1.5rem}.page-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:.875rem;padding:1.5rem}.page-card.center{text-align:center;max-width:28rem;margin:4rem auto}.page-card h1{margin:0 0 .5rem;font-size:1.5rem}.muted{color:var(--muted);margin:.25rem 0}.page-loading{text-align:center;color:var(--muted);padding:2rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.muted.small{font-size:.875rem}.btn{cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}a.btn,a.btn:hover,a.btn:focus,a.btn:active,a.btn:visited,.home-dashboard__links .btn,.home-dashboard__links a.btn{-webkit-text-decoration:none!important;text-decoration:none!important}a.btn-primary,a.btn-primary:hover,a.btn-primary:focus,a.btn-primary:active,a.btn-primary:visited{color:#fff}a.btn-secondary,a.btn-secondary:hover,a.btn-secondary:focus,a.btn-secondary:active,a.btn-secondary:visited{color:var(--text)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;transition:box-shadow .15s,transform .1s;box-shadow:0 4px 14px #c8102e47}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #c8102e59}.btn-secondary{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);color:var(--text);border:1px solid var(--border-strong);transition:background .15s,box-shadow .15s}.btn-secondary:hover:not(:disabled){background:var(--glass-bg-strong);box-shadow:var(--shadow-sm)}.sync-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.sync-panel{border:1px solid var(--glass-border);background:var(--surface-subtle);-webkit-backdrop-filter:blur(8px);border-radius:.875rem;padding:1rem 1.25rem}.sync-panel h2{margin:0 0 .75rem;font-size:1rem}.sync-dl{gap:.625rem;margin:0;display:grid}.sync-dl dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem}.sync-dl dd{margin:.125rem 0 0;font-weight:600}.sync-error-text{color:var(--danger-text);margin:.75rem 0 0;font-size:.875rem}.sync-error-message{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);border-radius:.5rem;margin:.75rem 0 0;padding:.75rem}.sync-error-message strong{text-transform:uppercase;letter-spacing:.04em;color:var(--danger-text-strong);margin-bottom:.375rem;font-size:.75rem;display:block}.sync-error-message p{color:var(--danger-text);word-break:break-word;margin:0;font-size:.875rem;line-height:1.45}.sync-interval-form label{margin-bottom:.375rem;font-size:.875rem;font-weight:600;display:block}.sync-interval-row{gap:.5rem;display:flex}.sync-interval-row input{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);border-radius:.5rem;flex:1;min-width:0;padding:.5rem .75rem}.alert{border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.alert-error{background:var(--danger-soft-bg);-webkit-backdrop-filter:blur(8px);color:var(--danger-text);border:1px solid var(--danger-soft-border)}.alert-success{background:var(--success-soft-bg);-webkit-backdrop-filter:blur(8px);color:var(--success-text);border:1px solid var(--success-soft-border)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.locations-toolbar{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.locations-search{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);border-radius:.5rem;flex:240px;min-width:0;padding:.5rem .75rem}.locations-filter,.filter-select__control{box-sizing:border-box;border:1px solid var(--border-strong);background-color:var(--input-bg);width:100%;min-height:2.375rem;font:inherit;color:var(--text);cursor:pointer;appearance:none;border-radius:.5rem;margin:0;padding:.5rem 2.25rem .5rem .75rem;font-size:.875rem;line-height:1.25}.filter-select{vertical-align:top;flex:0 0 180px;width:180px;max-width:220px;display:inline-flex;position:relative}.filter-select:after{content:"";pointer-events:none;background: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='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;width:1rem;height:1rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}[data-theme=dark] .filter-select:after{background: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='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) .filter-select:after{background: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='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}}.filter-select__control::-ms-expand{display:none}.locations-table-wrap{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;overflow-x:auto}.locations-table{border-collapse:collapse;width:100%;font-size:.875rem}.locations-table th,.locations-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.75rem 1rem}.locations-table th{background:var(--table-head);-webkit-backdrop-filter:blur(8px);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem}.locations-table tbody tr:hover{background:var(--surface-hover)}.locations-table tbody tr:last-child td{border-bottom:none}.locations-empty{text-align:center;color:var(--muted);padding:2rem!important}.locations-name{font-weight:600}.locations-edit-row{flex-direction:column;gap:.5rem;min-width:220px;display:flex}.locations-edit-row input{border:1px solid var(--border-strong);background:var(--input-bg);border-radius:.5rem;padding:.375rem .625rem;font-size:.875rem}.locations-edit-actions{gap:.5rem;display:flex}.locations-batch-bar{border:1px solid var(--border-strong);background:var(--surface-subtle);border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.625rem 1rem;display:flex}.locations-batch-bar span{align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.locations-staged-note{color:var(--badge-pending-text);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.locations-address{max-width:280px}.locations-mono{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem}.locations-pagination{justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.status-badge{border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge--published{background:var(--badge-published-bg);color:var(--badge-published-text)}.status-badge--pending{background:var(--badge-pending-bg);color:var(--badge-pending-text)}.status-badge--unpublished{background:var(--badge-unpublished-bg);color:var(--badge-unpublished-text)}.sentiment-badge,.emotion-badge{border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.sentiment-badge--positive{background:var(--badge-positive-bg);color:var(--badge-positive-text)}.sentiment-badge--neutral{background:var(--badge-neutral-bg);color:var(--badge-neutral-text)}.sentiment-badge--negative{background:var(--badge-negative-bg);color:var(--badge-negative-text)}.sentiment-badge--pending{background:var(--badge-pending-bg);color:var(--badge-pending-text)}.emotion-badge--happy{background:var(--badge-happy-bg);color:var(--badge-happy-text)}.emotion-badge--surprise{background:var(--badge-surprise-bg);color:var(--badge-surprise-text)}.emotion-badge--anger{background:var(--badge-anger-bg);color:var(--badge-anger-text)}.emotion-badge--sadness{background:var(--badge-sadness-bg);color:var(--badge-sadness-text)}.emotion-badge--disgust{background:var(--badge-disgust-bg);color:var(--badge-disgust-text)}.reviews-labels,.reviews-detail__labels{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.reviews-detail__labels{margin:.5rem 0}.mapping-pill{border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.mapping-pill--unmapped{background:var(--badge-unmapped-bg);color:var(--badge-unmapped-text)}.placeholder-notes{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.placeholder-notes p{margin:.25rem 0}.mapping-upload-box{border:1px dashed var(--border-strong);background:var(--surface-subtle);-webkit-backdrop-filter:blur(8px);border-radius:.875rem;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.75rem;padding:1rem;display:flex}.mapping-file-label{cursor:pointer;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.mapping-actions{flex-wrap:wrap;gap:.5rem;display:flex}.mapping-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:.75rem}.mapping-result h2{margin:1.25rem 0 .75rem;font-size:1rem}.page-card code{background:var(--surface-subtle);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem}.map-page{flex-direction:column;flex:1;gap:.75rem;min-height:0;display:flex}.app-shell--map{height:100vh;max-height:100vh;overflow:hidden}.app-shell--map .app-main{min-height:0}.app-shell--map .app-content{min-height:0;padding-bottom:max(1.5rem, env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex;overflow:hidden}.map-page__toolbar{flex-shrink:0;margin-bottom:0}.map-page__heading h1{margin:0 0 .25rem}.map-page__filters{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.map-page__filters .filter-select{flex:0 0 180px;width:180px;max-width:220px}.map-page__legend{color:var(--text-secondary);flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.8125rem;display:flex}.map-legend-item{align-items:center;gap:.375rem;display:inline-flex}.map-legend-dot{border:2px solid #fff;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #0f172a26}.map-legend-dot--published{background:#22c55e}.map-legend-dot--pending{background:#eab308}.map-legend-dot--unpublished{background:#ef4444}.map-page__canvas{border:1px solid var(--glass-border);min-height:280px;box-shadow:var(--glass-shadow);border-radius:.875rem;flex:1;margin-bottom:.25rem;overflow:hidden}.map-popup{min-width:200px;font-size:.8125rem;line-height:1.4}.map-popup__row{color:var(--text-secondary);justify-content:space-between;gap:.75rem;margin-top:.25rem;display:flex}.map-popup__link{color:var(--accent);margin-top:.5rem;font-weight:600;text-decoration:none;display:inline-block}.map-popup__meta{color:var(--muted);margin-top:.25rem;font-size:.75rem;display:block}.performance-trends__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;display:flex}.performance-trends__header h1{margin:0 0 .25rem}.performance-trends__range{margin:0;font-size:.875rem}.performance-trends__toolbar{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin:1rem 0;display:flex}.performance-trends__periods{flex-wrap:wrap;gap:.5rem;display:flex}.performance-trends__custom{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.performance-trends__custom label{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:600;display:flex}.performance-trends__custom input[type=date]{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);font:inherit;border-radius:.5rem;padding:.5rem .625rem}.performance-trends__grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.performance-trends__chart-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;padding:.75rem .75rem .25rem}.performance-trends__chart-card h2{margin:0 0 .5rem;font-size:.9375rem;font-weight:600}.performance-trends__chart{width:100%;min-height:220px}.review-insights__reply{margin:1rem 0 1.5rem}.review-insights__charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.review-insights__note{margin:0 0 1rem;font-size:.8125rem}.review-insights__tables{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.review-insights__table-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;padding:1rem}.review-insights__table-card h2{margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.reviews-page h1{margin:0 0 .25rem}.reviews-toolbar{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.reviews-toolbar select{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);min-width:160px;font:inherit;border-radius:.5rem;padding:.5rem .625rem}.reviews-branch-input{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);min-width:120px;font:inherit;border-radius:.5rem;padding:.5rem .625rem}.reviews-toolbar--custom label{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.8125rem;font-weight:600;display:flex}.reviews-toolbar--custom input[type=date]{border:1px solid var(--border-strong);background:var(--input-bg);-webkit-backdrop-filter:blur(8px);font:inherit;border-radius:.5rem;padding:.5rem .625rem}.reviews-aggregates{border:1px solid var(--glass-border);background:var(--surface-subtle);-webkit-backdrop-filter:blur(8px);border-radius:.875rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;display:grid}.reviews-aggregates__stat{flex-direction:column;gap:.125rem;display:flex}.reviews-aggregates__stat--rate{grid-column:span 2}.reviews-aggregates__label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.reviews-aggregates__stat strong{font-size:1.25rem}.reviews-aggregates__hint{color:var(--muted);font-size:.75rem;line-height:1.35}.reviews-table-wrap{border:1px solid var(--glass-border);background:var(--glass-bg);max-height:70vh;-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;overflow:auto}.reviews-table{border-collapse:collapse;width:100%;font-size:.875rem}.reviews-table th,.reviews-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.625rem .75rem}.reviews-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);background:var(--table-head);-webkit-backdrop-filter:blur(8px);font-size:.75rem;position:sticky;top:0}.reviews-table tbody tr:hover{background:var(--surface-hover)}.reviews-table__row--active{background:var(--row-active-bg)!important}.reviews-table__comment{white-space:nowrap;text-overflow:ellipsis;max-width:280px;overflow:hidden}.reviews-table__date{white-space:nowrap;color:var(--text-secondary);font-size:.8125rem}.reviews-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,360px);gap:1rem;min-height:420px;display:grid}@media (width<=900px){.reviews-layout{grid-template-columns:1fr}}.reviews-list{flex-direction:column;gap:.5rem;max-height:70vh;display:flex;overflow:auto}.reviews-table tbody tr{cursor:pointer}.reviews-list__item{text-align:left;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:.875rem;padding:.75rem;transition:border-color .15s,box-shadow .15s}.reviews-list__item--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.reviews-list__top{justify-content:space-between;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.reviews-list__location{margin-top:.25rem;font-weight:600}.reviews-list__comment{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.375rem 0;font-size:.875rem;display:-webkit-box;overflow:hidden}.reviews-list__badges{flex-wrap:wrap;gap:.375rem;display:flex}.reviews-empty-state{margin:0;padding:1rem}.reviews-detail{border:1px solid var(--glass-border);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;padding:1rem}.reviews-detail__header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.reviews-detail__header h2{margin:0;font-size:1.125rem}.reviews-detail__meta{color:var(--text-secondary);margin:.375rem 0 .75rem;font-size:.875rem}.reviews-detail__comment{white-space:pre-wrap;margin:0 0 1rem}.review-stars{color:var(--warning-star);letter-spacing:.05em}.review-ai-draft{border-top:1px solid var(--border);padding-top:1rem}.review-ai-draft__header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.review-ai-draft__header h3{align-items:center;gap:.375rem;margin:0;font-size:.9375rem;display:inline-flex}.review-ai-draft__actions{flex-wrap:wrap;gap:.5rem;display:flex}.reviews-success{color:var(--success-text-strong);margin:.5rem 0 0;font-size:.875rem;font-weight:600}.review-ai-draft__text{background:var(--surface-subtle);white-space:pre-wrap;border-radius:.5rem;padding:.75rem;line-height:1.5}.review-ai-draft__blocked{background:var(--danger-soft-bg);color:var(--danger-text-strong);border-radius:.5rem;padding:.75rem}.review-ai-draft__blocked p{margin:.25rem 0 0}.review-ai-draft__edit{border:2px solid var(--primary);background:var(--surface-subtle);border-radius:.5rem;flex-direction:column;gap:0;display:flex;overflow:hidden}.review-ai-draft__textarea{resize:vertical;width:100%;min-height:140px;color:var(--text);box-sizing:border-box;background:0 0;border:none;outline:none;padding:.75rem;font-family:inherit;font-size:.9375rem;line-height:1.6}.review-ai-draft__textarea:disabled{opacity:.6;cursor:not-allowed}.review-ai-draft__edit-footer{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.review-ai-draft__char-count{color:var(--text-muted);font-size:.75rem}.review-ai-draft__edit-actions{gap:.5rem;display:flex}.btn-sm{padding:.375rem .625rem;font-size:.8125rem}.spin{animation:1s linear infinite spin}.home-dashboard{flex-direction:column;gap:1rem;display:flex}.home-dashboard__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;display:flex}.home-dashboard__header h1{margin:0 0 .25rem}.home-dashboard__updated{margin:0;font-size:.8125rem}.home-dashboard__section h2,.home-dashboard__quick-links h2{margin:0 0 .75rem;font-size:1rem}.home-dashboard__section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-bottom:.75rem;display:flex}.home-dashboard__section-head h2{margin:0}.home-dashboard__state{text-align:center}.home-dashboard__state h2{margin-top:0}.home-stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.home-stat-grid--perf{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.home-stat-card{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm);border-radius:.875rem;align-items:flex-start;gap:.75rem;padding:1rem;transition:transform .15s,box-shadow .15s;display:flex}.home-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.home-stat-card__icon{background:var(--primary-soft);width:2.25rem;height:2.25rem;color:var(--primary);border-radius:.625rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-stat-card__label{color:var(--text-secondary);margin:0;font-size:.8125rem}.home-stat-card__value{margin:.125rem 0 0;font-size:1.5rem;font-weight:700;line-height:1.2}.home-stat-card__hint{color:var(--muted);margin:.375rem 0 0;font-size:.75rem;line-height:1.35}.home-stat-card--estimate{border-color:var(--estimate-card-border);background:var(--estimate-card-bg);-webkit-backdrop-filter:blur(var(--glass-blur))}.home-stat-card__label-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.estimate-badge{letter-spacing:.02em;text-transform:uppercase;color:var(--badge-estimate-text);background:var(--badge-estimate-bg);border:1px solid var(--badge-estimate-border);border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.home-stat-grid--value-created{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.home-dashboard__links{flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;display:flex}.home-dashboard__quick-links .home-dashboard__links a{color:var(--accent);font-weight:600;text-decoration:none}.home-dashboard__quick-links .home-dashboard__links a:hover{text-decoration:none}.app-content a:not(.btn):not(.nav-link){color:var(--accent);font-weight:600;text-decoration:none}.app-content a:not(.btn):not(.nav-link):hover{color:var(--primary-700);text-decoration:none}.bulk-jobs-layout{grid-template-columns:minmax(240px,320px) 1fr;gap:1.5rem;margin-top:1rem;display:grid}@media (width<=900px){.bulk-jobs-layout{grid-template-columns:1fr}}.bulk-jobs-list__items{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.bulk-jobs-list__item{text-align:left;border:1px solid var(--glass-border);background:var(--card);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:.625rem;flex-direction:column;gap:.35rem;width:100%;padding:.75rem;transition:border-color .15s,box-shadow .15s;display:flex}.bulk-jobs-list__item--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.bulk-jobs-list__title{font-weight:600}.bulk-jobs-list__meta{font-size:.8125rem}.bulk-job-progress{background:var(--progress-track);border-radius:999px;height:.375rem;margin-top:.25rem;overflow:hidden}.bulk-job-progress__bar{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.bulk-jobs-detail__header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.bulk-jobs-stats{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;margin:1rem 0;display:grid}.bulk-jobs-stats dt{color:var(--muted);font-size:.75rem}.bulk-jobs-stats dd{margin:.125rem 0 0;font-weight:600}.bulk-jobs-detail__times{font-size:.8125rem}.bulk-jobs-rows{margin-top:1.25rem}.bulk-jobs-rows__error{word-break:break-word;max-width:280px;font-size:.8125rem}.form-success{color:var(--success-text-strong);margin:.5rem 0 0}.bulk-jobs-upload{border:1px solid var(--glass-border);background:var(--surface-subtle);-webkit-backdrop-filter:blur(8px);border-radius:.625rem;margin:1rem 0 1.5rem;padding:1rem}.bulk-jobs-upload h2{margin:0 0 .5rem;font-size:1rem}.bulk-jobs-upload__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.bulk-jobs-upload__errors{margin-top:1rem}.bulk-jobs-monitor{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.25rem}.bulk-jobs-monitor h2{margin:0 0 .75rem;font-size:1.05rem}.bulk-jobs-monitor h3{margin:0 0 .75rem;font-size:.95rem}.bulk-jobs-detail__actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.bulk-jobs-row-filters{flex-wrap:wrap;gap:.35rem;margin:.75rem 0;display:flex}.bulk-jobs-filter{border:1px solid var(--border-strong);background:var(--card);-webkit-backdrop-filter:blur(8px);cursor:pointer;border-radius:999px;padding:.25rem .65rem;font-size:.8125rem}.bulk-jobs-filter--active{border-color:var(--accent);color:var(--accent);font-weight:600}.bulk-jobs-live{font-size:.75rem;font-style:italic}
