:root{--bg: #f6f7fb;--text: #111827;--muted: #6b7280;--card: #ffffff;--border: #e5e7eb;--primary: #3b82f6;--primary-hover: #2563eb;--tile-color: #e5e7eb;--kanban-gap: 14px;--insert-line-w: 4px;--radius: 10px;--focus-ring: 0 0 0 3px rgba(59,130,246,.22);--btn-h: 36px;--btn-h-sm: 30px;--sidebar-w: 250px}*{box-sizing:border-box}html,#root{height:100%}body{min-height:100%;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body::-webkit-scrollbar{display:none;height:0;width:0}.container{margin:10px auto;padding:0 16px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.site-header{display:flex;align-items:center;justify-content:space-between;background:#f1f5f9;padding:5px 20px 5px 5px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40;gap:28px;padding-left:calc(var(--sidebar-w) + 5px)}.site-header__left{display:flex;align-items:center;gap:24px}.logo-btn{margin:0;font-size:20px;cursor:pointer}.logo-btn__image{display:block;height:28px;width:auto}.main-nav{display:flex;gap:16px}.main-nav a{text-decoration:none;color:#1f2937;font-weight:500;padding:6px 10px;border-radius:6px}.main-nav a:hover{background:#e2e8f0}.site-header__right{display:flex;gap:8px}.button--danger{background:#dc2626}.button--danger:hover{background:#b91c1c}.button--danger.button--ghost{background:transparent;color:#dc2626;border-color:#dc2626}.button--danger.button--ghost:hover{background:#fee2e2}.btn-row{display:flex;gap:8px;margin-bottom:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--btn-h);padding:0 12px;border-radius:var(--radius);font-size:14px;font-weight:600;background:var(--primary);color:#fff;border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease}.button:hover{background:var(--primary-hover)}.button:active{transform:translateY(1px)}.button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.button:disabled{opacity:.6;cursor:not-allowed}.button--ghost{background:#fff;color:var(--text);border-color:var(--border)}.button--ghost:hover{background:#f8fafc}.button--secondary{background:#10b981}.button--secondary:hover{background:#059669}.button--small{height:var(--btn-h-sm);padding:0 10px;font-size:13px}.icon-btn{background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px 8px;cursor:pointer;line-height:1}.icon-btn:hover{background:#f3f4f6}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.icon-btn--square{padding:6px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px}.input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:14px}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}textarea.input{height:auto;min-height:80px}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);color:var(--muted);background:#fff}.board-grid{gap:14px}.board-tile{height:110px;padding:12px;border-radius:var(--radius);overflow:hidden}.board-tile__name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-tile:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-form{max-width:360px;margin:60px auto;display:grid;gap:10px}.auth-form h3{margin-bottom:4px}.actions{display:flex;gap:8px;align-items:center}.error{color:#dc2626;font-size:13px}.muted{color:var(--muted)}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}.board-tile{color:#1f2937;text-shadow:none;background:var(--tile-color, #eef2f7);border:1px solid rgba(0,0,0,.06);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:120px;border-radius:12px;box-shadow:0 2px 6px #00000014;display:flex;align-items:end;padding:12px;cursor:pointer;position:relative;transition:transform .18s ease,box-shadow .18s ease}.board-tile:hover{filter:none;box-shadow:0 6px 14px #0000001f}.board-tile__name{font-weight:600}.board-tile--adder{background:#f8fafc;color:#475569;border:2px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;padding:12px;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.board-tile--adder:hover,.board-tile--adder:focus{background:#f1f5f9;border-color:#94a3b8;color:#1e293b;box-shadow:0 0 0 3px #94a3b859;outline:none}.board-tile--adder:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.board-tile__adder-inner{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:14px}.board-tile--adder .plus{font-size:34px;line-height:1}.board-tile{transition:transform .18s ease,box-shadow .18s ease}.board-tile:before,.board-tile:after{content:none!important}.board-tile:hover,.board-tile:focus-visible{transform:translateY(-4px);box-shadow:0 6px 14px #0000001f}@media(prefers-reduced-motion:reduce){.board-tile:hover,.board-tile:focus-visible{transform:none}}.kanban{display:flex;align-items:flex-start;gap:var(--kanban-gap);overflow-x:auto;padding:0 calc(var(--kanban-gap)/2 + var(--insert-line-w)/2) 8px}.kanban{overflow-x:auto;scrollbar-width:none}.kanban::-webkit-scrollbar{display:none!important}.kanban__column{margin-top:2px;background:var(--card);border:1px solid var(--border);border-radius:12px;min-width:280px;max-width:320px;flex:0 0 auto;display:flex;flex-direction:column;max-height:72vh;box-shadow:0 2px 6px #0000000f;transition:box-shadow .12s ease,transform .12s ease;position:relative}.kanban__column.insert-before:before,.kanban__column.insert-after:after{content:"";position:absolute;top:4px;bottom:4px;width:var(--insert-line-w);border-radius:2px;background:var(--primary);box-shadow:0 0 0 2px #3b82f640;pointer-events:none}.kanban__column.insert-before:before{left:calc(-.5 * var(--kanban-gap) - var(--insert-line-w)/2)}.kanban__column.insert-after:after{right:calc(-.5 * var(--kanban-gap) - var(--insert-line-w)/2)}.kanban__column.col-drop-target{outline:2px dashed var(--primary);outline-offset:0}.kanban__tasks.is-over{outline:2px dashed var(--primary);outline-offset:2px}.kanban__column-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:6px;padding:10px 12px;position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--border);border-top-left-radius:12px;border-top-right-radius:12px;z-index:1;cursor:pointer}.kanban__column-header.is-readonly{cursor:default}.kanban__column-title{font-weight:700}.kanban__column-count{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.kanban__column-actions{display:inline-flex;gap:6px;opacity:.75}.kanban__column:hover .kanban__column-actions{opacity:1}.kanban__tasks{padding:12px;display:grid;gap:10px;overflow-y:auto;cursor:pointer;flex:1 1 auto}.tasks{list-style:none;padding:0;margin:0;display:grid;gap:10px}.task{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.task:hover{background:#f9fafb}.task__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.task__desc{margin:0;color:var(--muted)}.task:active{cursor:grabbing}.task{box-shadow:0 1px 2px #0000000d;position:relative}.task.task-insert-before:before,.task.task-insert-after:after{content:"";position:absolute;left:-6px;right:-6px;height:4px;background:var(--primary);border-radius:2px;box-shadow:0 0 0 2px #3b82f640;pointer-events:none}.task.task-insert-before:before{top:-6px}.task.task-insert-after:after{bottom:-6px}.kanban__column--adder{min-width:280px;max-width:320px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);background:#f8fafc;color:#475569;cursor:pointer;border-radius:12px;font-weight:500;padding:16px;-webkit-user-select:none;user-select:none;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.kanban__column--adder:hover,.kanban__column--adder:focus{background:#f1f5f9;border-color:#94a3b8;color:#1e293b;box-shadow:0 0 0 3px #94a3b859;outline:none}.kanban__column--adder:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.kanban__column-adder-inner{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:14px}.kanban__column--adder .plus{font-size:32px;line-height:1}.kanban::-webkit-scrollbar,.kanban__tasks::-webkit-scrollbar{height:8px;width:8px}.kanban::-webkit-scrollbar-thumb,.kanban__tasks::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.kanban::-webkit-scrollbar-track,.kanban__tasks::-webkit-scrollbar-track{background:transparent}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:10px 0 6px}.sidebar__title{color:var(--muted);font-weight:600}.sidebar__actions{display:flex;align-items:center}.sidebar__add{background:transparent!important;border:none!important;color:#94a3b8;width:28px;height:28px;border-radius:6px}.sidebar__add:hover{background:#f1f5f9!important;color:#475569}.sidebar__top{display:flex;align-items:center;justify-content:space-between;padding:10px 0 8px}.sidebar__logo{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;color:inherit;cursor:pointer;padding:6px;border-radius:8px}.sidebar__logo:hover{background:#f1f5f9}.logo-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;font-weight:800}.logo-text{font-weight:800}.proj-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:#fff;font-weight:700;font-size:12px}.sidebar__nav{display:grid;gap:6px}.app-sidebar{z-index:35}.app-shell{position:relative;padding:10px 16px}.hover-reveal{display:none!important}.app-sidebar{padding:0 16px;display:flex;flex-direction:column;gap:10px;width:var(--sidebar-w);height:100%;position:fixed;top:0;left:0;bottom:0;background:var(--card);border-right:1px solid var(--border);box-shadow:2px 0 6px #0000001a;z-index:35}.app-content{margin-left:var(--sidebar-w);overflow-x:visible;scrollbar-width:none;-ms-overflow-style:none}.app-content::-webkit-scrollbar{height:0;display:none}.app-shell.is-expanded .app-content,.app-shell.is-collapsed .app-content{margin-left:var(--sidebar-w)}.app-shell.is-collapsed .app-sidebar,.app-shell.is-expanded .app-sidebar{transform:none}.tree__boards{max-height:320px;overflow-y:auto;padding:6px;background:#fff;border-top:1px solid var(--border)}.tree__boards::-webkit-scrollbar{width:8px}.tree__boards::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.tree__boards::-webkit-scrollbar-track{background:transparent}.tree__board{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:transparent;border:1px solid transparent;cursor:pointer;color:inherit;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .04s ease,color .15s ease}.tree__board:hover{background:#f8fafc;border-color:var(--border)}.tree__board:active{transform:translateY(1px)}.tree__board:focus-visible{outline:none;box-shadow:var(--focus-ring);background:#fff}.tree__board.is-active{background:#eef2ff;border-color:#c7d2fe;color:#1e293b;font-weight:600;box-shadow:inset 3px 0 0 var(--primary)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#e5e7eb;color:#374151;border:1px solid var(--border);overflow:hidden;-webkit-user-select:none;user-select:none}.avatar img{display:block;width:100%;height:100%;object-fit:cover}.avatar__initials{font-weight:700}.avatar--xs{width:22px;height:22px;font-size:10px}.avatar--sm{width:28px;height:28px;font-size:12px}.avatar--md{width:36px;height:36px;font-size:14px}.avatar--lg{width:112px;height:112px;font-size:28px}.task__assignees{display:inline-flex;align-items:center;gap:6px}.profile-avatar{position:relative;display:inline-block}.profile-avatar__edit{position:absolute;right:-6px;bottom:-6px;width:36px;height:36px;border-radius:999px;background:var(--primary);color:#fff;border:2px solid #fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 10px #00000026}.profile-avatar__edit:hover{background:var(--primary-hover)}.profile-avatar__edit:disabled{opacity:.6;cursor:not-allowed}.profile__name{font-weight:700;font-size:20px}.profile__email{color:var(--muted);font-size:14px}.hidden-file-input{display:none}.user-ms{position:relative;width:100%}.user-ms__control{display:block;width:100%;text-align:left;cursor:pointer;min-height:38px}.user-ms__chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;background:#eef2f7;border:1px solid var(--border);padding:2px 5px;border-radius:999px;font-size:12px}.chip__remove{background:transparent;border:none;cursor:pointer;padding:0 4px;font-size:14px;color:#64748b}.chip__remove:hover{color:#0f172a}.user-ms__dropdown{position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000026;overflow:hidden}.user-ms__search{padding:8px;border-bottom:1px solid var(--border)}.user-ms__list{max-height:240px;overflow:auto;display:grid}.user-ms__item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:transparent;border:none;cursor:pointer;text-align:left}.user-ms__item:hover{background:#f8fafc}.user-ms__item.is-checked{background:#eef2ff}.user-ms__meta{display:grid}.user-ms__name{font-weight:600}.user-ms__email{font-size:12px;color:var(--muted)}.user-ms__check{margin-left:auto;font-weight:700;color:var(--primary)}.user-ms__actions{padding:8px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.user-menu{position:relative}.user-chip{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border);color:var(--text);padding:4px 8px 4px 4px;border-radius:999px;cursor:pointer}.user-chip:hover{background:#eef2f7}.user-chip:focus{outline:2px solid var(--primary);outline-offset:2px}.user-chip__name{font-size:14px;font-weight:600}.user-menu__dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;min-width:180px;padding:6px;z-index:50}.dropdown__item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:8px 10px;border-radius:8px;cursor:pointer}.dropdown__item:hover{background:#f1f5f9}.dtp{position:relative;width:100%}.dtp__control{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer}.dtp__icon{margin-left:8px;opacity:.6}.dtp__popup{position:absolute;z-index:60;top:calc(100% + 6px);left:0;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000026;width:min(320px,92vw);padding:10px}.dtp__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dtp__nav{background:transparent;border:1px solid var(--border);border-radius:6px;padding:2px 8px;cursor:pointer}.dtp__nav:hover{background:#f3f4f6}.dtp__month{font-weight:700;text-transform:capitalize}.dtp__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:6px 0;color:var(--muted);font-size:12px}.dtp__wd{text-align:center}.dtp__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dtp__day{height:32px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer}.dtp__day:hover{background:#eef2f7}.dtp__day.is-today{background:#e7f0ff;border-color:#c9ddff}.dtp__day.is-selected{background:var(--primary);color:#fff;border-color:var(--primary)}.dtp__day.is-empty{visibility:hidden}.dtp__time{display:flex;align-items:center;gap:8px;margin-top:8px}.dtp__time-input{width:64px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:50}.modal__overlay{position:absolute;inset:0;background:#1118278c}.modal__content{position:relative;width:min(640px,92vw);background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #0003}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal__body{display:grid;gap:12px;padding:16px}.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.modal__footer--with-delete{justify-content:space-between}.modal__actions-right{display:flex;gap:8px}.field{display:grid;gap:6px}.field__label{font-size:13px;color:var(--muted)}textarea.input{resize:vertical}.task__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;justify-content:space-between}.tag{display:inline-flex;align-items:center;gap:6px;background:#f3f4f6;color:#374151;border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px}.modal__close{background:transparent;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.modal__close:hover{background:#f1f5f9;color:var(--text)}.modal__close:focus{outline:2px solid var(--primary);outline-offset:2px}.project-page{padding:0}.project-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.project-title{margin:0}.project-layout{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:0}.project-sidebar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:0 2px 6px #0000000f;align-self:start;position:sticky;top:10px;width:260px;overflow:hidden;will-change:width;transition:width .25s ease,padding .2s ease}.project-sidebar.is-collapsed{width:62px;padding:8px}.project-sidebar__header{display:flex;align-items:center;gap:8px;justify-content:flex-start}.project-sidebar .board-selector__add-btn{flex:1 1 auto;height:44px;display:inline-flex;align-items:center;justify-content:center;font-weight:600;text-align:center;background:var(--primary);color:#fff;border-color:var(--primary)}.project-sidebar .board-selector__add-btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.project-sidebar .board-selector__add-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.project-sidebar.is-collapsed .board-selector__add-btn{display:none}.project-board-list{display:grid;gap:6px;padding-top:8px}.project-board-list.project-board-list--mini{align-content:start;grid-auto-rows:min-content}.project-board-item{display:flex;align-items:center;gap:8px;padding:8px 10px;width:100%;background:#fff;border:1px solid var(--border);border-radius:10px;cursor:pointer;color:inherit;text-align:left;white-space:nowrap;overflow:visible;text-overflow:ellipsis;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .04s ease,color .15s ease}.project-board-item:hover{background:#f8fafc;border-color:var(--border)}.project-board-item:active{transform:translateY(1px)}.project-board-item:focus-visible{outline:none;box-shadow:var(--focus-ring);background:#fff}.project-board-item.is-active{background:#eef2ff;border-color:#c7d2fe;color:#1e293b;font-weight:600;box-shadow:inset 3px 0 0 var(--primary)}.project-board-item.project-board-item--mini{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;border-radius:10px;background:#fff;border:1px solid var(--border);text-transform:uppercase}.project-board-item.project-board-item--mini.is-active{background:#eef2ff;border-color:#c7d2fe;color:#1e293b;box-shadow:inset 0 0 0 2px #6366f159}.project-layout:has(.project-sidebar.is-collapsed){grid-template-columns:auto 1fr}.sidebar__loading,.sidebar__muted{color:var(--muted);font-size:13px;padding:8px 10px}.route-fade{animation:routeFadeIn .14s ease}@keyframes routeFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.kanban.is-loading{opacity:.6;transition:opacity .15s ease;pointer-events:none}.project-layout.is-dimmed{opacity:.7;transition:opacity .18s ease;pointer-events:none}.task__row{display:flex;align-items:flex-start;gap:10px}.task__check{width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:2px solid var(--border);background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}button.task__check:hover{border-color:var(--primary)}.task__check.is-checked{background:var(--primary);border-color:var(--primary);color:#fff}.task__body{flex:1 1 auto;min-width:0}.task--completed{opacity:.75}.task--completed .task__header b{text-decoration:line-through;color:var(--muted)}.kebab-anchor{position:relative;display:inline-block}.kebab-btn{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:inherit;cursor:pointer}.kebab-btn:hover{background:#f3f4f6}.kebab-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.kebab-icon{opacity:.6}.kebab-btn:hover .kebab-icon{opacity:1}.project-board-list--mini .kebab-anchor{display:none}.kebab-menu{right:0;left:auto;min-width:180px}.members-list{display:grid;gap:8px}.list__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#fff;border:1px solid var(--border);border-radius:10px}.list__item:hover{background:#f8fafc}.list__item strong{font-weight:700}.list__item .badge{margin-left:auto}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 2px 6px #0000000f}.list__item.is-active{background:#eef2ff;border-color:#c7d2fe;box-shadow:inset 3px 0 0 var(--primary)}.checkbox{display:inline-flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none;cursor:pointer}.checkbox input{width:16px;height:16px}.checkbox.is-disabled{opacity:.6;cursor:not-allowed}.roles-pane{padding:10px}.roles-toolbar{margin-bottom:4px}.roles-list{max-height:360px;overflow:auto;display:grid;gap:8px;padding-right:4px}.roles-item{cursor:pointer;text-align:left;width:100%;border:1px solid var(--border);background:#fff;border-radius:10px}.roles-item:hover{background:#f8fafc}.roles-item .badge{background:#f1f5f9;border-color:#e2e8f0}.role-dot{width:12px;height:12px;border-radius:999px;box-shadow:inset 0 0 0 1px #00000014}.section-title{font-weight:700;color:#374151}.perm-grid{align-items:start}.roles-list::-webkit-scrollbar{width:8px;height:8px}.roles-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.roles-list::-webkit-scrollbar-track{background:transparent}input[type=color]{border-radius:50%;width:28px;height:28px;padding:0;border:none;cursor:pointer;background:none}input[type=color]:focus-visible{outline:none;box-shadow:var(--focus-ring)}input[type=color]:disabled{opacity:.6;cursor:not-allowed}input[type=color]::-webkit-color-swatch-wrapper{padding:0;border-radius:50%}input[type=color]::-webkit-color-swatch{border-radius:50%;border:none;width:100%;height:100%}input[type=color]::-moz-color-swatch{border-radius:50%;border:none;width:100%;height:100%}
