@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}:root{--font-default:"Inter", sans-serif;--color-primary:#333;--color-primary-sidebar:#333;--color-sidebar-bg:#141414;--color-sidebar-text:#fff;--color-sidebar-text-muted:#9e9e9e;--color-sidebar-border:#2a2a2a;--color-sidebar-hover:#1f1f1f;--color-sidebar-active:#242424;--color-background:#fff;--color-text:#000;--color-text-secondary:#757575;--color-lines:#e5e5e5;--color-shade:#fafafa;--color-shade-hover:#f5f5f5}*,:before,:after{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--color-lines) transparent;margin:0;padding:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-lines);border-radius:3px}html,body,#root{height:100%}body{font-family:var(--font-default);background:var(--color-background);color:var(--color-text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}.invite-panel{background:var(--bg-subtle,#f8f8f8);border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;padding:20px 24px}.invite-panel-title{margin:0 0 16px;font-size:15px;font-weight:600}.invite-panel-form{flex-direction:column;gap:14px;max-width:520px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-error{color:#c0392b;margin:0;font-size:13px}.users-success{color:#27ae60;margin:0 0 12px;font-size:14px}.users-badge{vertical-align:middle;border-radius:10px;margin-left:8px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-block}.users-badge--pending{color:#856404;background:#fff3cd}.users-name-cell,.users-email-cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.users-role-select{border:1px solid var(--color-lines);cursor:pointer;box-sizing:border-box;background:#fff;border-radius:5px;width:100%;padding:4px 8px;font-size:13px}.users-status{border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500}.users-status--active{color:#155724;background:#d4edda}.users-status--inactive{color:#721c24;background:#f8d7da}.users-row--inactive td:not(.users-actions-cell){opacity:.55}.users-last-login{color:#888;font-size:12px}.btn.btn-sm{padding:4px 10px;font-size:12px}.btn-danger-outline{border:1px solid var(--color-lines);color:#be4336;cursor:pointer;background:#fff;border-radius:5px}.btn-danger-outline:hover{background:#fdf0ef}.btn-secondary{color:#555;cursor:pointer;background:0 0;border:1px solid #aaa;border-radius:5px;transition:background .15s}.btn-secondary:hover{background:#f5f5f5}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}.activity-toolbar{flex-wrap:wrap;align-items:center}.activity-filter-group{align-items:center;gap:6px;display:flex}.activity-filter-label{color:var(--color-text-secondary);white-space:nowrap;font-size:12px;font-weight:500}.activity-clear-filters{color:var(--color-text-secondary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px 6px;font-size:12px;text-decoration:underline}.activity-clear-filters:hover{color:var(--color-text)}.activity-feed{flex:1;min-height:0;overflow-y:auto}.feed-section{margin-bottom:24px}.feed-date-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-lines);margin-bottom:2px;padding-bottom:8px;font-size:11px;font-weight:600}.feed-row{border-radius:4px}.feed-row-main{border-radius:4px;align-items:center;gap:10px;padding:8px 6px;transition:background .1s;display:flex}.feed-row-main:hover{background:var(--color-shade)}.feed-row--undone .feed-row-main{opacity:.45}.feed-avatar{width:30px;height:30px;color:var(--color-primary,#4e3b8b);border:1px solid var(--color-lines,#e0e0e0);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.feed-text{color:var(--color-text);flex:1;min-width:0;font-size:13px;line-height:1.5}.feed-actor{font-weight:500}.feed-verb,.feed-resource-type{color:var(--color-text-secondary)}.feed-resource-name{font-weight:500}.feed-badge{color:var(--color-text-secondary);background:var(--color-shade-hover);vertical-align:middle;border-radius:3px;margin-left:8px;padding:1px 6px;font-size:11px;display:inline-block}.feed-time{color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;font-size:12px}.feed-diff{border:1px solid var(--color-lines);background:#fff;border-radius:4px;margin:2px 0 6px 42px;padding:12px}.feed-diff-actions{justify-content:flex-end;padding-top:8px;display:flex}.feed-undo-btn{color:#c0392b;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;text-decoration:underline}.feed-undo-btn:hover:not(:disabled){color:#922b21}.feed-undo-btn:disabled{opacity:.5;cursor:not-allowed}.feed-batch-summary{cursor:pointer}.feed-batch-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.feed-batch-undo-btn{color:#c0392b;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #c0392b;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:12px}.feed-batch-undo-btn:hover:not(:disabled){color:#fff;background:#c0392b}.feed-batch-undo-btn:disabled{opacity:.5;cursor:not-allowed}.feed-badge--undone{color:#888;border:1px solid var(--color-lines);background:0 0}.feed-batch-entries{border-left:2px solid var(--color-lines);margin-bottom:4px;margin-left:19px;padding-left:16px}.diff-table{border-collapse:collapse;width:100%;font-size:12px}.diff-table th{text-align:left;color:var(--color-text-secondary);border-bottom:1px solid var(--color-lines);padding:3px 8px;font-weight:500}.diff-table td{border-bottom:1px solid var(--color-shade-hover);vertical-align:top;word-break:break-word;padding:4px 8px}.diff-field{color:var(--color-text-secondary);width:130px;font-weight:500}.diff-before{color:#c0392b;background:#fdf0f0}.diff-after{color:#1a7f37;background:#f0fdf4}.diff-unchanged{color:#bbb}.diff-row--unchanged .diff-field{color:var(--color-text-secondary);font-weight:400}.diff-dot{vertical-align:middle;background:#e67e22;border-radius:50%;width:5px;height:5px;margin-left:5px;display:inline-block}.diff-empty{color:var(--color-text-secondary);margin:0;font-size:12px}.page{box-sizing:border-box;height:100%;padding:32px 40px;overflow-y:auto}.page--detail-single{flex-direction:column;display:flex}.page--detail-single>.form-actions{background:var(--color-background);max-width:640px;margin-top:auto;padding-bottom:24px;position:sticky;bottom:0}.page--detail-split{box-sizing:border-box;flex-direction:column;height:100%;padding:0;display:flex;overflow:hidden}.detail-split-body{flex:1;min-height:0;display:flex;position:relative}.body-loading{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.detail-split-left{box-sizing:border-box;flex-direction:column;flex:1;min-width:0;padding:32px 32px 0 40px;display:flex;overflow:hidden auto}.detail-split-left>.page-header{flex-shrink:0}.detail-split-left>.form-actions{background:var(--color-background);max-width:640px;margin-top:auto;padding-bottom:24px;position:sticky;bottom:0}.detail-split-right{border-left:1px solid var(--color-lines);box-sizing:border-box;background:var(--color-background);flex-direction:column;flex-shrink:0;width:400px;padding:24px 0 0;display:flex;overflow:hidden}.detail-split-right>.inline-section{flex-direction:column;flex:1;max-width:none;min-height:0;margin-top:0;display:flex;overflow:hidden}.detail-split-right .inline-section-header{border-bottom:none;flex-shrink:0;margin-bottom:0}.detail-split-right .rooms-panel-search{box-sizing:border-box;background:var(--color-background);flex-shrink:0;width:100%;margin-bottom:8px}.rooms-panel-search-wrap{padding:10px 16px}.rooms-panel-list{flex:1;min-height:0;overflow-y:auto}.detail-split-right .pagination{background:var(--color-background);border-top:1px solid var(--color-lines);flex-shrink:0;margin-top:0;padding:8px 16px 24px;position:sticky;bottom:0}.panel-empty{color:var(--color-text-secondary);justify-content:center;align-items:center;padding:48px 16px;font-size:13px;display:flex}.room-grid{flex-direction:column;display:flex}.room-grid--buildings .room-tile:first-child{border-top:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.room-grid--buildings .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.room-floor-header{z-index:1;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);background:color-mix(in srgb, var(--color-lines) 30%, var(--color-background));border-top:1px solid var(--color-lines);border-bottom:1px solid var(--color-lines);padding:6px 16px;font-size:10px;font-weight:700;position:sticky;top:0}.room-tile{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;flex-direction:row;align-items:center;gap:8px;width:100%;padding:10px 16px;font-family:inherit;display:flex}.room-tile:not(:last-child),.rooms-panel-list--complete .room-grid>div:last-child .room-tile:last-child{border-bottom:1px solid color-mix(in srgb, var(--color-lines) 60%, transparent)}.room-tile:hover{background:color-mix(in srgb, var(--color-lines) 20%, transparent)}.room-tile-number{color:var(--color-text);flex-shrink:0;min-width:44px;font-family:monospace;font-size:15px;font-weight:700;line-height:1}.room-tile-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.room-tile-type{color:var(--color-text);font-size:13px;font-weight:600}.room-tile-meta{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.room-tile-suite{letter-spacing:.06em;color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-radius:3px;flex-shrink:0;padding:2px 5px;font-size:9px;font-weight:700}.room-tile-nosuite{color:var(--color-text-secondary);text-align:center;flex-shrink:0;min-width:28px;font-size:13px}.page--list{flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.page--list .page-header,.page--list .toolbar,.page--list .status{flex-shrink:0}.page--list .table-wrap{flex:1;min-height:0;overflow-y:auto}.page--list .pagination{flex-shrink:0;padding-bottom:20px}.page-header{flex-direction:column;gap:6px;display:flex}.page-header--list{flex-direction:row;align-items:center;gap:12px;margin-bottom:8px}.page-header--list .btn{margin-left:auto}.page-header--detail{flex-direction:row;align-items:center;gap:8px}.page-header h1{font-size:24px;font-weight:600}.page-count{color:var(--color-text-secondary);font-size:13px}.toolbar{align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-select{border:1px solid var(--color-lines);background-color:var(--color-background);appearance:none;cursor:pointer;color:var(--color-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:3px;min-width:160px;padding:6px 28px 6px 10px;font-family:inherit;font-size:13px}.filter-select:focus{border-color:#999;outline:none}.filter-select:hover{border-color:#aaa}.search-input{border:1px solid var(--color-lines);width:240px;color:var(--color-text);background:var(--color-background);border-radius:3px;padding:6px 10px;font-family:inherit;font-size:13px}.search-input:focus{border-color:#999;outline:none}.table-wrap{border-top:1px solid var(--color-lines);position:relative}.skeleton{background:var(--color-shade);border-radius:3px;animation:1.4s ease-in-out infinite skeleton-pulse;display:inline-block}.skeleton--title{vertical-align:middle;width:180px;height:22px}.form-loading{flex:1;justify-content:center;align-items:center;display:flex}.table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.table th,.table td{text-align:left;padding:8px 12px}.table td{border-bottom:1px solid var(--color-lines)}.table th{color:var(--color-text);background:var(--color-shade);z-index:1;box-shadow:inset 0 -1px 0 var(--color-lines);font-weight:600;position:sticky;top:0}.table tr:hover td{background:var(--color-shade-hover)}.table-row--clickable{cursor:pointer}.table-empty{color:var(--color-text-secondary);text-align:center;padding:24px}.pagination{align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.loader.pagination-loader,.loader.toolbar-spinner{border-width:2px;width:17px;height:17px}.table-spinner{justify-content:center;display:flex}.page-btn{border:1px solid var(--color-lines);background:var(--color-background);cursor:pointer;color:var(--color-text);border-radius:3px;padding:5px 10px;font-family:inherit;font-size:13px}.page-btn:hover:not(:disabled){background:var(--color-shade-hover)}.page-btn:disabled{opacity:.4;cursor:default}.page-info{color:var(--color-text-secondary)}.page-jump-input{border:1px solid var(--color-lines);text-align:center;width:60px;color:var(--color-text);background:var(--color-background);-moz-appearance:textfield;border-radius:3px;padding:5px 8px;font-family:inherit;font-size:13px}.page-jump-input::-webkit-outer-spin-button{-webkit-appearance:none}.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}.page-jump-input:focus{border-color:#999;outline:none}.status{color:var(--color-text-secondary);padding:0;font-size:13px}.status--error{color:var(--color-primary)}.status--success{color:#2e7d32;font-weight:500}.row-view-btn{color:var(--color-primary);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px 4px;display:flex}.row-view-btn:hover{opacity:1;background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.row-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;text-decoration:none}.row-link:hover{text-decoration:underline}.back-btn{color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;display:flex}.back-btn:hover{background:var(--color-shade-hover)}.back-btn svg{width:24px;height:24px}.detail-form{flex-direction:column;gap:12px;max-width:640px;margin-top:24px;display:flex}.form-field{flex-direction:column;gap:4px;display:flex}.form-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.form-input{border:1px solid var(--color-lines);color:var(--color-text);background:var(--color-background);border-radius:3px;padding:6px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:#999;outline:none}.form-input--short{max-width:160px}.form-input-row{align-items:center;gap:6px;display:flex}.form-input:disabled{background:var(--color-shade);color:var(--color-text-secondary);cursor:default}.form-related-link{color:var(--color-primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;text-decoration:none}.form-related-link:hover{text-decoration:underline}.form-image-thumb{object-fit:cover;border-radius:4px;width:120px;height:90px;display:block}.form-image-row{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.form-upload-trigger{border:1px solid var(--color-lines);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border-radius:3px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:500}.form-upload-trigger:hover{color:var(--color-text);border-color:#aaa}input[type=file].form-input{color:var(--color-text-secondary);cursor:not-allowed;padding:4px 6px}.form-field--checkbox{flex-direction:row;align-items:center;gap:8px}.form-field--checkbox .form-label{text-transform:none;letter-spacing:0;font-size:13px;font-weight:400}.inline-section{max-width:640px;margin-top:36px}.inline-section .table-wrap{min-height:200px}.inline-section-header{border-bottom:1px solid var(--color-lines);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.inline-section-action{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:500}.inline-section-action:hover{text-decoration:underline}.inline-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-secondary);border-bottom:none;margin-bottom:0;padding-bottom:0;font-size:11px;font-weight:600}.inline-section>.inline-section-title{border-bottom:1px solid var(--color-lines);margin-bottom:8px;padding-bottom:6px}.inline-table{table-layout:auto;font-size:13px}.inline-table th{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px;background:0 0;padding:6px 10px;font-size:11px;font-weight:600}.inline-table td{white-space:nowrap;text-overflow:ellipsis;max-width:0;padding:7px 10px;overflow:hidden}.inline-table tr:last-child td{border-bottom:none}.btn{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 85%, #000)}.btn-danger{color:var(--color-text-secondary);border:1px solid var(--color-lines);background:0 0}.btn-danger:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 5%, transparent)}.form-actions{border-top:1px solid var(--color-lines);align-items:center;gap:8px;max-width:640px;margin-top:8px;padding-top:16px;display:flex}.form-actions-spacer{flex:1}.form-save-status{color:var(--color-text-secondary);font-size:12px}.form-save-status--error{color:var(--color-primary)}.col--checkbox{width:40px}.th--checkbox,.td--checkbox{width:40px;padding:8px 0 8px 12px}.row-checkbox{cursor:pointer;width:14px;height:14px;accent-color:var(--color-primary);display:block}.table-row--selected td{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.table-row--selected:hover td{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.bulk-action-bar{color:#fff;background:#1a1a1a;border-radius:6px;flex-shrink:0;align-items:center;gap:10px;margin-bottom:10px;padding:7px 10px 7px 14px;display:flex;box-shadow:0 2px 8px #0000002e}.bulk-action-bar__count{color:#fffc;font-size:13px;font-weight:500}.bulk-action-bar__actions{gap:4px;margin-left:4px;display:flex}.bulk-action-bar__btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:background .1s}.bulk-action-bar__btn:hover{background:#fff3}.bulk-action-bar__btn--danger{color:#ffc8c8e6;border-color:#ff969640}.bulk-action-bar__btn--danger:hover{color:#fff;background:#c8323240;border-color:#ff969680}.bulk-action-bar__clear{color:#ffffff80;cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:24px;height:24px;margin-left:auto;padding:4px;display:flex}.bulk-action-bar__clear:hover{color:#fff;background:#ffffff1f}.bulk-panel-overlay{z-index:100;background:#00000040;position:fixed;inset:0}.bulk-panel{background:var(--color-background);border-left:1px solid var(--color-lines);z-index:101;flex-direction:column;width:360px;height:100%;animation:.18s slideInRight;display:flex;position:fixed;top:0;right:0;box-shadow:-6px 0 24px #0000001a}.bulk-panel__header{border-bottom:1px solid var(--color-lines);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 20px 14px;display:flex}.bulk-panel__title{margin:0;font-size:16px;font-weight:600}.bulk-panel__close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:flex}.bulk-panel__close:hover{color:var(--color-text);background:var(--color-shade-hover)}.bulk-panel__hint{color:var(--color-text-secondary);flex-shrink:0;margin:0;padding:12px 20px 0;font-size:12px}.bulk-panel__body{flex-direction:column;flex:1;gap:20px;padding:16px 20px;display:flex;overflow-y:auto}.bulk-panel__error{color:var(--color-primary);flex-shrink:0;margin:0;padding:0 20px;font-size:12px}.bulk-panel__partial{color:var(--color-text-secondary);flex-shrink:0;margin:0;padding:0 20px;font-size:12px}.bulk-panel__footer{border-top:1px solid var(--color-lines);flex-shrink:0;align-items:center;gap:8px;padding:16px 20px;display:flex}.bulk-field{flex-direction:column;gap:8px;display:flex}.bulk-field__toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.bulk-field__toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.bulk-field__label{color:var(--color-text);font-size:13px;font-weight:500}.bulk-field .form-input{margin-left:22px}.bulk-field .form-input:disabled{opacity:.4}.bulk-field__checkbox-option{color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-left:22px;font-size:13px;display:flex}.bulk-field__checkbox-option[aria-disabled=true]{opacity:.4;cursor:default}.bulk-field__checkbox-option input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.modal-overlay{z-index:200;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-background);border-radius:8px;width:calc(100% - 40px);max-width:420px;padding:28px 28px 20px;animation:.15s fadeScaleIn;box-shadow:0 8px 32px #0003}.modal__title{margin:0 0 10px;font-size:18px;font-weight:600}.modal__body{color:var(--color-text-secondary);margin:0 0 16px;font-size:13px;line-height:1.5}.modal__error{color:var(--color-primary);margin:0 0 12px;font-size:12px}.modal__actions{gap:8px;display:flex}.btn-danger-filled{color:#fff;background:#c0392b;border:none}.btn-danger-filled:hover:not(:disabled){background:#a93226}.btn-secondary{color:var(--color-text);border:1px solid var(--color-lines);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-shade-hover)}.reports-filter-group{align-items:center;gap:6px;display:flex}.reports-filter-label{color:var(--color-text-secondary);white-space:nowrap;font-size:12px;font-weight:500}.reports-loading{justify-content:center;padding:48px 0;display:flex}.reports-empty{color:var(--color-text-secondary);text-align:center;padding:48px 0;font-size:14px}.reports-list{flex-direction:column;gap:12px;max-width:720px;display:flex}.report-row{border:1px solid var(--color-lines);background:var(--color-surface);border-radius:8px;flex-direction:column;gap:10px;padding:16px;display:flex}.report-row--closed{opacity:.55}.report-row-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.report-row-header-left{align-items:center;gap:8px;min-width:0;display:flex}.report-row-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.report-row-resource,.report-row-date{color:var(--color-text-secondary);font-size:12px}.report-row-description{color:var(--color-text);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.5}.report-notes-textarea{box-sizing:border-box;width:100%;color:var(--color-text);background:var(--color-background);border:1px solid var(--color-lines);resize:vertical;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.report-notes-textarea:focus{border-color:var(--color-primary)}.report-status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.report-status-badge--open{color:#92680a;background:#fff3cd}.report-status-badge--closed{background:var(--color-lines);color:var(--color-text-secondary)}.report-close-btn{border:1px solid var(--color-lines);color:var(--color-text);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:12px}.report-close-btn:hover{background:var(--color-lines)}.report-close-btn:disabled{opacity:.5;cursor:not-allowed}.login-page{background:var(--color-shade);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--color-background);border:1px solid var(--color-lines);border-radius:8px;width:360px;padding:40px}.login-header{align-items:center;gap:10px;margin-bottom:32px;display:flex}.login-logo{width:32px;height:32px}.login-title-group{flex-direction:column;line-height:1.2;display:flex}.login-title{color:var(--color-text);font-size:17px;font-weight:600}.login-subtitle{color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.login-form{flex-direction:column;display:flex}.login-field{flex-direction:column;margin-bottom:16px;display:flex}.login-field label{color:var(--color-text-secondary);margin-bottom:6px;font-size:13px;font-weight:500}.login-field input{border:1px solid var(--color-lines);color:var(--color-text);background:var(--color-background);border-radius:4px;outline:none;padding:8px 10px;font-family:inherit;font-size:14px}.login-field input:focus{border-color:#999}.login-error{color:var(--color-primary);font-size:13px}.login-button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:24px;padding:9px;font-family:inherit;font-size:14px;font-weight:500}.login-button:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 85%, #000)}.login-button:disabled{opacity:.6;cursor:not-allowed}.invite-page{background:var(--bg-subtle,#f5f5f5);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.invite-card{background:#fff;border-radius:12px;flex-direction:column;gap:24px;width:100%;max-width:400px;padding:40px;display:flex;box-shadow:0 2px 16px #0000001a}.invite-header{align-items:center;gap:12px;display:flex}.invite-logo{width:36px;height:36px}.invite-title-group{flex-direction:column;display:flex}.invite-title{color:var(--color-primary);font-size:18px;font-weight:600;line-height:1.2}.invite-subtitle{color:#888;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.invite-welcome{color:#444;margin:0;font-size:14px;line-height:1.6}.invite-email{color:#222;font-weight:500}.invite-form{flex-direction:column;gap:16px;display:flex}.invite-field{flex-direction:column;gap:6px;display:flex}.invite-field label{color:#555;font-size:13px;font-weight:500}.invite-field input{border:1px solid #d0d0d0;border-radius:6px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s}.invite-field input:focus{border-color:var(--color-primary)}.invite-button{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 16px;font-size:14px;font-weight:500;transition:opacity .15s}.invite-button:disabled{opacity:.6;cursor:not-allowed}.invite-error{color:#c0392b;margin:0;font-size:13px}.invite-status{color:#888;margin:0;font-size:14px}.app{height:100vh;display:flex}.mobile-warning{display:none}@media (width<=768px){.desktop-only{display:none}.mobile-warning{text-align:center;height:100vh;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;display:flex}.mobile-warning p{max-width:280px;font-size:15px;line-height:1.5}}.app-loading{justify-content:center;align-items:center;height:100vh;display:flex}.loader{border:3px solid var(--color-lines);border-top-color:var(--color-primary,var(--color-text-secondary));border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}.sidebar{background:var(--color-sidebar-bg);border-right:1px solid var(--color-sidebar-border);flex-direction:column;flex-shrink:0;width:220px;display:flex}.sidebar-logo{border-bottom:1px solid var(--color-sidebar-border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo-icon{filter:invert();width:26px;height:26px}.sidebar-logo-text{flex-direction:column;line-height:1.2;display:flex}.sidebar-logo-name{color:var(--color-sidebar-text);font-size:17px;font-weight:600}.sidebar-logo-sub{color:var(--color-primary-sidebar);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;padding:8px 0;display:flex}.sidebar-nav-item{color:var(--color-sidebar-text-muted);cursor:pointer;border-left:3px solid #0000;padding:10px 20px;font-family:inherit;font-size:14px;text-decoration:none;transition:color .1s,background .1s;display:block}.sidebar-nav-item:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text)}.sidebar-nav-item--active{color:var(--color-sidebar-text);background:var(--color-sidebar-active);border-left-color:var(--color-primary-sidebar);font-weight:500}.main{flex:1;min-width:0;overflow:hidden}.sidebar-user{border-top:1px solid var(--color-sidebar-border);margin:0 16px 20px;padding:12px 0 0}.sidebar-user-avatar-row{align-items:center;gap:10px;display:flex}.sidebar-user-avatar{background:var(--color-primary-sidebar);color:#fff;text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex}.sidebar-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-user-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.sidebar-user-signout{color:var(--color-sidebar-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;font-size:11px;transition:color .1s}.sidebar-user-signout:hover{color:var(--color-sidebar-text)}.sidebar-logout{border:1px solid var(--color-sidebar-border);color:var(--color-sidebar-text-muted);cursor:pointer;text-align:left;background:0 0;border-radius:4px;margin:0;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .1s,border-color .1s}.sidebar-logout:hover{color:var(--color-sidebar-text);border-color:#555}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:24px;right:24px}.toast{color:var(--color-text);border:1px solid var(--color-lines);background:#fff;border-left:3px solid #0000;border-radius:4px;min-width:200px;max-width:320px;padding:10px 14px;font-size:13px;font-weight:400;animation:.18s forwards toast-in;box-shadow:0 2px 8px #00000014}.toast--dismissing{animation:.2s forwards toast-out}.toast--success{color:var(--color-text);border-left-color:#4caf50}.toast--error{color:var(--color-text);border-left-color:#e53935}@keyframes toast-in{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(6px)}}
