:root{--font-sans:"Inter","Inter Variable",-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;--font-mono:"Berkeley Mono",ui-monospace,"SF Mono","JetBrains Mono","SFMono-Regular",Menlo,monospace;--duration-fast:100ms;--duration-normal:150ms;--duration-slow:250ms;--ease:cubic-bezier(0.25,0.1,0.25,1);--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--ui-touch:48px;--ui-touch-min:44px;--ui-bg:var(--bg-app);--ui-surface:var(--bg-primary);--ui-text:var(--text-primary);--ui-muted:var(--text-tertiary);--ui-primary:var(--accent);--ui-primary-hover:var(--accent-hover);--ui-border:var(--border-default);--ui-danger:var(--danger);--ui-radius:var(--radius-lg)}:root,:root[data-theme=dark]{color-scheme:dark;--bg-app:#08090a;--bg-primary:#101012;--bg-secondary:#16161a;--bg-tertiary:#1c1c21;--bg-hover:rgba(255,255,255,0.04);--bg-active:rgba(255,255,255,0.08);--border-subtle:rgba(255,255,255,0.06);--border-default:rgba(255,255,255,0.1);--border-strong:rgba(255,255,255,0.16);--text-primary:#f7f8f8;--text-secondary:#b4b8c0;--text-tertiary:#8a8f98;--text-quaternary:#62666d;--accent:#5e6ad2;--accent-hover:#6e79d6;--accent-text:#828fff;--success:#4cb782;--warning:#f2c94c;--danger:#eb5757;--info:#4ea7fc;--success-bg:rgba(76,183,130,0.15);--warning-bg:rgba(242,201,76,0.15);--danger-bg:rgba(235,87,87,0.15);--info-bg:rgba(78,167,252,0.15)}:root[data-theme=light]{color-scheme:light;--bg-app:#f9f9fb;--bg-primary:#ffffff;--bg-secondary:#f9f9fb;--bg-tertiary:#f4f4f6;--bg-hover:rgba(0,0,0,0.03);--bg-active:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.06);--border-default:rgba(0,0,0,0.1);--border-strong:rgba(0,0,0,0.16);--text-primary:#16161a;--text-secondary:#4c4f57;--text-tertiary:#6f7076;--text-quaternary:#9b9da3;--accent:#5e6ad2;--accent-hover:#5059b8;--accent-text:#5e6ad2;--success:#067647;--warning:#b54708;--danger:#b42318;--info:#175cd3;--success-bg:rgba(6,118,71,0.1);--warning-bg:rgba(181,71,8,0.1);--danger-bg:rgba(180,35,24,0.08);--info-bg:rgba(23,92,211,0.08)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--bg-app:#f9f9fb;--bg-primary:#ffffff;--bg-secondary:#f9f9fb;--bg-tertiary:#f4f4f6;--bg-hover:rgba(0,0,0,0.03);--bg-active:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.06);--border-default:rgba(0,0,0,0.1);--border-strong:rgba(0,0,0,0.16);--text-primary:#16161a;--text-secondary:#4c4f57;--text-tertiary:#6f7076;--text-quaternary:#9b9da3;--accent:#5e6ad2;--accent-hover:#5059b8;--accent-text:#5e6ad2;--accent-contrast:#ffffff;--success:#067647;--warning:#b54708;--danger:#b42318;--info:#175cd3;--success-bg:rgba(6,118,71,0.1);--warning-bg:rgba(181,71,8,0.1);--danger-bg:rgba(180,35,24,0.08);--info-bg:rgba(23,92,211,0.08)}}body{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-sans);transition:background-color var(--duration-normal) var(--ease),color var(--duration-normal) var(--ease)}:where(a,button,summary,[role=button],[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent)}:where(input,select,textarea):focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.ui-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-lang-switcher{display:inline-flex;gap:4px}.ui-lang-button{min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:13px;font-weight:510;cursor:pointer;transition:color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.ui-lang-button:hover{color:var(--text-primary);background:var(--bg-hover)}.ui-lang-button.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-primary);font-weight:590}.ui-theme-switcher{display:inline-flex;gap:4px}.ui-theme-button{min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:13px;font-weight:510;cursor:pointer;transition:color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.ui-theme-button:hover{color:var(--text-primary);background:var(--bg-hover)}.ui-theme-button.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-primary);font-weight:590}.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-touch-min);padding:0 20px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-sans);font-size:15px;font-weight:510;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.ui-button:hover{background:var(--accent-hover)}.ui-button.is-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.ui-button.is-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.ui-button.is-ghost{background:transparent;color:var(--text-secondary)}.ui-button.is-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.ui-button.is-danger{background:var(--danger);color:#ffffff}.ui-button.is-danger:hover{background:color-mix(in srgb,var(--danger) 85%,#000000)}.ui-button:disabled{opacity:.5;cursor:not-allowed}.ui-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px}.ui-banner{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.ui-banner.is-error{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.ui-banner.is-success{background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}.ui-banner.is-info{background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info) 35%,transparent);color:var(--info)}.ui-tag{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:510;background:var(--bg-tertiary);color:var(--text-secondary)}.ui-tag.is-success{background:var(--success-bg);color:var(--success)}.ui-tag.is-warning{background:var(--warning-bg);color:var(--warning)}.ui-tag.is-danger{background:var(--danger-bg);color:var(--danger)}.ui-tag.is-info{background:var(--info-bg);color:var(--info)}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}:root,:root[data-theme=dark]{--accent:#5b7fd4;--accent-hover:#6b8cda;--accent-text:#8faaf2;--accent-contrast:#ffffff}:root[data-theme=light]{--accent:#1a56db;--accent-hover:#1747b8;--accent-text:#1a56db;--accent-contrast:#ffffff}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--accent:#1a56db;--accent-hover:#1747b8;--accent-text:#1a56db;--accent-contrast:#ffffff}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-size:17px;line-height:1.6}main.centered{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:40px 32px;width:100%;max-width:440px;text-align:center}.brand{font-size:28px;font-weight:590;letter-spacing:-.012em;margin:0 0 8px}.subtitle{color:var(--text-secondary);margin:0 0 32px}.button-primary{display:inline-flex;align-items:center;justify-content:center;min-height:56px;width:100%;padding:0 24px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-size:19px;font-weight:510;font-family:inherit;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}.button-primary:hover{background:var(--accent-hover)}.button-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:17px;font-weight:510;font-family:inherit;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.button-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.error-banner{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:24px;font-size:15px}.selector{max-width:720px;margin:0 auto;padding:48px 24px}.selector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:16px}.selector-title{font-size:26px;font-weight:590;letter-spacing:-.012em;margin:0}.tenant-name{color:var(--text-tertiary);font-size:15px}.logout-link{color:var(--text-secondary);font-size:16px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 16px;background:var(--bg-tertiary);transition:border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.logout-link:hover{border-color:var(--border-strong);color:var(--text-primary)}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:20px;gap:20px}.app-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:140px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-decoration:none;color:var(--text-primary);font-size:19px;font-weight:590;transition:border-color var(--duration-fast) var(--ease)}.app-tile:hover{border-color:var(--border-strong)}.app-tile.disabled{opacity:.5;pointer-events:none}.app-tile .icon{font-size:40px;color:var(--accent-text)}.app-tile .coming-soon{font-size:13px;color:var(--text-tertiary);font-weight:400}.empty-state{text-align:center;color:var(--text-secondary);padding:64px 24px;background:var(--bg-primary);border:1px dashed var(--border-default);border-radius:var(--radius-lg)}.announcement-banner{display:flex;flex-direction:column;gap:4px;border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:16px;font-size:15px;background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info) 35%,transparent);color:var(--info)}.announcement-banner.warning{background:var(--warning-bg);border-color:color-mix(in srgb,var(--warning) 35%,transparent);color:var(--warning)}.announcement-banner.critical{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.store-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.store-tab{display:inline-flex;align-items:center;gap:6px;min-height:52px;padding:0 20px;border-radius:var(--radius-lg);border:1px solid var(--border-default);background:var(--bg-primary);color:var(--text-primary);text-decoration:none;font-size:17px;font-weight:510;transition:border-color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease)}.store-tab:hover{border-color:var(--border-strong)}.store-tab.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.members-table{width:100%;border-collapse:collapse;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:24px}.members-table td,.members-table th{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:16px}.members-table th{background:var(--bg-secondary);color:var(--text-tertiary);font-size:12px;font-weight:510}.members-table tbody tr{transition:background-color var(--duration-fast) var(--ease)}.members-table tbody tr:hover{background:var(--bg-hover)}.role-badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:510}.role-badge.admin{background:var(--info-bg);color:var(--info)}.role-badge.member{background:var(--bg-tertiary);color:var(--text-secondary)}.member-form{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px}.member-form h2{font-size:18px;font-weight:590;letter-spacing:-.012em;margin:0 0 14px}.member-form .fields{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.member-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:510;color:var(--text-secondary)}.member-form input,.member-form select{min-height:48px;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 12px;font-size:16px;font-family:inherit;min-width:200px;background:var(--bg-tertiary);color:var(--text-primary)}.member-form .hint{font-size:13px;color:var(--text-tertiary);margin:0 0 12px}.mini-button{min-height:44px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:border-color var(--duration-fast) var(--ease)}.mini-button:hover{border-color:var(--border-strong)}.signup-form .fields{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px}.signup-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:510;color:var(--text-secondary);flex:1 1;min-width:200px}.signup-form input{min-height:46px;padding:0 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary)}.plan-picker{border:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.plan-picker legend{font-size:14px;font-weight:510;color:var(--text-secondary);margin-bottom:8px}.plan-option{display:flex;align-items:center;gap:12px;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:12px 16px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease)}.plan-option:hover{border-color:var(--border-strong)}.plan-option:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.plan-option input{width:20px;height:20px}.plan-option .plan-name{flex:1 1;font-weight:510}.plan-option .plan-price{font-weight:590;color:var(--accent-text);font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}