:root {
  color-scheme: light;
  font-family: Inter, "SF Pro Display", "Hiragino Sans", "Yu Gothic UI", Meiryo, sans-serif;
  --bg: #f4f5f2;
  --surface: #ffffff;
  --surface-soft: #f8f9f6;
  --ink: #17201d;
  --muted: #718079;
  --line: #e3e8e4;
  --accent: #266b57;
  --accent-deep: #174f3f;
  --accent-soft: #e7f1ed;
  --warm: #b77838;
  --danger: #b94c4c;
  --shadow: 0 16px 48px rgba(24, 42, 34, 0.09);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--bg); overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.app-shell { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: relative; display: flex; flex-direction: column; padding: 28px 18px; color: #f4faf7; background: #132620; }
.sidebar::after { content: ""; position: absolute; inset: auto 0 0; height: 38%; background: radial-gradient(circle at 20% 100%, rgba(67, 139, 112, .24), transparent 62%); pointer-events: none; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 30px; }
.brand strong { display: block; font-size: 19px; letter-spacing: -.4px; }
.brand small { display: block; margin-top: 2px; color: #8eaaa0; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.brand-mark { width: 35px; height: 35px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 3px; padding: 7px; border-radius: 10px; background: #2e745e; box-shadow: inset 0 1px 0 rgba(255,255,255,.2); }
.brand-mark span { display: block; border-radius: 2px; background: #d8eee5; }
.brand-mark span:nth-child(1) { height: 9px; }.brand-mark span:nth-child(2) { height: 17px; }.brand-mark span:nth-child(3) { height: 12px; }
.nav-list { display: grid; gap: 7px; }
.nav-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-radius: 10px; color: #9eb6ad; background: transparent; text-align: left; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: #25483d; box-shadow: inset 3px 0 #65a98f; }
.nav-icon { width: 22px; color: #83b49f; text-align: center; font-size: 16px; }
.sidebar-foot { margin-top: auto; z-index: 1; }
.signed-in-user { margin: 0 5px 10px; padding: 0 8px 10px; border-bottom: 1px solid rgba(255,255,255,.07); overflow: hidden; }
.signed-in-user strong, .signed-in-user small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.signed-in-user strong { font-size: 11px; }.signed-in-user small { margin-top: 3px; color: #78948a; font-size: 9px; }
.privacy-card { display: flex; gap: 10px; padding: 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.035); }
.privacy-dot { width: 8px; height: 8px; flex: 0 0 auto; margin-top: 4px; border-radius: 50%; background: #69c49f; box-shadow: 0 0 0 4px rgba(105,196,159,.12); }
.privacy-dot.offline { background: #d89b61; box-shadow: 0 0 0 4px rgba(216,155,97,.12); }
.privacy-card strong { display: block; font-size: 12px; }.privacy-card small { display: block; margin-top: 4px; color: #78948a; font-size: 10px; line-height: 1.5; }

.main-content { height: 100vh; padding: 28px 32px 36px; overflow: auto; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 23px; }
.eyebrow { margin: 0 0 5px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: 27px; letter-spacing: -.7px; }
.topbar-actions { display: flex; gap: 9px; }
.button { min-height: 40px; padding: 0 16px; border: 1px solid transparent; border-radius: 10px; font-size: 13px; font-weight: 700; transition: .18s ease; }
.button:disabled { opacity: .55; cursor: wait; }
.button.primary { color: #fff; background: var(--accent); box-shadow: 0 7px 18px rgba(38,107,87,.2); }
.button.primary:hover { background: var(--accent-deep); transform: translateY(-1px); }
.button.secondary { color: var(--accent); border-color: #bcd7cc; background: #fff; }
.button.ghost { color: #53625c; border-color: var(--line); background: #fff; }
.button.danger-ghost { color: var(--danger); border-color: #ecd1d1; background: #fff; }
.button.full { width: 100%; }
.mobile-logout { display: none; }

.auth-screen { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 10%, rgba(69,137,111,.16), transparent 35%), linear-gradient(135deg, #eef3ef, #f7f4ee); }
.login-card { width: min(430px, 100%); padding: 34px; border: 1px solid rgba(255,255,255,.75); border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: 0 28px 80px rgba(24,42,34,.16); backdrop-filter: blur(18px); }
.login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 34px; }
.login-brand strong { display: block; font-size: 18px; }
.login-brand small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.login-card h1 { font-size: 25px; }
.login-description { margin: 12px 0 24px; color: var(--muted); font-size: 11px; line-height: 1.75; }
.login-field { display: block; margin-bottom: 14px; }
.login-field > span { display: block; margin-bottom: 7px; color: #6e7c76; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.login-field input { width: 100%; height: 46px; padding: 0 13px; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: #fbfcfb; }
.login-field input:focus { border-color: #83ae9e; box-shadow: 0 0 0 3px rgba(38,107,87,.09); }
.login-error { margin: 0 0 13px; padding: 10px 12px; border: 1px solid #edcccc; border-radius: 9px; color: #914848; background: #fff5f5; font-size: 10px; }
.google-button { display: flex; align-items: center; justify-content: center; gap: 11px; min-height: 48px; border: 1px solid #dfe4e1; border-radius: 11px; color: #26332e; background: #fff; box-shadow: 0 5px 16px rgba(30,47,39,.06); font-size: 13px; font-weight: 750; text-decoration: none; transition: .18s ease; }
.google-button:hover { border-color: #b9cbc4; background: #fbfdfc; transform: translateY(-1px); }.google-button svg { width: 20px; height: 20px; }
.google-setup-note { padding: 12px; border: 1px solid #eadcc8; border-radius: 10px; color: #805d35; background: #fff9f0; font-size: 10px; line-height: 1.6; }
.local-login { margin-top: 16px; border-top: 1px solid var(--line); }
.local-login summary { padding-top: 15px; color: #7b8882; font-size: 10px; text-align: center; cursor: pointer; list-style: none; }.local-login summary::-webkit-details-marker { display: none; }
.local-login form { margin-top: 15px; }.local-login .login-field { margin-bottom: 10px; }

.stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 13px; margin-bottom: 16px; }
.stat-card { min-height: 117px; padding: 19px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 5px 20px rgba(28,44,37,.035); }
.stat-card.accent { color: #fff; border-color: transparent; background: linear-gradient(135deg, #2d725d, #1b4f40); }
.stat-card.excluded-stat { border-color: #ead5c5; background: linear-gradient(145deg, #fffaf6, #fff); }
.stat-card.excluded-stat .stat-value { color: #9c4f31; }
.stat-label { color: var(--muted); font-size: 11px; font-weight: 700; }.accent .stat-label { color: #c3ddd3; }
.stat-value { margin-top: 8px; font-size: 30px; font-weight: 750; letter-spacing: -1.2px; }
.stat-note { margin-top: 2px; color: #9aa7a1; font-size: 10px; }.accent .stat-note { color: #9fc4b5; }

.workspace-card { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow); overflow: hidden; }
.toolbar { display: grid; grid-template-columns: minmax(230px, 1fr) auto auto auto auto; gap: 9px; align-items: center; padding: 15px 17px; border-bottom: 1px solid var(--line); }
.search-box { display: flex; align-items: center; gap: 9px; height: 39px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-soft); }
.search-box span { color: #87938e; font-size: 18px; }.search-box input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 12px; }
kbd { padding: 3px 6px; color: #8d9893; border: 1px solid #dde2df; border-radius: 5px; background: #fff; font-size: 9px; white-space: nowrap; }
select, .detail-grid input, textarea { border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fff; outline: none; }
.toolbar select { height: 39px; padding: 0 28px 0 10px; font-size: 11px; }
.toggle-label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.toggle-label input { display: none; }.toggle { width: 31px; height: 18px; padding: 2px; border-radius: 20px; background: #cbd3cf; transition: .2s; }.toggle::after { content: ""; display: block; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: .2s; }
.toggle-label input:checked + .toggle { background: var(--accent); }.toggle-label input:checked + .toggle::after { transform: translateX(13px); }

.table-wrap { min-height: 370px; max-height: calc(100vh - 375px); overflow: auto; }
table { width: 100%; border-collapse: collapse; }
th { position: sticky; top: 0; z-index: 2; padding: 11px 16px; color: #7d8984; border-bottom: 1px solid var(--line); background: #fafbf9; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-align: left; }
td { padding: 13px 16px; border-bottom: 1px solid #edf0ee; font-size: 11px; vertical-align: middle; }
tbody tr { transition: .15s; } tbody tr:hover { background: #f8fbf9; }
.facility-cell { min-width: 250px; }.facility-name { display: block; margin-bottom: 4px; border: 0; padding: 0; color: var(--ink); background: none; font-size: 12px; font-weight: 750; text-align: left; }.facility-name:hover { color: var(--accent); }
.facility-title-line { display: flex; align-items: center; gap: 7px; }
.facility-title-line .facility-name { margin-bottom: 0; }
.facility-address { display: block; max-width: 390px; color: #83908a; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.facility-excluded { color: #786d68; background: repeating-linear-gradient(-45deg, #fffaf7, #fffaf7 8px, #fdf7f3 8px, #fdf7f3 16px); box-shadow: inset 4px 0 #c66b4b; }
.facility-excluded:hover { background: repeating-linear-gradient(-45deg, #fff7f2, #fff7f2 8px, #fcf1eb 8px, #fcf1eb 16px); }
.facility-excluded .facility-name { color: #654c43; }
.facility-excluded .facility-address, .facility-excluded .category-text { color: #9a857c; }
.excluded-badge { display: inline-flex; align-items: center; min-height: 19px; padding: 0 7px; border: 1px solid #e6b9a7; border-radius: 99px; color: #963f28; background: #fff0ea; font-size: 8px; font-weight: 850; white-space: nowrap; }
.exclusion-reason { display: block; margin-top: 5px; color: #a24c31; font-size: 9px; font-weight: 750; }
.category-text { display: block; max-width: 160px; color: #4f5e58; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 99px; font-size: 9px; font-weight: 750; white-space: nowrap; }
.badge.neutral { color: #63706b; background: #eef1ef; }.badge.good { color: #28624e; background: #e4f1eb; }.badge.warn { color: #8a5b26; background: #f6ecde; }.badge.bad { color: #964747; background: #f7e7e7; }.badge.excluded { color: #963f28; background: #fbe7df; }
.social-cell { min-width: 158px; }
.social-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.social-badge { display: inline-flex; align-items: center; min-height: 21px; padding: 0 7px; border: 1px solid #dce3df; border-radius: 6px; color: #53615c; background: #f7f9f8; font-size: 8px; font-weight: 800; text-decoration: none; transition: .15s ease; }
a.social-badge:hover { transform: translateY(-1px); filter: brightness(.97); }
.social-badge.x, .social-badge.threads { color: #fff; border-color: #222; background: #222; }
.social-badge.instagram { color: #9d386d; border-color: #ecc9dd; background: #fff1f8; }
.social-badge.facebook { color: #1767bb; border-color: #c8dbf1; background: #eef6ff; }
.social-badge.youtube { color: #c62b2b; border-color: #f0cccc; background: #fff1f1; }
.social-badge.tiktok { color: #171717; border-color: #bde8e6; background: #effcfa; }
.social-empty { color: #9ba5a1; font-size: 9px; }
.row-actions { text-align: right; }.more-button { width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 8px; color: #75817c; background: #fff; }
.empty-state { display: grid; justify-items: center; padding: 72px 20px; text-align: center; }.empty-icon { color: #80a798; font-size: 40px; }.empty-state h2 { margin: 10px 0 7px; font-size: 16px; }.empty-state p { max-width: 420px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.table-footer { display: flex; justify-content: space-between; padding: 11px 17px; color: #8a9691; border-top: 1px solid var(--line); background: #fafbf9; font-size: 9px; }

.modal-backdrop, .drawer-backdrop { position: fixed; inset: 0; z-index: 20; background: rgba(12,24,19,.48); backdrop-filter: blur(4px); }
.modal { position: fixed; top: 50%; left: 50%; z-index: 21; width: min(780px, calc(100vw - 48px)); max-height: calc(100vh - 58px); padding: 25px; border-radius: 18px; background: #fff; box-shadow: 0 35px 90px rgba(12,26,20,.28); transform: translate(-50%,-50%); overflow: auto; }
.modal-header, .drawer-header { display: flex; justify-content: space-between; align-items: flex-start; }.modal-header h2, .drawer-header h2 { margin-bottom: 0; font-size: 20px; letter-spacing: -.4px; }
.icon-button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; color: #6e7a75; background: #fff; font-size: 19px; }
.drop-zone { display: grid; justify-items: center; margin-top: 20px; padding: 48px 25px; border: 1.5px dashed #bdd0c8; border-radius: 15px; background: #f7faf8; text-align: center; }.drop-zone.dragging { border-color: var(--accent); background: var(--accent-soft); }
.drop-icon { display: grid; place-items: center; width: 49px; height: 49px; margin-bottom: 14px; border-radius: 14px; color: var(--accent); background: #e2efe9; font-size: 22px; }.drop-zone p { margin: 6px 0 18px; color: var(--muted); font-size: 11px; }.drop-zone small { margin-top: 14px; color: #99a49f; font-size: 9px; }
.preview-panel { margin-top: 20px; }.preview-summary { display: flex; justify-content: space-between; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }.preview-summary > div:first-child { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; align-items: center; }.preview-summary strong { font-size: 12px; }.preview-summary small { grid-column: 2; color: var(--muted); font-size: 9px; }
.duplicate-document-notice { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 13px 14px; border: 1px solid #e2c99f; border-radius: 11px; color: #684f28; background: #fff8e9; }
.duplicate-document-notice > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; color: #fff; background: #a87932; font-size: 9px; font-weight: 850; }
.duplicate-document-notice strong, .duplicate-document-notice small { display: block; }.duplicate-document-notice strong { font-size: 11px; }.duplicate-document-notice small { margin-top: 3px; color: #8f754c; font-size: 9px; line-height: 1.5; }
#confirm-import:disabled { cursor: not-allowed; }
.file-badge { grid-row: 1 / 3; padding: 9px 7px; border-radius: 7px; color: #fff; background: #c55e4f; font-size: 9px; font-weight: 800; }.preview-count { display: flex; align-items: baseline; gap: 5px; color: var(--muted); font-size: 9px; }.preview-count strong { color: var(--accent); font-size: 21px; }
.preview-table-wrap { max-height: 270px; margin-top: 12px; border: 1px solid var(--line); border-radius: 11px; overflow: auto; }.preview-table td, .preview-table th { padding: 9px 11px; font-size: 9px; }.preview-table td:nth-child(3) { max-width: 280px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.warning-list { margin-top: 10px; color: var(--warm); font-size: 10px; }.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }
.modal-description { margin: 12px 0 18px; color: var(--muted); font-size: 10px; line-height: 1.7; }
.users-modal { width: min(900px, calc(100vw - 48px)); }
.invite-form { display: grid; grid-template-columns: minmax(240px, 1fr) 210px auto; gap: 10px; align-items: end; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.invite-form label > span { display: block; margin-bottom: 6px; color: #74817b; font-size: 9px; font-weight: 800; }.invite-form input, .invite-form select { width: 100%; height: 40px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; outline: none; background: #fff; font-size: 11px; }
.user-table-wrap { position: relative; min-height: 130px; max-height: 430px; margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; overflow: auto; }
.user-table th { z-index: 1; }.user-table td { padding-block: 11px; }.user-table select { min-width: 100px; height: 34px; padding: 0 8px; font-size: 10px; }.user-table .button { min-height: 34px; padding-inline: 12px; font-size: 10px; }
.user-identity { min-width: 230px; }.user-identity strong, .user-identity small { display: block; }.user-identity strong { font-size: 11px; }.user-identity small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.link-state { display: inline-flex; padding: 5px 8px; border-radius: 20px; color: #826038; background: #f8edde; font-size: 9px; font-weight: 750; white-space: nowrap; }.link-state.linked { color: #27624e; background: #e4f1eb; }
.users-loading { display: grid; place-items: center; position: absolute; inset: 37px 0 0; color: var(--muted); background: rgba(255,255,255,.92); font-size: 10px; }

.detail-drawer { position: fixed; top: 0; right: 0; z-index: 31; display: flex; flex-direction: column; width: min(480px, 94vw); height: 100vh; background: #fff; box-shadow: -24px 0 70px rgba(20,35,29,.22); transform: translateX(102%); transition: transform .24s ease; }
.detail-drawer.open { transform: translateX(0); }.drawer-backdrop { z-index: 30; }.drawer-header { padding: 25px 25px 18px; border-top: 4px solid transparent; border-bottom: 1px solid var(--line); transition: border-color .2s; }.detail-drawer.excluded .drawer-header { border-top-color: #c66b4b; }.drawer-body { flex: 1; padding: 22px 25px 35px; overflow: auto; }.drawer-footer { padding: 16px 25px; border-top: 1px solid var(--line); }
.address-block { padding: 16px; border-radius: 13px; background: #f3f7f5; }.address-block > span, .detail-grid label > span, .notes-field > span { display: block; margin-bottom: 6px; color: #7e8b85; font-size: 9px; font-weight: 800; letter-spacing: .04em; }.address-block p { margin-bottom: 12px; font-size: 12px; line-height: 1.65; }.map-button { padding: 8px 11px; border: 0; border-radius: 8px; color: var(--accent); background: #dfeee8; font-size: 10px; font-weight: 800; }
.exclusion-banner { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border: 1px solid #e8b9a6; border-radius: 11px; color: #703a29; background: #fff2ec; }
.exclusion-banner > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; color: #fff; background: #ad5336; font-size: 9px; font-weight: 850; }
.exclusion-banner strong, .exclusion-banner small { display: block; }.exclusion-banner strong { font-size: 11px; }.exclusion-banner small { margin-top: 3px; color: #a06652; font-size: 9px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 18px; }.detail-grid label:last-child { grid-column: 1 / -1; }.detail-grid input, .detail-grid select { width: 100%; height: 39px; padding: 0 10px; font-size: 11px; }.detail-grid input[readonly] { background: #f6f7f5; color: #63706b; }
.detail-grid select:disabled { color: #9a857c; background: #f5f2f0; cursor: not-allowed; }
.social-section { margin-top: 18px; padding: 15px; border: 1px solid #dfe8e4; border-radius: 13px; background: linear-gradient(145deg, #fbfdfc, #f5f9f7); }
.social-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.social-section-head span { display: block; color: #6a897d; font-size: 7px; font-weight: 850; letter-spacing: .13em; }
.social-section-head h3 { margin: 3px 0 0; font-size: 12px; }
.social-section-head small { color: #91a09a; font-size: 8px; }
.social-input-grid { display: grid; gap: 8px; margin-top: 13px; }
.social-input-grid label { display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: center; gap: 9px; }
.social-input-grid input { width: 100%; height: 37px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; outline: none; font-size: 10px; }
.social-input-grid input:focus { border-color: #83ae9e; box-shadow: 0 0 0 3px rgba(38,107,87,.08); }
.platform-mark { display: inline-flex; align-items: center; justify-content: center; min-height: 25px; padding: 0 6px; border-radius: 7px; color: #56635e; background: #e9eeeb; font-size: 8px; font-weight: 850; }
.platform-mark.x, .platform-mark.threads { color: #fff; background: #222; }
.platform-mark.instagram { color: #fff; background: linear-gradient(135deg, #7b3fbc, #dd477d, #e89c45); }
.platform-mark.facebook { color: #fff; background: #1877f2; }
.platform-mark.youtube { color: #fff; background: #e12d2d; }
.platform-mark.tiktok { color: #fff; background: #1e2322; box-shadow: inset 2px 0 #25e6df, inset -2px 0 #fb3158; }
.notes-field { display: block; margin-top: 18px; }.notes-field textarea { width: 100%; padding: 11px; resize: vertical; font-size: 11px; line-height: 1.6; }
.exclusion-control { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbf9; transition: .2s ease; }
.exclusion-control.active { border-color: #e5b6a3; background: #fff8f4; box-shadow: 0 5px 16px rgba(156,79,49,.07); }
.exclusion-toggle-row { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.exclusion-toggle-row input { position: absolute; opacity: 0; pointer-events: none; }
.exclusion-switch { width: 35px; height: 20px; flex: 0 0 auto; padding: 3px; border-radius: 20px; background: #cbd3cf; transition: .2s; }
.exclusion-switch::after { content: ""; display: block; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.22); transition: .2s; }
.exclusion-toggle-row input:checked + .exclusion-switch { background: #b45a3c; }
.exclusion-toggle-row input:checked + .exclusion-switch::after { transform: translateX(15px); }
.exclusion-copy strong, .exclusion-copy small { display: block; }.exclusion-copy strong { color: #4d5b55; font-size: 10px; }.exclusion-copy small { margin-top: 3px; color: #8b9691; font-size: 8px; line-height: 1.5; }
.exclusion-control.active .exclusion-copy strong { color: #873f29; }
.exclusion-reason-field { display: block; margin: 13px 0 0 45px; padding-top: 12px; border-top: 1px solid #edd6cc; }
.exclusion-reason-field > span { display: block; margin-bottom: 6px; color: #9a624e; font-size: 9px; font-weight: 800; }
.exclusion-reason-field select { width: 100%; height: 39px; padding: 0 10px; border-color: #e5c5b8; font-size: 11px; }
.permit-section { margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--line); }.section-title { display: flex; justify-content: space-between; align-items: center; }.section-title h3 { margin: 0; font-size: 13px; }.section-title span { color: var(--muted); font-size: 9px; }.permit-list { display: grid; gap: 9px; margin-top: 11px; }.permit-card { padding: 13px; border: 1px solid var(--line); border-radius: 10px; }.permit-card-head { display: flex; justify-content: space-between; gap: 10px; }.permit-card strong { font-size: 11px; }.permit-card small { color: var(--muted); font-size: 9px; }.permit-card p { margin: 8px 0 0; color: #67736e; font-size: 9px; }

.toast { position: fixed; left: 50%; bottom: 28px; z-index: 50; padding: 11px 16px; border-radius: 10px; color: #fff; background: #1c352d; box-shadow: var(--shadow); font-size: 11px; opacity: 0; transform: translate(-50%, 16px); pointer-events: none; transition: .25s ease; }.toast.show { opacity: 1; transform: translate(-50%,0); }.toast.error { background: #8f3d3d; }

@media (max-width: 1050px) { .app-shell { grid-template-columns: 82px minmax(0,1fr); }.sidebar { padding-inline: 12px; }.brand > div:last-child, .nav-item:not(.active) { font-size: 0; }.nav-item { justify-content: center; }.nav-icon { font-size: 17px; }.privacy-card, .signed-in-user { display: none; }.stats-grid { grid-template-columns: repeat(2,1fr); }.toolbar { grid-template-columns: 1fr 1fr; }.table-wrap { max-height: none; } }
@media (max-width: 760px) { body { overflow: auto; }.app-shell { display: block; }.sidebar { display: none; }.main-content { height: auto; padding: 20px 14px; }.topbar { align-items: flex-end; }.topbar .button.ghost { display: none; }.topbar .button.mobile-logout { display: inline-flex; }.stats-grid { grid-template-columns: 1fr 1fr; }.toolbar { grid-template-columns: 1fr; }.toggle-label { padding: 6px; }.table-wrap { overflow-x: auto; }.workspace-card table { min-width: 900px; }.login-card { padding: 26px; }.login-brand { margin-bottom: 26px; }.invite-form { grid-template-columns: 1fr; }.users-modal { width: calc(100vw - 24px); padding: 18px; }.user-table { min-width: 720px; }.social-section-head small { display: none; } }
