:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu{background:var(--bg-popover);border:.5px solid var(--border-container);border-radius:var(--radius-8);min-width:220px;box-shadow:var(--shadow-12dp);z-index:1500;transform-origin:0 0;padding:6px;position:fixed}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu.is-open{animation:fbs-pop-in var(--dur-150) var(--ease-primary)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item{border-radius:var(--radius-4);width:100%;font-size:var(--t-body-size);color:var(--text-body);cursor:pointer;text-align:left;transition:background var(--dur-100), color var(--dur-100);background:0 0;border:0;align-items:center;gap:12px;padding:8px 12px;font-family:inherit;display:flex}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:hover,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:focus-visible{background:var(--bg-hover);color:var(--text-primary)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:focus-visible{outline:none}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item svg{color:var(--text-tertiary);flex-shrink:0}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:hover svg,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:focus-visible svg{color:var(--text-body)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive svg{color:var(--text-error)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive:hover,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive:focus-visible{background:var(--bg-danger-hover);color:var(--text-error)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive:hover svg,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--destructive:focus-visible svg{color:var(--text-error)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--disabled,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--disabled:hover,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:disabled,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:disabled:hover{color:var(--text-tertiary);cursor:default;background:0 0}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--disabled svg,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--disabled:hover svg,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:disabled svg,:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item:disabled:hover svg{color:var(--text-tertiary);opacity:.5}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__divider{background:var(--border-container);height:1px;margin:6px 0}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__group-label{padding:6px 12px 4px}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__sub-anchor{z-index:1;position:relative}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--submenu.is-active{background:var(--bg-hover);color:var(--text-primary)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item--submenu.is-active svg{color:var(--text-body)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu__item .ctx-menu__caret{width:12px;height:12px;margin-left:auto}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu.ctx-menu--sub{position:absolute;top:-6px;left:calc(100% + 6px)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu.ctx-menu--sub.ctx-menu--sub-left{left:auto;right:calc(100% + 6px)}:is(.proj-detail,.client-home,.review-session,.shell-menu) .ctx-menu.ctx-menu--sub.ctx-menu--sub-below{top:100%;left:0;right:auto}
:is(.proj-detail,.review-session) .version-list{flex-direction:column;gap:6px;display:flex}:is(.proj-detail,.review-session) .version-row{background:var(--bg-card);border:1px solid var(--border-container);border-radius:var(--radius-6);cursor:pointer;transition:background var(--dur-150), border-color var(--dur-150);align-items:center;gap:12px;padding:10px 12px;display:flex}:is(.proj-detail,.review-session) .version-row:hover{background:var(--bg-popover);border-color:var(--border-secondary)}:is(.proj-detail,.review-session) .version-row:focus{outline:none}:is(.proj-detail,.review-session) .version-row:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}:is(.proj-detail,.review-session) .version-row.is-selected,:is(.proj-detail,.review-session) .version-row.is-selected:hover{border-color:var(--accent-primary);background:#5b53ff1f}:is(.proj-detail,.review-session) .version-row__handle{color:var(--text-tertiary);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;display:inline-flex}:is(.proj-detail,.review-session) .version-row__handle:active{cursor:grabbing}:is(.proj-detail,.review-session) .version-row.is-dragging{opacity:.4}:is(.proj-detail,.review-session) .version-row--drop-target{box-shadow:inset 0 2px 0 0 var(--accent-primary)}:is(.proj-detail,.review-session) .version-row--drop-after{box-shadow:inset 0 -2px 0 0 var(--accent-primary)}:is(.proj-detail,.review-session) .version-row__thumb{border-radius:var(--radius-4);color:#ffffff59;background:linear-gradient(135deg,#1a1d2a,#0a0c14);flex-shrink:0;justify-content:center;align-items:center;width:96px;height:60px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 .5px #ffffff0f}:is(.proj-detail,.review-session) .version-row__thumb>svg{width:22px;height:22px}@media (max-width:640px){:is(.proj-detail,.review-session) .version-row__thumb{width:80px;height:50px}:is(.proj-detail,.review-session) .version-row__thumb :is(.thumb-duration,.thumb-comments){line-height:var(--t-caption-lh)}:is(.proj-detail,.review-session) .version-row__thumb .thumb-comments{height:18px}}:is(.proj-detail,.review-session) .version-row__thumb>img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}:is(.proj-detail,.review-session) .version-row__wave{width:100%;height:100%;display:block;position:absolute;inset:0}:is(.proj-detail,.review-session) .version-row__thumb--has-image>img{background-color:var(--checker-bg);background-image:var(--checker-image);background-size:var(--checker-size);background-position:var(--checker-pos)}:is(.proj-detail,.review-session) .version-row__dots{border-radius:var(--radius-4);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background var(--dur-150), color var(--dur-150);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}:is(.proj-detail,.review-session) .version-row__dots:hover{background:var(--bg-hover);color:var(--text-primary)}:is(.proj-detail,.review-session) .version-row__badge{background:var(--version-badge-bg,#5b53ffd9);height:20px;color:var(--version-badge-color,var(--text-primary));font-size:var(--t-caption-size);font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;flex-shrink:0;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}:is(.proj-detail,.review-session) .version-row__meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}:is(.proj-detail,.review-session) .version-row__name{font-size:var(--t-body-size);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}:is(.proj-detail,.review-session) .version-row__info{font-size:var(--t-caption-size);color:var(--text-tertiary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:is(.proj-detail,.review-session) .version-row__name-input{width:100%;font-size:var(--t-body-size);color:var(--text-primary);background:var(--bg-base);border:1px solid var(--accent-primary);border-radius:var(--radius-4);box-sizing:border-box;outline:none;height:26px;margin:-3px 0;padding:2px 6px;font-weight:500}:is(.proj-detail,.review-session) .version-foot__selection{align-items:center;gap:4px;margin-right:auto;display:inline-flex}:is(.proj-detail,.review-session) .version-foot__count{font-size:var(--t-body-size);color:var(--text-secondary);align-self:center}
.btn{height:var(--size-button-md);border-radius:var(--radius-6);font-family:inherit;font-size:var(--t-body-medium-size);cursor:pointer;white-space:nowrap;transition:background var(--dur-150) var(--ease-primary), color var(--dur-150) var(--ease-primary), transform var(--dur-100) var(--ease-primary);border:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn i{font-size:var(--size-icon-sm)}.btn :where(svg[width="1em"]:not([class*=size-])){width:var(--size-icon-sm);height:var(--size-icon-sm)}.btn--compact :where(svg[width="1em"]:not([class*=size-])),.btn--sm :where(svg[width="1em"]:not([class*=size-])){width:14px;height:14px}.btn:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:default;pointer-events:none}.btn--primary{background:var(--accent-primary);color:var(--button-primary-color,var(--text-primary))}.btn--primary:hover{background:var(--accent-hover)}.btn--primary:active{background:var(--accent-pressed)}.btn--secondary{background:var(--button-secondary-bg,#55586e66);color:var(--text-primary)}.btn--secondary:hover{background:var(--button-secondary-hover-bg,#6d718880)}.btn--ghost{color:var(--text-body);background:0 0}.btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn--destructive{background:var(--alert-error-fill);color:var(--text-primary)}.btn--destructive:hover{background:var(--alert-error-fill-hover)}.btn--danger{color:var(--text-error);background:0 0;box-shadow:inset 0 0 0 1px #f4335059}.btn--danger:hover{background:var(--bg-danger-hover);color:var(--text-error)}.btn--compact{height:28px;font-size:var(--t-body-sm-size);padding:0 10px}.btn--compact i{font-size:var(--t-label-size)}.btn--lg{height:var(--size-button-lg);font-size:var(--t-body-size);padding:0 18px}.btn--icon{width:var(--size-button-md);color:var(--text-secondary);background:0 0;padding:0}.btn--icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn--icon svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}.btn--icon.btn--compact{width:28px}.btn--sm{height:var(--size-button-sm);font-size:var(--t-body-sm-size);padding:0 8px}.btn--icon.btn--sm{width:var(--size-button-sm);height:var(--size-button-sm);border-radius:var(--radius-4);padding:0}.btn--icon.btn--sm svg{width:14px;height:14px}
.modal-backdrop{background:var(--scrim-medium);z-index:300;animation:fbs-backdrop-in var(--dur-150) var(--ease-primary);justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.modal-backdrop.is-open{display:flex}.modal-backdrop.is-closing{animation:fbs-backdrop-out var(--dur-200) var(--ease-primary) both;display:flex}.modal{background:var(--bg-modal);border:1px solid var(--border-container);border-radius:var(--radius-10);box-shadow:var(--shadow-24dp);width:100%;max-width:480px;max-height:calc(100dvh - 48px);animation:fbs-modal-in var(--dur-200) var(--ease-primary);flex-direction:column;display:flex}.modal-backdrop.is-closing .modal{animation:fbs-modal-out var(--dur-200) var(--ease-primary) both}.modal--pay{max-width:540px}.modal__head{border-bottom:1px solid var(--border-container);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal__title{font-size:var(--t-label-size);color:var(--text-primary);margin:0;font-weight:600}.modal__close{border-radius:var(--radius-6);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;font-size:var(--size-icon-sm);transition:background var(--dur-150), color var(--dur-150);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.modal__close:hover{background:var(--bg-hover);color:var(--text-body)}.modal__close:disabled{opacity:.5;cursor:default;pointer-events:none}.modal__close svg{width:16px;height:16px}.modal__body{padding:16px;overflow-y:auto}:where(.modal__body) p{color:var(--text-body);margin:0;line-height:1.5}.modal__foot{border-top:1px solid var(--border-container);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}
.ui-field{appearance:none;width:100%;min-width:0;height:var(--size-button-md);border:1px solid var(--border-tertiary);border-radius:var(--radius-6);background:var(--bg-popover);color:var(--text-body);font-family:inherit;font-size:var(--t-body-size);line-height:var(--t-body-lh);transition:border-color var(--dur-150) var(--ease-primary), box-shadow var(--dur-150) var(--ease-primary);margin:0;padding:0 10px;display:block}.ui-field::placeholder{color:var(--text-tertiary);opacity:1}.ui-field:hover:not(:disabled):not([readonly]){border-color:var(--border-control)}.ui-field:focus,.ui-field:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary);outline:none}.ui-field:disabled{opacity:.5;cursor:not-allowed}.ui-field[readonly]{color:var(--text-secondary);background:var(--bg-card);cursor:default}.ui-field[readonly]:focus{border-color:var(--border-tertiary);box-shadow:none}.ui-field[readonly]:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.ui-field[aria-invalid=true]{border-color:var(--alert-error)}textarea.ui-field{resize:vertical;height:auto;min-height:72px;padding:6px 10px}select.ui-field{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256'%3E%3Cpath fill='none' stroke='%23b4b7c9' stroke-linecap='round' stroke-linejoin='round' stroke-width='24' d='M208 96l-80 80-80-80'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:30px}select.ui-field[readonly],select.ui-field:disabled{cursor:default}button.ui-field{text-align:left;cursor:pointer;align-items:center;gap:8px;display:flex}button.ui-field:disabled{cursor:not-allowed}.ui-field--mono{font-family:var(--font-mono), ui-monospace, monospace;font-size:var(--t-body-sm-size)}.ui-field--compact{height:28px;font-size:var(--t-body-sm-size)}.ui-field--lg{height:var(--size-button-lg);padding:0 12px}@media (max-width:640px){.ui-field--lg{font-size:var(--t-body-lg-size)}}.ui-field--auto{width:auto}.ui-search{min-width:0;height:var(--size-button-md);border:1px solid var(--border-tertiary);border-radius:var(--radius-6);background:var(--bg-popover);color:var(--text-tertiary);transition:border-color var(--dur-150) var(--ease-primary), box-shadow var(--dur-150) var(--ease-primary);align-items:center;gap:8px;padding:0 10px;display:flex}.ui-search:hover{border-color:var(--border-control)}.ui-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.ui-search>svg{width:var(--size-icon-sm);height:var(--size-icon-sm);flex:none}.ui-search>input{min-width:0;height:100%;color:var(--text-body);font:inherit;font-size:var(--t-body-size);background:0 0;border:0;outline:0;flex:1;padding:0}.ui-search>input::placeholder{color:var(--text-tertiary);opacity:1}.ui-search>input::-webkit-search-cancel-button{filter:invert(.7);cursor:pointer}.ui-label{min-width:0;font-size:var(--t-body-sm-size);color:var(--text-secondary);flex-direction:column;gap:6px;font-weight:500;display:flex}.ui-help{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--text-tertiary);font-weight:400}.ui-error{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--text-error);font-weight:400}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field:last-child{margin-bottom:0}.field__label{font-size:var(--t-body-sm-size);color:var(--text-secondary);font-weight:500}.field__hint{font-size:var(--t-body-sm-size);line-height:var(--t-body-sm-lh);color:var(--text-tertiary)}