@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Serif:wght@400;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.error-page{text-align:center;padding-top:4rem}.error-page__code{font-family:var(--font-mono);color:var(--text-muted);font-size:3rem;font-weight:700}.error-page__code--warn{color:var(--warning)}.error-page__code--error{color:var(--error)}.error-page__code--accent{color:var(--accent)}.error-page__title{color:var(--text-secondary);margin-top:.5rem}.error-page__body{color:var(--text-muted);max-width:400px;margin-top:.5rem;margin-left:auto;margin-right:auto;font-size:.85rem}.error-page__trace{color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border);text-align:left;max-width:500px;margin:1rem auto;padding:.6rem;overflow:auto}.error-page__actions{justify-content:center;gap:.6rem;margin-top:1.5rem;display:flex}.portal-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topnav{height:var(--topnav-height);background:var(--bg-primary);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 1.2rem;display:flex}.topnav__brand{align-items:center;gap:.6rem;min-width:0;display:flex}.topnav__logo{border-radius:var(--radius-sm);object-fit:contain;width:24px;height:24px}.topnav__name{font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:700;overflow:hidden}.topnav__version{color:var(--text-muted);opacity:.6;letter-spacing:.05em;align-self:center;margin-left:.5rem;font-size:.6rem}.topnav__user{flex-shrink:0;align-items:center;gap:.8rem;display:flex}.topnav__username{color:var(--text-secondary);font-size:.75rem}.notification-bell{position:relative}.notification-bell__badge{min-width:15px;height:15px;font-family:var(--font-mono);background:var(--error);color:var(--text-inverse);border:2px solid var(--bg-primary);border-radius:999px;justify-content:center;align-items:center;padding:0 3px;font-size:.6rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;right:2px}.notification-bell__item{flex:1;display:block}.ui-dropdown__item:has(.notification-bell__item--unread){background:var(--accent-muted)}.ui-dropdown__item:has(.notification-bell__item--unread):hover{background:var(--bg-hover)}.notification-bell__title{color:var(--text-primary);margin-bottom:.2rem;font-size:.8rem;display:block}.notification-bell__time{color:var(--text-muted);font-size:.65rem;display:block}.portal-body{flex:1;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;padding:1rem 0;display:flex;overflow-y:auto}.sidebar__section{padding:0 0 .8rem}.sidebar__section--bottom{border-top:1px solid var(--border);margin-top:auto;padding-top:.8rem}.sidebar__label{padding:.2rem 1rem .4rem;display:block}.sidebar__link{min-height:44px;color:var(--text-primary);border-left:2px solid #0000;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.85rem;text-decoration:none;transition:all .12s;display:flex}.sidebar__link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar__link--active{background:var(--bg-active);border-left-color:var(--accent);color:var(--text-primary)}.sidebar__link--admin,.sidebar__link--admin:hover{color:var(--accent-secondary)}.sidebar__link--ops,.sidebar__link--ops:hover{color:var(--warning)}.sidebar__link--action{cursor:pointer;width:100%;color:var(--text-muted);text-align:left;background:0 0;border:none;border-left:2px solid #0000;font-family:inherit}.sidebar__link--action:hover{background:var(--bg-hover);color:var(--text-muted)}.sidebar__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.main-content{flex:1;padding:1.5rem 2rem;overflow-y:auto}.ui-btn.sidebar-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--accent);font-family:var(--font-mono);cursor:pointer;letter-spacing:.05em;background:0 0;padding:.3rem .6rem;font-size:.7rem;display:none}@media (width<=768px){.ui-btn.sidebar-toggle{min-width:44px;min-height:44px;display:inline-flex}.sidebar{top:var(--topnav-height);z-index:50;box-shadow:var(--shadow-lg);transition:transform .25s;position:fixed;bottom:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-overlay{inset:0;top:var(--topnav-height);z-index:40;background:#00000080;position:fixed}.main-content{padding:1rem}.topnav__name{letter-spacing:.05em;font-size:.7rem}}@media (width<=480px){.main-content{padding:.8rem}.topnav__username,.topnav__version{display:none}.notification-bell__dropdown{top:var(--topnav-height);width:auto;max-width:none;max-height:calc(100vh - var(--topnav-height) - 1rem);position:fixed;left:.5rem;right:.5rem}}.auth-gate{text-align:left;max-width:32rem;margin:0 auto;padding:3rem 1.5rem}.auth-gate__title{font-family:var(--font-heading);color:var(--text-primary);margin:0 0 .75rem;font-size:1.5rem}.auth-gate__body{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.6}.auth-gate__actions{flex-wrap:wrap;gap:.75rem;display:flex}.ops-dashboard{flex-direction:column;height:100%;display:flex}.ops-dashboard__loading{justify-content:center;align-items:center;height:200px;display:flex}.ops-dashboard__header{border-bottom:1px solid var(--border);margin-bottom:1.2rem;padding-bottom:.8rem}.ops-dashboard__body{flex:1;gap:1.5rem;min-height:0;display:flex}.ops-sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:180px;padding-right:1rem;display:flex}.ops-sidebar__link{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;border-left:2px solid #0000;padding:.5rem .8rem;font-size:.85rem;text-decoration:none;transition:all .15s;display:block}.ops-sidebar__link:hover{background:var(--bg-hover);color:var(--text-primary);border-left-color:var(--border-strong)}.ops-sidebar__link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ops-sidebar__link--active{background:var(--bg-active);color:var(--accent);border-left-color:var(--accent);font-weight:500}.ops-sidebar__link--active:hover{border-left-color:var(--accent)}.ops-content{flex:1;min-width:0}.ops-content .ui-table td a{font-family:var(--font-mono);letter-spacing:.02em;transition:color .12s}.ops-content .ui-table td a:hover{color:var(--accent-hover);text-decoration:underline}.ops-content .ui-table td a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.ops-filter-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}@media (width<=768px){.ops-dashboard__body{flex-direction:column;gap:1rem}.ops-sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;gap:.5rem;width:100%;padding-bottom:.5rem;padding-right:0;overflow-x:auto}.ops-sidebar__link{white-space:nowrap;border-bottom:2px solid #0000;border-left:none;padding:.4rem .7rem;font-size:.8rem}.ops-sidebar__link:hover{border-left:none;border-bottom-color:var(--border-strong)}.ops-sidebar__link--active,.ops-sidebar__link--active:hover{border-left:none;border-bottom-color:var(--accent)}}@media (width<=480px){.ops-filter-bar{gap:.5rem}.ops-filter-bar .ops-filter-select{flex:1;min-width:0}}.dashboard__header{margin-bottom:1.5rem}.dashboard__header .label{margin-bottom:.3rem}.dashboard__header h1{margin-top:.3rem}.dashboard__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;margin-bottom:2rem;display:grid}.workspace-card{border-left:3px solid;text-decoration:none;transition:all .15s}.workspace-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.workspace-card__name{font-size:.9rem;font-weight:600}.workspace-card__meta{color:var(--text-muted);margin-top:.3rem;font-size:.75rem}.dashboard__stats{margin-bottom:2rem}.stats-row{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin-top:.5rem;display:grid}.stat__value{font-family:var(--font-heading);color:var(--accent);font-size:1.5rem;font-weight:700}.stat__label{color:var(--text-muted);margin-top:.2rem;font-size:.75rem}.dashboard__activity{margin-bottom:2rem}.activity-list{margin-top:.5rem}.activity-empty{color:var(--text-muted);padding:1rem 0;font-size:.85rem}.activity-item{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.5rem 0;font-size:.85rem;display:flex}.activity-item:last-child{border-bottom:none}.activity-item__user{color:var(--accent);min-width:80px;font-size:.8rem}.activity-item__action{color:var(--text-secondary);flex:1}.activity-item__time{color:var(--text-muted);font-size:.7rem}.dashboard__loading{justify-content:center;align-items:center;min-height:300px;display:flex}.my-tasks{margin-bottom:2rem}.my-tasks__list{flex-direction:column;margin-top:.5rem;display:flex}.my-tasks__item{border-bottom:1px solid var(--border);color:var(--text-primary);align-items:center;gap:.8rem;padding:.55rem .2rem;font-size:.85rem;text-decoration:none;transition:background .12s;display:flex}.my-tasks__item:hover{background:var(--bg-hover);color:var(--text-primary)}.my-tasks__item:last-child{border-bottom:none}.my-tasks__title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.my-tasks__workspace{color:var(--accent);font-size:.7rem}.my-tasks__due{color:var(--text-muted);font-size:.7rem}.workspace-card__activity{color:var(--text-muted);margin-top:.3rem;font-size:.65rem}.activity-item__workspace{color:var(--accent);font-size:.7rem}@media (width<=768px){.my-tasks__item{flex-wrap:wrap;row-gap:.15rem}.my-tasks__title{flex:100%;min-width:100%}}@media (any-pointer:coarse){.my-tasks__item{min-height:44px}}.members-table select,.members-invite select{min-height:24px}.comment__actions .link-btn,.comment-thread__replying .link-btn,.ws-search .ws-search__more{justify-content:center;align-items:center;min-width:24px;min-height:24px;display:inline-flex}.breadcrumb__item,.folder-link{align-items:center;min-height:24px;display:inline-flex}.workspace__meta{color:var(--text-secondary);margin-top:.3rem;font-size:.8rem}.breadcrumbs{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:0;margin-bottom:1rem;font-size:.8rem;display:flex}.breadcrumb__item{color:var(--accent);font-family:var(--font-mono);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.2rem .3rem;font-size:.8rem;transition:background .12s}.breadcrumb__item:hover{background:var(--bg-hover);text-decoration:underline}.breadcrumb__root{font-weight:600}.breadcrumb__sep{color:var(--text-muted);opacity:.5;margin:0 .15rem}.breadcrumb__current{color:var(--text-primary);padding:.2rem .3rem;font-weight:600}.breadcrumb__segment{align-items:center;display:inline-flex}.workspace__content{min-height:300px;transition:border-color .2s,background .2s;position:relative}.workspace__content--dragover{background:#00c8d408;border-color:var(--accent)!important}.workspace__toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.8rem;display:flex}.workspace__upload-actions{align-items:center;gap:.8rem;display:flex}.workspace__upload-status{color:var(--accent);font-size:.75rem}.workspace__files-empty{min-height:200px;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;font-size:.85rem;display:flex}.workspace-not-found{color:var(--text-muted);padding:2rem;font-size:.9rem}.workspace__loading{min-height:300px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:.8rem;font-size:.85rem;display:flex}.workspace__error{color:var(--error);text-align:center;padding:2rem;font-size:.85rem}.workspace__alert{border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.6rem 1rem;font-size:.85rem;display:flex}.workspace__alert--error{color:var(--error);background:#ff4d4d1a;border:1px solid #ff4d4d33}.file-type-badge{width:36px;height:24px;font-family:var(--font-mono);letter-spacing:.05em;border-radius:var(--radius-sm);background:var(--accent-muted);color:var(--accent);justify-content:center;align-items:center;font-size:.6rem;font-weight:600;display:inline-flex}.file-type-badge--folder{color:#ffc832;background:#ffc8321f;border:1px solid #ffc83240}.file-name{text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-weight:500;overflow:hidden}.folder-link{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;color:var(--text-primary);font-weight:600;font-size:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;display:inline-block;overflow:hidden}.folder-link:hover{color:var(--accent);text-decoration:underline}.folder-row__count{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-muted);margin-top:2px;font-size:.75rem;line-height:1.2;display:block;overflow:hidden}.folder-row{cursor:pointer}.folder-row:hover{background:var(--bg-hover)}.file-row--highlighted td{background:var(--accent-muted);transition:background-color 1.5s}.file-actions{gap:.4rem;display:flex}@media (width<=768px),(any-pointer:coarse){.breadcrumb__item{align-items:center;min-height:44px;display:inline-flex}.folder-link,.file-name__preview-btn{min-height:44px}}.workspace__drop-overlay{z-index:100;pointer-events:none;background:#0a1628d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.workspace__drop-message{font-family:var(--font-heading);color:var(--accent);border:2px dashed var(--accent);border-radius:var(--radius-md);background:var(--bg-surface);padding:2rem 3rem;font-size:1.3rem}.ws-field-input{background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text-primary);font-family:var(--font-body);outline:none;padding:.6rem .8rem;font-size:.85rem;transition:border-color .15s}.ws-field-input:focus{border-color:var(--accent)}.ws-swatches{flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:flex}.file-preview__body{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.file-preview__image{object-fit:contain;max-width:100%;max-height:70vh}.file-preview__frame{background:var(--bg-surface);border:0;width:100%;height:70vh}.file-preview__text{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--text-primary);white-space:pre-wrap;overflow-wrap:break-word;align-self:flex-start;width:100%;margin:0;padding:1rem;font-size:.8rem;line-height:1.5;overflow-x:auto}.file-preview__status{color:var(--text-secondary);text-align:center;margin:0;padding:2rem 1rem;font-size:.85rem}.file-preview__status--error{color:var(--danger,#e5484d)}.file-name__preview-btn{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;font-family:inherit;font-size:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;display:inline-block;overflow:hidden}.file-name__preview-btn:hover{text-decoration:underline}@media (width<=640px){.file-preview__frame{height:60vh;max-height:60vh}.file-preview__image{max-height:60vh}}.folder-tree{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);max-height:260px;margin-bottom:.5rem;overflow-y:auto}.folder-tree__item{text-align:left;width:100%;color:var(--text-primary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:.5rem .8rem;font-size:.8rem;transition:background .1s;display:block}.folder-tree__item:hover{background:var(--bg-hover)}.folder-tree__item--selected{background:var(--accent-muted);color:var(--accent);font-weight:600}.folder-tree__root{border-bottom:1px solid var(--border);font-weight:600}.table-scroll{overflow-x:auto}.members-chip{background:var(--bg-elevated,#1a2740);color:var(--text-secondary);border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.72rem;display:inline-block}.members-chip--admin{color:var(--accent)}.members-chip--pending{color:var(--warning,#c80)}.members-invite{align-items:flex-end;gap:.5rem;margin-bottom:1.5rem;display:flex}.members-invite>.ui-field:first-child{flex:1;min-width:0}.settings-tab{flex-direction:column;align-items:flex-start;gap:.75rem;max-width:480px;display:flex}@media (width<=768px),(any-pointer:coarse){.members-table select,.members-invite select,.members-invite input{min-height:44px}.members-table select,.members-invite select{align-items:center;display:inline-flex}}.comment-thread{flex-direction:column;gap:1rem;display:flex}.comment-thread__loading{justify-content:center;align-items:center;min-height:120px;display:flex}.comment-thread__empty{text-align:center;color:var(--text-muted);padding:1.5rem;font-size:.85rem}.comment-thread__list{flex-direction:column;gap:.9rem;display:flex}.comment{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.8rem 1rem}.comment--reply{background:var(--bg-primary);margin-top:.6rem;margin-left:1.5rem}.comment__meta{color:var(--text-muted);margin-bottom:.4rem;font-size:.7rem}.comment__meta strong{color:var(--text-secondary);font-weight:600}.comment__body{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;font-size:.85rem;line-height:1.5}.comment__body--deleted{color:var(--text-muted);font-style:italic}.comment__edit{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.comment__edit textarea,.comment-thread__composer textarea{background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-body);resize:vertical;outline:none;padding:.6rem .8rem;font-size:.85rem;transition:border-color .15s}.comment__edit textarea:focus,.comment-thread__composer textarea:focus{border-color:var(--accent)}.comment__actions{gap:.9rem;margin-top:.5rem;display:flex}@media (width<=768px),(any-pointer:coarse){.comment__actions .link-btn,.comment-thread__replying .link-btn{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 .5rem;display:inline-flex}}.mention{color:var(--accent);font-weight:600}.comment-thread__composer{border-top:1px solid var(--border);flex-direction:column;gap:.6rem;padding-top:.8rem;display:flex}.comment-thread__composer .ui-btn{align-self:flex-end}.comment-thread__replying{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.activity-tab{flex-direction:column;gap:1rem;display:flex}.activity-tab__empty{text-align:center;color:var(--text-muted);padding:1.5rem;font-size:.85rem}.activity-tab__list{flex-direction:column;list-style:none;display:flex}.activity-tab__item{border-bottom:1px solid var(--border);color:var(--text-secondary);padding:.6rem .2rem;font-size:.85rem}.activity-tab__item:last-child{border-bottom:none}.activity-tab__item strong{color:var(--text-primary)}.activity-tab .ui-btn{align-self:center}@media (width<=480px){.comment--reply{margin-left:.8rem}}.projects-tab{flex-direction:column;gap:1rem;display:flex}.projects-tab__new{align-items:flex-end;gap:.5rem;display:flex}.projects-tab__new>.ui-field{flex:1;min-width:0}.projects-tab__new input{background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);outline:none;padding:.5rem .8rem;font-size:.85rem}.projects-tab__new input:focus{border-color:var(--accent)}.projects-tab__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;display:grid}.project-card{text-align:left;cursor:pointer;font:inherit;color:var(--text-primary)}.project-card__name{margin-bottom:.4rem;font-size:.9rem;font-weight:600}.project-card__meta{color:var(--text-muted);align-items:center;gap:.6rem;font-size:.7rem;display:flex}.project-page__header{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.project-page__header h3{margin:0}.project-page__actions{gap:.4rem;margin-left:auto;display:flex}.project-page__description{color:var(--text-secondary);white-space:pre-wrap;margin:-.4rem 0 0;font-size:.85rem}.project-page__edit{flex-direction:column;gap:.5rem;display:flex}.project-page__edit input,.project-page__edit textarea{background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);outline:none;padding:.5rem .8rem;font-size:.85rem}.project-page__edit input:focus,.project-page__edit textarea:focus{border-color:var(--accent)}.project-page__edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.task-board{grid-template-columns:repeat(3,1fr);align-items:start;gap:.8rem;display:grid}.task-board__column{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;min-height:120px;padding:.6rem;display:flex}.task-board__column-title{justify-content:space-between;padding:.2rem .2rem .4rem;display:flex}.task-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:.6rem .7rem;transition:border-color .15s}.task-card:hover{border-color:var(--border-strong)}.task-card__title{color:var(--text-primary);margin-bottom:.3rem;font-size:.82rem}.task-card__meta{color:var(--text-muted);gap:.6rem;font-size:.65rem;display:flex}.task-card__assignee{color:var(--accent)}.task-card__due,.task-card__comments{color:var(--text-muted)}.task-card__status{width:100%;margin-top:.4rem}@media (width<=768px),(any-pointer:coarse){.project-page__header .ops-filter-select,.projects-tab__new input,.task-card__status,.task-drawer__fields select{min-height:44px}.projects-tab .ui-table td{padding:.85rem .8rem}}.task-card[draggable=true]{cursor:grab}.task-card[draggable=true].task-card--dragging{opacity:.4;cursor:grabbing;border-color:var(--accent)}.task-board__column--drag-over{border-color:var(--accent);background:var(--bg-primary)}@media (width<=768px){.task-board{grid-template-columns:1fr}}.task-drawer__fields{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1.2rem;display:flex}.task-drawer__fields>.ui-field{align-self:stretch}.task-drawer__fields--readonly{gap:.7rem}.task-drawer__fields input[type=text],.task-drawer__fields input[type=date],.task-drawer__fields textarea,.task-drawer__fields select{background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-body);outline:none;padding:.5rem .7rem;font-size:.85rem}.task-drawer__fields input:focus,.task-drawer__fields textarea:focus,.task-drawer__fields select:focus{border-color:var(--accent)}.task-drawer__actions{align-self:flex-end;gap:.6rem;margin-top:.4rem;display:flex}.task-drawer__fields input[type=text],.task-drawer__fields input[type=date]{min-height:44px}.task-drawer__description{color:var(--text-primary);white-space:pre-wrap;font-size:.85rem}.task-drawer__row{color:var(--text-secondary);align-items:center;gap:.8rem;font-size:.75rem;display:flex}.task-drawer__comments{border-top:1px solid var(--border);padding-top:.8rem}.ws-search{max-width:420px;margin-top:.6rem;position:relative}.ws-search__input{width:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.45rem .6rem;font-size:.8rem}.ws-search__input:focus{border-color:var(--accent);outline:none}.ws-search__panel{z-index:20;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);max-height:60vh;padding:.4rem;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow-y:auto}.ws-search__note{color:var(--text-muted);padding:.5rem .4rem;font-size:.75rem}.ws-search__note--error{color:var(--error)}.ws-search__listbox{display:contents}.ws-search__group{margin-bottom:.5rem}.ws-search .ws-search__group-head{justify-content:space-between;margin-bottom:0;padding:.25rem .4rem;display:flex}.ws-search__item{text-align:left;width:100%;color:inherit;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;gap:.15rem;padding:.4rem;font-family:inherit;display:flex}.ws-search__item:hover{background:var(--bg-primary)}.ws-search__item-title{color:var(--text-primary);font-size:.8rem}.ws-search__item-snippet{color:var(--text-muted);font-size:.65rem}.ws-search .ws-search__more{margin:.2rem 0 0 .4rem;font-size:.7rem}@media (width<=768px){.ws-search{max-width:100%}}@media (width<=768px),(any-pointer:coarse){.ws-search__input{min-height:44px}.ws-search .ws-search__more{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 .5rem;display:inline-flex}}.file-name__preview-btn{padding:3px 0}.admin-page__subtitle{color:var(--text-secondary);margin-top:.2rem;font-size:.8rem}.admin-page__hint{color:var(--text-muted);margin-top:.5rem;font-size:.75rem}.audit-filters{align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.audit-filter-select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;padding:.4rem .8rem;font-size:.85rem}.audit-filter-select:focus{border-color:var(--accent);outline:none}.audit-empty{min-height:200px;color:var(--text-muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.audit-timeline{flex-direction:column;gap:.5rem;display:flex}.audit-entry{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.8rem 1rem;transition:border-color .15s}.audit-entry:hover{border-color:var(--border-strong)}.audit-entry__header{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.audit-entry__user{color:var(--accent);font-size:.8rem}.audit-entry__time{color:var(--text-muted);margin-left:auto;font-size:.7rem}.audit-entry__details{color:var(--text-secondary);gap:1rem;margin-top:.4rem;font-size:.75rem;display:flex}.audit-entry__ip{color:var(--text-muted);margin-top:.3rem;font-size:.65rem}.admin-actions{gap:.4rem;display:flex}.ws-name{font-weight:600}.form-input{background:var(--bg-primary);width:100%;color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-family:var(--font-body);min-height:44px;padding:.5rem .8rem;font-size:.85rem}.form-input:focus{border-color:var(--accent);outline:none}.assign-access__username{color:var(--accent)}.assign-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.assign-row:last-child{border-bottom:none}.assign-row__check{accent-color:var(--accent)}.assign-row__name{font-size:.85rem;font-weight:600}.assign-row__perm{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.75rem;font-family:var(--font-mono);padding:.2rem .5rem}.assign-row--active{background:#00c8d40a}.role-select{background:var(--bg-primary);color:var(--accent);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);cursor:pointer;padding:.15rem .4rem;font-size:.7rem}.role-select:focus{border-color:var(--accent);outline:none}@media (any-pointer:coarse){.role-select{min-height:44px}}.dashboard-projects__loading{flex-direction:column;gap:.6rem;display:flex}.dashboard-projects__error{color:var(--error)}.dashboard-projects__empty{text-align:center;color:var(--text-muted);padding:2rem}.dashboard-projects__target{font-family:var(--font-mono);color:var(--text-secondary);font-size:.8rem}.dashboard-projects__links a+a{margin-left:.5rem}.dashboard-projects__category{font-size:.7rem}.dashboard-projects__status{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.dashboard-projects__asof{color:var(--text-secondary);font-size:.8rem}.dashboard-projects__team{white-space:nowrap}.settings-prefs{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:1.25rem}.settings-prefs__heading{color:var(--text-primary);margin:0 0 1rem;font-size:1.05rem}.settings-prefs__radios{flex-direction:column;gap:.5rem;display:flex}.settings-prefs .ui-field--inline{font-size:.9rem}.settings-prefs>.ui-field--inline{margin-top:1.25rem}.settings-prefs__hint{color:var(--text-muted);max-width:52ch;margin:.5rem 0 0;font-size:.8rem}:root{--bg-primary:#0e1726;--bg-surface:#141f31;--bg-elevated:#1a2740;--bg-hover:#6f8fb80f;--bg-active:#6f8fb81a;--text-primary:#e8edf5;--text-secondary:#8390a2;--text-muted:#5a6a7a;--text-inverse:#0e1726;--accent:#6f8fb8;--accent-hover:#85a2c6;--accent-muted:#6f8fb826;--accent-secondary:#c9a557;--cta-primary:#c9a557;--cta-primary-hover:#e8c66b;--border:#6f8fb81f;--border-strong:#6f8fb840;--border-accent:#6f8fb866;--success:#4c9a6b;--warning:#e6a51a;--error:#ed5f5f;--info:#6f8fb8;--font-body:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"IBM Plex Serif", Georgia, "Times New Roman", serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:3px;--radius-md:4px;--radius-lg:8px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--sidebar-width:220px;--topnav-height:52px;--motion-fast:.12s;--motion-base:.2s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);font-weight:600;line-height:1.3}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1rem}code,.mono{font-family:var(--font-mono)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem}.version-badge{color:var(--accent);vertical-align:middle;letter-spacing:.03em;font-size:.6rem;font-weight:600;font-family:var(--font-mono,"JetBrains Mono", monospace);background:#00c8d41f;border:1px solid #00c8d440;border-radius:3px;margin-left:.5rem;padding:1px 5px;display:inline-block}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.2rem;transition:border-color .15s}.card:hover{border-color:var(--border-strong)}.link-btn{color:var(--accent);font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{color:var(--accent-hover);text-decoration:underline}.link-btn--danger,.link-btn--danger:hover{color:var(--error)}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:.25s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stagger-in>*{animation:.25s ease-out both fadeIn}.stagger-in>:first-child{animation-delay:0s}.stagger-in>:nth-child(2){animation-delay:40ms}.stagger-in>:nth-child(3){animation-delay:80ms}.stagger-in>:nth-child(4){animation-delay:.12s}.stagger-in>:nth-child(5){animation-delay:.16s}.stagger-in>:nth-child(6){animation-delay:.2s}.ops-filter-select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;padding:.35rem .6rem;font-size:.8rem;transition:border-color .15s}.ops-filter-select:hover{border-color:var(--accent)}.ops-filter-select:focus{border-color:var(--accent);outline:none}.ops-filter-select:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ops-filter-select option{background:var(--bg-surface);color:var(--text-primary)}.color-picker{flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:44px;height:44px;transition:all .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch--active{border-color:var(--text-primary);box-shadow:0 0 8px #fff3}@media (width<=768px){.dashboard__grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}}.ui-btn{font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;transition:all var(--motion-fast) ease;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;display:inline-flex}.ui-btn--sm{min-height:44px;padding:.3rem .7rem;font-size:.78rem}.ui-btn--primary{background:var(--cta-primary);color:var(--text-inverse);border-color:var(--cta-primary)}.ui-btn--primary:hover{background:var(--cta-primary-hover);border-color:var(--cta-primary-hover)}.ui-btn--secondary{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.ui-btn--secondary:hover{background:var(--bg-hover);border-color:var(--accent)}.ui-btn--danger{color:var(--error);border-color:var(--border-strong);background:0 0}.ui-btn--danger:hover{background:var(--bg-hover);color:var(--error);border-color:var(--error)}.ui-btn--ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.ui-btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.ui-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ui-btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite ui-spin}.ui-btn__label--loading{opacity:.85}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-icon-btn{border-radius:var(--radius-sm);min-width:44px;min-height:44px;color:var(--text-secondary);cursor:pointer;transition:all var(--motion-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.ui-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.ui-icon-btn--sm{min-width:32px;min-height:32px}.ui-icon-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ui-icon{vertical-align:middle;display:inline-block}.ui-drawer__overlay{z-index:200;animation:ui-fade-in var(--motion-base) ease-out;background:#0000008c;position:fixed;inset:0}.ui-dialog__overlay{z-index:210;animation:ui-fade-in var(--motion-base) ease-out;background:#0000008c;position:fixed;inset:0}.ui-dialog__content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);box-shadow:var(--shadow-lg);z-index:211;animation:ui-scale-in var(--motion-base) ease-out;padding:1.2rem 1.4rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.ui-dialog--sm{max-width:380px}.ui-dialog--md{max-width:520px}.ui-dialog--lg{flex-direction:column;width:min(900px,92vw);max-height:88vh;display:flex}.ui-dialog--lg .ui-dialog__body{flex-direction:column;flex:1;min-height:0;display:flex}.ui-dialog__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.ui-dialog__title{font-family:var(--font-heading);color:var(--text-primary);font-size:1.1rem}.ui-dialog__body{color:var(--text-secondary);font-size:.85rem;line-height:1.6}.ui-dialog__footer{justify-content:flex-end;gap:.6rem;margin-top:1.2rem;display:flex}.ui-drawer__content{background:var(--bg-surface);border-left:1px solid var(--border);width:min(420px,100vw);box-shadow:var(--shadow-lg);z-index:201;animation:ui-slide-in-right var(--motion-base) ease-out;padding:1.2rem 1.4rem;position:fixed;top:0;bottom:0;overflow-y:auto}.ui-drawer--right{right:0}.ui-drawer--left{border-left:none;border-right:1px solid var(--border);animation:ui-slide-in-left var(--motion-base) ease-out;left:0}.ui-drawer__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.ui-drawer__title{font-family:var(--font-heading);color:var(--text-primary);font-size:1.05rem}.ui-drawer__body{color:var(--text-secondary);font-size:.85rem;line-height:1.6}.ui-dialog__content:focus,.ui-drawer__content:focus{outline:none}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-scale-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ui-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes ui-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.ui-confirm-dialog__body{margin:0}.ui-confirm-dialog__error{color:var(--error);margin-top:.6rem;font-size:.8rem}.ui-tabs__list{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;gap:.25rem;display:flex;overflow-x:auto}.ui-tabs__trigger{color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;min-height:44px;padding:.5rem 1rem}.ui-tabs__trigger[data-state=active]{color:var(--text-primary);border-bottom-color:var(--accent)}.ui-tabs__trigger:disabled{opacity:.5;cursor:not-allowed}.ui-tabs__content{padding-top:1rem}.ui-dropdown__content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);z-index:210;animation:ui-fade-in var(--motion-fast) ease-out;padding:.3rem}.ui-dropdown__item{border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;outline:none;align-items:center;min-height:44px;padding:.5rem .7rem;font-size:.85rem;display:flex}.ui-dropdown__item[data-highlighted]{background:var(--bg-hover)}.ui-dropdown__item--danger{color:var(--error)}.ui-dropdown__separator{background:var(--border);height:1px;margin:.3rem 0}.ui-tooltip__content{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:220;padding:.3rem .6rem;font-size:.75rem}.ui-tooltip__arrow{fill:var(--bg-elevated)}.ui-toast__viewport{z-index:230;flex-direction:column;gap:.5rem;width:min(420px,100vw - 2rem);margin:0;padding:0;list-style:none;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.ui-toast{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);grid-template-columns:1fr auto auto;align-items:center;gap:.3rem .8rem;padding:.7rem 1rem;display:grid}.ui-toast[data-state=open]{animation:ui-slide-up var(--motion-base) ease-out}.ui-toast[data-state=closed]{animation:ui-fade-in var(--motion-fast) ease-out reverse}.ui-toast__title,.ui-toast__description{grid-column:1}.ui-toast__title{color:var(--text-primary);font-size:.85rem;font-weight:600}.ui-toast__description{color:var(--text-secondary);font-size:.8rem}.ui-toast__action{border:1px solid var(--border-strong);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;grid-area:1/2/3;align-self:center;min-height:44px;padding:.3rem .7rem;font-size:.8rem}.ui-toast__close{width:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;grid-area:1/3/3;justify-content:center;place-self:center end;align-items:center;min-width:44px;min-height:44px;display:inline-flex}@keyframes ui-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ui-badge{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--accent-muted);color:var(--accent);align-items:center;padding:.15rem .5rem;font-size:.7rem;display:inline-flex}.ui-badge--success{color:var(--success);background:#4c9a6b1f}.ui-badge--warning{color:var(--warning);background:#e6a51a1f}.ui-badge--error{color:var(--error);background:#ed5f5f1f}.ui-badge--accent{background:var(--accent-muted);color:var(--accent-secondary)}.ui-badge--neutral{background:var(--bg-elevated);color:var(--text-secondary)}.ui-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.ui-table{border-collapse:collapse;width:100%}.ui-table__head th,.ui-table__cell{border-bottom:1px solid var(--border);text-align:left;padding:.6rem .8rem}.ui-table__head th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem}.ui-table__row:hover .ui-table__cell{background:var(--bg-hover)}.ui-table__cell{font-size:.85rem}.ui-table__sort-btn{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;padding:0;display:inline-flex}.ui-table__sort-btn:hover{color:var(--accent)}.ui-table__empty{text-align:center;color:var(--text-muted);padding:2rem 1rem;font-size:.85rem}@media (width<=768px){.ui-table__head th,.ui-table__cell{padding:.4rem .5rem;font-size:.8rem}}.ui-empty-state{text-align:center;color:var(--text-muted);padding:2.5rem 1.5rem}.ui-empty-state__icon{opacity:.6;margin-bottom:.6rem}.ui-empty-state__title{color:var(--text-secondary);margin-bottom:.3rem;font-size:.95rem}.ui-empty-state__body{max-width:32rem;margin:0 auto;font-size:.82rem}.ui-empty-state__action{margin-top:1rem}.ui-skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-elevated) 50%, var(--bg-surface) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite ui-shimmer}.ui-skeleton--text{width:60%;height:.85rem}.ui-skeleton--block{width:100%;height:80px}.ui-skeleton--row{width:100%;height:2.2rem}@keyframes ui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ui-field{flex-direction:column;gap:.3rem;display:flex}.ui-field__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem}.ui-field__hint{color:var(--text-muted);margin:0;font-size:.75rem}.ui-field__error{color:var(--error);margin:0;font-size:.75rem}.ui-field--group{border:none;margin:0;padding:0}.ui-field--inline{cursor:pointer;flex-direction:row;align-items:center;gap:.5rem;min-height:44px}.ui-field--inline .ui-field__hint,.ui-field--inline .ui-field__error{display:block}.ui-page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.ui-page-header__eyebrow{margin-bottom:.2rem;display:block}.ui-page-header__title{margin:0}.ui-page-header__actions{flex-shrink:0;gap:.6rem;display:flex}@media (any-pointer:coarse){.ui-btn,.ui-icon-btn,.ui-tabs__trigger,.ui-dropdown__item,.ui-table__sort-btn{min-height:44px}}@media (prefers-reduced-motion:reduce){.ui-btn,.ui-icon-btn,.ui-dialog__overlay,.ui-drawer__overlay,.ui-dialog__content,.ui-drawer__content,.ui-dropdown__content,.ui-toast,.ui-skeleton,.ui-tabs__trigger{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
