:root{--color-accent: #1f8b5b;--color-accent-strong: #179969;--color-accent-dark: #0f5133;--color-accent-button: #1a7a50;--color-accent-button-hover: #156843;--color-accent-soft: #eef6f1;--color-accent-line: #cfe3d8;--color-ink: #16181a;--color-muted: #5f665f;--color-subtle: #737a73;--color-secondary: #4b524b;--color-line: #e4e7e3;--color-line-soft: #eef0ee;--color-input-line: #dfe3df;--color-bg: #eef0ee;--color-surface: #fff;--color-surface-soft: #f7f8f7;--color-hover: #fafbfa;--color-control-hover: #f1f3f1;--color-menu-hover: #f4f6f4;--color-segment: #e8ebe8;--color-danger: #b4342a;--color-danger-strong: #92291f;--color-danger-soft: #fbeceb;--color-danger-line: #f0c2bd;--color-focus: #1f8b5b;--color-backdrop: rgb(16 24 20 / 35%);--color-role-owner-bg: #dfeee7;--color-role-owner-text: #0f5133;--color-role-admin-bg: #eae6f2;--color-role-admin-text: #5a4480;--color-role-editor-bg: #f2e8dc;--color-role-editor-text: #7a5a2e;--color-role-reader-bg: #eef1f4;--color-role-reader-text: #55606b;--color-warning-bg: #f7ecd9;--color-warning-text: #7a5a2e;--color-warning-line: #e0cba2;--color-avatar-0-bg: #d1f0d9;--color-avatar-0-text: #1c5c32;--color-avatar-1-bg: #d6e4ff;--color-avatar-1-text: #1b3f8f;--color-avatar-2-bg: #fff1c2;--color-avatar-2-text: #7a5600;--color-avatar-3-bg: #e9d8fd;--color-avatar-3-text: #4f2a8a;--color-avatar-4-bg: #cdf1ec;--color-avatar-4-text: #0f5c52;--color-avatar-5-bg: #fddbe9;--color-avatar-5-text: #8a1f52;--color-avatar-6-bg: #ffe1c2;--color-avatar-6-text: #8a4600;--color-avatar-7-bg: #d2f0fb;--color-avatar-7-text: #0e5670;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--font-size-xs: 11px;--font-size-caption: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 15px;--font-size-xl: 16px;--font-size-title: 20px;--font-size-heading: 26px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-ui: 1.5;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-round: 999px;--shadow-menu: 0 22px 44px -18px rgb(16 24 20 / 32%);--shadow-dialog: 0 24px 64px -20px rgb(16 24 20 / 35%);--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 14px;--space-8: 16px;--space-9: 18px;--space-10: 20px;--space-11: 22px;--space-12: 24px;--space-13: 26px;--space-14: 28px;--space-16: 32px;--space-17: 34px;--space-20: 40px;--space-24: 48px;--space-32: 64px;--control-height: 36px;--control-height-sm: 32px;--control-height-lg: 38px;--avatar-size: 26px;--avatar-square-size: 44px;--icon-size: 14px;--menu-width: 232px;--dialog-width: 440px;--opacity-disabled: .55;--border-width: 1px;--focus-width: 2px}:where(.ui-btn,.ui-input,.ui-select,.ui-tag,.ui-avatar,.ui-menu,.ui-menu-item,.ui-dialog,.ui-card,.ui-empty){box-sizing:border-box;font-family:var(--font-ui)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-4);min-height:var(--control-height);padding:var(--space-3) var(--space-6);border:var(--border-width) solid transparent;border-radius:var(--radius-md);background:var(--color-accent-button);color:var(--color-surface);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:var(--line-height-ui);text-decoration:none;white-space:nowrap;cursor:pointer}.ui-btn:hover,.ui-btn-primary:hover{background:var(--color-accent-button-hover);color:var(--color-surface)}.ui-btn-primary{background:var(--color-accent-button);color:var(--color-surface)}.ui-btn-secondary{border-color:var(--color-input-line);background:var(--color-surface);color:var(--color-ink)}.ui-btn-secondary:hover{border-color:var(--color-accent);background:var(--color-surface);color:var(--color-accent)}.ui-btn-ghost{background:transparent;color:var(--color-muted)}.ui-btn-ghost:hover{background:var(--color-control-hover);color:var(--color-ink)}.ui-btn-danger{background:var(--color-danger);color:var(--color-surface)}.ui-btn-danger:hover{background:var(--color-danger-strong);color:var(--color-surface)}.ui-btn-sm{min-height:var(--control-height-sm);padding:var(--space-2) var(--space-6);font-size:var(--font-size-sm)}.ui-btn-lg{min-height:var(--control-height-lg);padding-inline:var(--space-8)}.ui-btn-icon{width:var(--control-height-sm);min-height:var(--control-height-sm);padding:var(--space-2);flex:none}.ui-btn:disabled,.ui-menu-item:disabled{opacity:var(--opacity-disabled);cursor:default}:where(.ui-btn,.ui-input,.ui-select,.ui-menu-item):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--space-1)}.ui-icon{display:inline-block;width:var(--icon-size);height:var(--icon-size);flex:none}.ui-input,.ui-select{width:100%;min-height:var(--control-height);padding:var(--space-3) var(--space-6);border:var(--border-width) solid var(--color-input-line);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);font-size:var(--font-size-md);line-height:var(--line-height-ui)}.ui-input::placeholder{color:var(--color-subtle)}.ui-input:focus,.ui-select:focus{border-color:var(--color-accent)}.ui-select{cursor:pointer}.ui-tag{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--color-role-reader-bg);color:var(--color-role-reader-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-ui);white-space:nowrap}.ui-tag-owner,.ui-tag-success{background:var(--color-role-owner-bg);color:var(--color-role-owner-text)}.ui-tag-admin{background:var(--color-role-admin-bg);color:var(--color-role-admin-text)}.ui-tag-editor,.ui-tag-warning{background:var(--color-role-editor-bg);color:var(--color-role-editor-text)}.ui-tag-reader{background:var(--color-role-reader-bg);color:var(--color-role-reader-text)}.ui-tag-danger{background:var(--color-danger-soft);color:var(--color-danger)}.ui-avatar{display:inline-grid;place-items:center;width:var(--avatar-size);height:var(--avatar-size);flex:none;border-radius:var(--radius-round);background:var(--color-role-owner-bg);color:var(--color-role-owner-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1;-webkit-user-select:none;user-select:none}.ui-avatar-square{width:var(--avatar-square-size);height:var(--avatar-square-size);border-radius:var(--radius-lg);font-size:var(--font-size-lg)}.ui-avatar.avatar-color-0{background:var(--color-avatar-0-bg);color:var(--color-avatar-0-text)}.ui-avatar.avatar-color-1{background:var(--color-avatar-1-bg);color:var(--color-avatar-1-text)}.ui-avatar.avatar-color-2{background:var(--color-avatar-2-bg);color:var(--color-avatar-2-text)}.ui-avatar.avatar-color-3{background:var(--color-avatar-3-bg);color:var(--color-avatar-3-text)}.ui-avatar.avatar-color-4{background:var(--color-avatar-4-bg);color:var(--color-avatar-4-text)}.ui-avatar.avatar-color-5{background:var(--color-avatar-5-bg);color:var(--color-avatar-5-text)}.ui-avatar.avatar-color-6{background:var(--color-avatar-6-bg);color:var(--color-avatar-6-text)}.ui-avatar.avatar-color-7{background:var(--color-avatar-7-bg);color:var(--color-avatar-7-text)}.ui-menu{position:absolute;top:calc(100% + var(--space-3));right:0;z-index:20;display:flex;flex-direction:column;gap:var(--space-1);width:var(--menu-width);max-width:calc(100vw - var(--space-16));padding:var(--space-3);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-menu)}.ui-menu[hidden]{display:none}.ui-menu-item{display:flex;align-items:center;gap:var(--space-5);width:100%;padding:var(--space-3) var(--space-5);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font-size:var(--font-size-md);line-height:var(--line-height-ui);text-align:left;text-decoration:none;cursor:pointer}.ui-menu-item:hover{background:var(--color-menu-hover);color:var(--color-ink)}.ui-menu-item-danger{color:var(--color-danger)}.ui-menu-item-danger:hover{background:var(--color-danger-soft);color:var(--color-danger)}.ui-menu-separator{height:var(--border-width);margin:var(--space-2);background:var(--color-line-soft)}.ui-menu-icon{width:var(--space-8);height:var(--space-7);flex:none;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);text-align:center}.ui-menu-item>.ui-icon{width:var(--space-8);height:var(--space-7)}.ui-menu-item-danger .ui-menu-icon{color:var(--color-danger)}.ui-dialog{width:var(--dialog-width);max-width:calc(100vw - var(--space-16));max-height:calc(100dvh - var(--space-16));padding:var(--space-12);border:var(--border-width) solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-dialog);font-size:var(--font-size-md);line-height:var(--line-height-ui);overflow-wrap:anywhere;overflow:auto}.ui-dialog-head{display:flex;align-items:center;gap:var(--space-5)}.ui-dialog-head>:where(h1,h2,h3,.ui-dialog-title,.fe-modal__title,.sh-modal__title){flex:1 1 auto;min-width:0;margin:0;overflow-wrap:anywhere}.ui-dialog-head>.help-link{flex:none;order:90;font-size:var(--font-size-caption)}.ui-dialog-head>.ui-dialog-close{flex:none;order:100}.ui-dialog-close.ui-btn{color:var(--color-muted)}.ui-dialog-close.ui-btn:hover{background:var(--color-control-hover);color:var(--color-ink)}.ui-dialog-close .ui-icon{width:var(--space-6);height:var(--space-6)}.ui-dialog::backdrop,.ui-dialog-backdrop{background:var(--color-backdrop)}.ui-dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:var(--space-8)}.ui-dialog-title{margin:0 0 var(--space-8);font-size:var(--font-size-title);font-weight:var(--font-weight-semibold)}.ui-dialog-head>.ui-dialog-title{margin:0;font-size:inherit}.ui-dialog-body{margin:0 0 var(--space-10)}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-10)}.ui-card{border:var(--border-width) solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface)}.ui-banner-warning{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;padding:var(--space-4) var(--space-8);border-bottom:var(--border-width) solid var(--color-warning-line);background:var(--color-warning-bg);color:var(--color-warning-text);font-family:var(--font-ui);font-size:var(--font-size-sm);line-height:var(--line-height-ui)}.ui-banner-warning .ui-btn{flex:none}.ui-banner-warning [role=alert]{margin:0;color:var(--color-danger)}.ui-empty{padding:var(--space-24) var(--space-10);color:var(--color-muted);font-size:var(--font-size-md);text-align:center}.ui-empty .ui-btn{margin-top:var(--space-4)}:where(input[type=checkbox],input[type=radio]){appearance:none;-webkit-appearance:none;box-sizing:border-box;width:var(--space-8);height:var(--space-8);margin:0;flex:none;vertical-align:-3px;border:var(--border-width) solid var(--color-input-line);border-radius:var(--radius-xs);background:var(--color-surface) no-repeat center;cursor:pointer}:where(input[type=radio]){border-radius:var(--radius-round)}:where(input[type=checkbox],input[type=radio]):hover:not(:disabled){border-color:var(--color-accent)}:where(input[type=checkbox]):checked{border-color:var(--color-accent);background-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.6 6.2 4.9 8.5 9.4 3.7' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:where(input[type=radio]):checked{border-color:var(--color-accent);background-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='2.6' fill='%23fff'/%3E%3C/svg%3E")}:where(input[type=checkbox]):indeterminate{border-color:var(--color-accent);background-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.2 6h5.6' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}:where(input[type=checkbox],input[type=radio]):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--space-1)}:where(input[type=checkbox],input[type=radio]):disabled{border-color:var(--color-line);opacity:var(--opacity-disabled);cursor:default}
