*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#1a1a1a;background:#f5f5f5;min-height:100vh;display:flex;align-items:center;justify-content:center}#root{width:100%;max-width:400px;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}form{display:flex;flex-direction:column;gap:1rem}h1,h2{margin-bottom:.5rem}label{display:block;font-weight:500;margin-bottom:.25rem}input{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer}button[type=submit]{background:#0070f3;color:#fff}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}[role=alert]{padding:.75rem;background:#fee2e2;color:#b91c1c;border-radius:4px;font-size:.875rem}body:has(.app-shell){align-items:stretch;overflow:hidden}body:has(.app-shell) #root{max-width:none;padding:0;display:flex;flex-direction:column;height:100vh}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{height:48px;flex-shrink:0;background:#1a1a1a;color:#fff;display:flex;align-items:center;padding:0 1rem;gap:1rem}.topbar__brand{font-weight:600;font-size:1rem;flex:1}.topbar__user{font-size:.875rem;color:#ccc}.topbar__signout{background:transparent;border:1px solid #555;color:#ccc;padding:.25rem .75rem;border-radius:4px;font-size:.875rem;cursor:pointer}.topbar__signout:hover{background:#333;color:#fff}.cmd-menu{position:relative;flex:0 0 280px}.cmd-menu__field{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:3px 8px;background:#2a2a2a;border:1px solid #444;border-radius:6px;cursor:text;min-height:28px}.cmd-menu__field:focus-within{border-color:#6366f1;background:#222}.cmd-menu__input{flex:1;min-width:60px;background:transparent;border:none;color:#fff;font-size:.8125rem;outline:none;padding:0}.cmd-menu__input::placeholder{color:#777}.cmd-menu__input:disabled{opacity:.5}.cmd-menu__pill{display:inline-flex;align-items:center;padding:1px 7px;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap;line-height:1.5}.cmd-menu__pill--cmd{background:#4f46e5;color:#fff}.cmd-menu__pill--arg{background:#374151;color:#d1d5db}.cmd-menu__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;overflow:hidden}.cmd-menu__option{padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:1px}.cmd-menu__option--active{background:#ede9fe}.cmd-menu__option:hover{background:#f3f4f6}.cmd-menu__option--active:hover{background:#ede9fe}.cmd-menu__option-row{display:flex;align-items:center;gap:6px}.cmd-menu__option-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cmd-menu__option-label{font-size:.8125rem;font-weight:600;color:#111827}.cmd-menu__option-desc{font-size:.75rem;color:#6b7280}.cmd-menu__error{font-size:.75rem;color:#fca5a5;margin-top:3px;padding:0 2px}.board-area{flex:1;overflow:auto;background:#f0f2f5;padding:1rem}.board-view{display:flex;flex-direction:column;gap:1rem}.board-view__columns{display:flex;flex-direction:row;gap:12px;align-items:flex-start}.team-column{background:#fff;border-radius:8px;min-width:220px;flex-shrink:0;padding:.75rem;box-shadow:0 1px 3px #00000014}.team-column__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.25rem}.team-column__drag-handle{cursor:grab;color:#9ca3af;font-size:1rem;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none;opacity:1;transition:opacity .15s}.team-column__drag-handle:active{cursor:grabbing}.team-column__name{font-size:.875rem;font-weight:600;color:#374151;margin:0}.team-name-editor{flex:1;min-width:0;cursor:pointer}.team-name-editor__display{display:block;font-size:.875rem;font-weight:600;color:#374151;padding:2px 4px;border-radius:4px;border:1px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-name-editor__display:hover{border-color:#d1d5db;background:#f9fafb}.team-name-editor__form{display:flex;align-items:center;gap:2px}.team-name-editor__input{font-family:inherit;font-size:.875rem;font-weight:600;color:#374151;border:1px solid #6366f1;border-radius:4px;padding:2px 4px;outline:none;flex:1;min-width:0}.team-name-editor__confirm{background:none;border:none;cursor:pointer;color:#6366f1;padding:2px;border-radius:3px;font-size:.875rem;line-height:1}.team-name-editor__confirm:hover:not(:disabled){background:#ede9fe}.team-name-editor__confirm:disabled{opacity:.4;cursor:not-allowed}.team-name-editor__error{font-size:.75rem;color:#dc2626;margin-top:2px}.team-column__count{background:#e5e7eb;color:#6b7280;font-size:.75rem;font-weight:600;border-radius:9999px;padding:0 .4rem;min-width:1.25rem;text-align:center}.team-column__cards{display:flex;flex-direction:column;gap:6px;min-height:80px}.card{border-radius:6px;padding:.5rem .625rem;min-height:40px;display:flex;flex-direction:row;align-items:center;gap:.5rem;font-size:.8125rem;background:#fff}.card--person{border:1px solid #e5e7eb}.card--ghost{border:1.5px dashed #d1d5db;opacity:.65;background:#f9fafb}.card--slot{border:1.5px dashed #d1d5db;background:transparent}.card__name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card__slot-label{font-style:italic;color:#9ca3af}.card__badge{font-size:.6875rem;font-weight:600;padding:.1rem .4rem;border-radius:9999px;white-space:nowrap}.card__badge--shared{background:#dbeafe;color:#1d4ed8}.card__badge--ghost{background:#f3f4f6;color:#6b7280}.parking-lot{background:#fff;border-radius:8px;padding:.75rem;box-shadow:0 1px 3px #00000014;width:100%}.parking-lot__title{font-size:.875rem;font-weight:600;color:#374151;margin:0 0 .5rem}.parking-lot__cards{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px}.parking-lot__empty{font-size:.8125rem;color:#9ca3af;font-style:italic}.timeline{height:64px;flex-shrink:0;background:#1e293b;color:#e2e8f0;position:relative;-webkit-user-select:none;user-select:none}.timeline__track{overflow-x:auto;height:100%;cursor:pointer;scrollbar-width:thin;scrollbar-color:#475569 transparent}.timeline__track::-webkit-scrollbar{height:4px}.timeline__track::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}.timeline__inner{position:relative;height:100%}.timeline__month{position:absolute;top:6px;font-size:.6875rem;color:#94a3b8;pointer-events:none;white-space:nowrap;padding-left:4px}.timeline__line{position:absolute;top:0;bottom:0;width:2px;pointer-events:none}.timeline__line--today{background:#f59e0b}.timeline__line--selected{background:#60a5fa}.timeline__marker{position:absolute;top:0;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none}.timeline__marker-line{width:1px;height:20px;background:#94a3b8}.timeline__marker-text{font-size:.625rem;color:#cbd5e1;white-space:nowrap;margin-top:2px;padding-left:3px}.topbar__roles-btn{background:transparent;border:1px solid #555;color:#ccc;padding:.25rem .75rem;border-radius:4px;font-size:.875rem;cursor:pointer}.topbar__roles-btn:hover{background:#333;color:#fff}.roles-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200}.roles-panel{position:fixed;top:0;right:0;bottom:0;width:360px;background:#fff;box-shadow:-4px 0 20px #0000002e;display:flex;flex-direction:column;z-index:201}.roles-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.roles-panel__title{font-size:1rem;font-weight:600;color:#111827;margin:0}.roles-panel__close{background:transparent;border:none;font-size:1rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:4px;line-height:1}.roles-panel__close:hover{background:#f3f4f6;color:#111827}.roles-panel__error{margin:.75rem 1.25rem 0;padding:.5rem .75rem;background:#fee2e2;color:#b91c1c;border-radius:4px;font-size:.8125rem;flex-shrink:0}.roles-panel__body{flex:1;overflow-y:auto;padding:.75rem 0}.roles-panel__empty{padding:.75rem 1.25rem;font-size:.875rem;color:#9ca3af;font-style:italic}.roles-panel__footer{border-top:1px solid #e5e7eb;padding:1rem 1.25rem;flex-shrink:0}.roles-panel__subtitle{font-size:.8125rem;font-weight:600;color:#374151;margin:0 0 .625rem}.roles-list{list-style:none;margin:0;padding:0}.roles-list__item{border-bottom:1px solid #f3f4f6}.roles-list__item:last-child{border-bottom:none}.roles-list__row{display:flex;align-items:center;gap:.625rem;padding:.5rem 1.25rem}.roles-list__drag-handle{cursor:grab;color:#9ca3af;font-size:1rem;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none}.roles-list__drag-handle:active{cursor:grabbing}.roles-list__swatch{width:16px;height:16px;border-radius:50%;flex-shrink:0;display:inline-block}.roles-list__name{flex:1;font-size:.875rem;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roles-list__action{background:transparent;border:1px solid #d1d5db;color:#374151;font-size:.75rem;padding:.2rem .5rem;border-radius:4px;cursor:pointer;white-space:nowrap}.roles-list__action:hover:not(:disabled){background:#f9fafb}.roles-list__action--danger{color:#dc2626;border-color:#fca5a5}.roles-list__action--danger:hover:not(:disabled){background:#fee2e2}.roles-list__action:disabled{opacity:.4;cursor:not-allowed}.roles-edit{padding:.625rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;background:#f9fafb}.roles-edit__name{font-size:.875rem;border:1px solid #6366f1;border-radius:4px;padding:.375rem .5rem;outline:none;color:#111827}.roles-edit__actions{display:flex;gap:.5rem}.roles-delete{padding:.625rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;background:#fff7f7}.roles-delete__label{font-size:.8125rem;color:#374151}.roles-delete__select{font-size:.875rem;border:1px solid #d1d5db;border-radius:4px;padding:.375rem .5rem;color:#111827;background:#fff}.roles-delete__actions{display:flex;gap:.5rem}.roles-btn{font-size:.8125rem;padding:.35rem .75rem;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.roles-btn:hover:not(:disabled){background:#f3f4f6}.roles-btn:disabled{opacity:.5;cursor:not-allowed}.roles-btn--primary{background:#6366f1;border-color:#6366f1;color:#fff}.roles-btn--primary:hover:not(:disabled){background:#4f46e5}.roles-btn--danger{background:#dc2626;border-color:#dc2626;color:#fff}.roles-btn--danger:hover:not(:disabled){background:#b91c1c}.roles-add{display:flex;gap:.5rem;margin-top:.5rem}.roles-add__name{flex:1;font-size:.875rem;border:1px solid #d1d5db;border-radius:4px;padding:.375rem .5rem;outline:none;color:#111827}.roles-add__name:focus{border-color:#6366f1}.color-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.5rem}.color-picker__swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;outline:none;transition:transform .1s}.color-picker__swatch:hover{transform:scale(1.15)}.color-picker__swatch--selected{border-color:#111827;transform:scale(1.15)}.board-loading,.board-error{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:.875rem}.events-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200}.events-panel{position:fixed;top:0;right:0;bottom:0;width:480px;background:#fff;box-shadow:-4px 0 20px #0000002e;display:flex;flex-direction:column;z-index:201}.events-panel__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.events-panel__title{font-size:1rem;font-weight:600;color:#111827;margin:0}.events-panel__close{background:transparent;border:none;font-size:1rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:4px;line-height:1}.events-panel__close:hover{background:#f3f4f6;color:#111827}.events-panel__filters{display:flex;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.events-panel__filter-label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:500;color:#6b7280}.events-panel__date-input{font-size:.875rem;border:1px solid #d1d5db;border-radius:4px;padding:.3rem .5rem;color:#111827;width:140px}.events-panel__date-input:focus{outline:none;border-color:#6366f1}.events-panel__error{margin:.75rem 1.25rem 0;padding:.5rem .75rem;background:#fee2e2;color:#b91c1c;border-radius:4px;font-size:.8125rem;flex-shrink:0}.events-panel__body{flex:1;overflow-y:auto;padding:.75rem 0}.events-panel__empty{padding:.75rem 1.25rem;font-size:.875rem;color:#9ca3af;font-style:italic}.events-list{list-style:none;margin:0;padding:0}.events-list__item{border-bottom:1px solid #f3f4f6}.events-list__item:last-child{border-bottom:none}.events-list__row{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem}.events-list__date{font-size:.75rem;color:#9ca3af;white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.events-list__type{font-size:.75rem;font-weight:600;color:#4f46e5;white-space:nowrap;flex-shrink:0;min-width:80px}.events-list__desc{flex:1;font-size:.8125rem;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.events-list__action{background:transparent;border:1px solid #d1d5db;color:#374151;font-size:.75rem;padding:.2rem .5rem;border-radius:4px;cursor:pointer;white-space:nowrap;flex-shrink:0}.events-list__action:hover{background:#f9fafb}.events-confirm{padding:.625rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;background:#fff7f7}.events-confirm__text{font-size:.8125rem;color:#374151}.events-confirm__actions{display:flex;gap:.5rem}.events-btn{font-size:.8125rem;padding:.35rem .75rem;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.events-btn:hover:not(:disabled){background:#f3f4f6}.events-btn:disabled{opacity:.5;cursor:not-allowed}.events-btn--danger{background:#dc2626;border-color:#dc2626;color:#fff}.events-btn--danger:hover:not(:disabled){background:#b91c1c}.org-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200}.org-panel{position:fixed;top:0;right:0;bottom:0;width:400px;background:#fff;box-shadow:-4px 0 20px #0000002e;display:flex;flex-direction:column;z-index:201}.org-panel__header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.org-panel__title{font-size:1rem;font-weight:600;color:#111827;margin:0}.org-panel__org-name{font-size:.8125rem;color:#6b7280;margin-top:.125rem;display:block}.org-panel__close{background:transparent;border:none;font-size:1rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:4px;line-height:1}.org-panel__close:hover{background:#f3f4f6;color:#111827}.org-panel__error{margin:.75rem 1.25rem 0;padding:.5rem .75rem;background:#fee2e2;color:#b91c1c;border-radius:4px;font-size:.8125rem;flex-shrink:0}.org-panel__toast{margin:.75rem 1.25rem 0;padding:.5rem .75rem;background:#d1fae5;color:#065f46;border-radius:4px;font-size:.8125rem;flex-shrink:0}.org-panel__actions{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.org-panel__body{flex:1;overflow-y:auto;padding:.75rem 0}.org-panel__empty{padding:.75rem 1.25rem;font-size:.875rem;color:#9ca3af;font-style:italic}.org-list{list-style:none;padding:0;margin:0}.org-list__item{padding:.625rem 1.25rem;border-bottom:1px solid #f3f4f6}.org-list__row{display:flex;align-items:center;gap:.5rem}.org-member__info{flex:1;min-width:0}.org-member__name{font-size:.875rem;font-weight:500;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-member__email{font-size:.75rem;color:#6b7280;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-member__badges{display:flex;gap:.25rem}.org-member__badge{font-size:.6875rem;font-weight:600;color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:.125rem .5rem}.org-member__actions{display:flex;gap:.25rem;flex-shrink:0}.org-btn{padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#374151;font-size:.8125rem;cursor:pointer;white-space:nowrap}.org-btn:hover:not(:disabled){background:#f9fafb}.org-btn:disabled{opacity:.5;cursor:not-allowed}.org-btn--primary{background:#2563eb;color:#fff;border-color:#2563eb}.org-btn--primary:hover:not(:disabled){background:#1d4ed8}.org-btn--danger{color:#b91c1c;border-color:#fca5a5}.org-btn--danger:hover:not(:disabled){background:#fee2e2}.org-btn--small{padding:.25rem .5rem;font-size:.75rem}
