:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{color:#e6e8ec;background:#0f1115;min-height:100vh;margin:0}#root{min-height:100vh}button,input,select{font-family:inherit}a{color:inherit}.static-name{color:#e6e8ec;margin:0;font-size:1.1rem;font-weight:600}.navbar{color:#fff;z-index:20;background:#1c1f26;align-items:center;gap:2rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.navbar-brand{letter-spacing:.02em;font-size:1.1rem;font-weight:700}.navbar-links{gap:1.25rem;display:flex}.navbar-links a{color:#c7cbd4;border-bottom:2px solid #0000;padding:.25rem .1rem;font-size:.95rem;text-decoration:none}.navbar-links a:hover{color:#fff}.navbar-links a.active{color:#fff;border-bottom-color:#5b8cff}.navbar-user{align-items:center;gap:.75rem;margin-left:auto;display:flex}.navbar-user-email{color:#9aa0ac;font-size:.85rem}.navbar-signout{color:#c7cbd4;cursor:pointer;background:0 0;border:1px solid #3a3f4b;border-radius:6px;padding:.3rem .7rem;font-size:.82rem}.navbar-signout:hover{color:#fff;border-color:#5b8cff}.navbar-preview-select{color:#c7cbd4;cursor:pointer;background:#0f1115;border:1px solid #3a3f4b;border-radius:6px;padding:.3rem .5rem;font-size:.82rem}.navbar-preview-select:hover{border-color:#5b8cff}.app-shell{color:#e6e8ec;background:#0f1115;flex-direction:column;min-height:100vh;display:flex}.app-content{box-sizing:border-box;flex:1;width:100%;max-width:1400px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.busy-bar{color:inherit;background:#171a21;border-bottom:1px solid #2a2e38;align-items:center;gap:.85rem;padding:.4rem 1.5rem;text-decoration:none;display:flex}.busy-bar:hover{background:#1c202a}.busy-bar-track{background:#21252e;border-radius:999px;flex-shrink:0;width:140px;height:6px;overflow:hidden}.busy-bar-fill{background:#5b8cff;height:100%;transition:width .3s}.busy-bar-indeterminate{width:40%;animation:1.2s ease-in-out infinite busy-bar-slide}@keyframes busy-bar-slide{0%{margin-left:-40%}to{margin-left:100%}}.busy-bar-label{color:#9aa0ac;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.preview-banner{color:#e0c26b;text-align:center;background:#3d3320;border-bottom:1px solid #5c4c26;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 1.5rem;font-size:.85rem;display:flex}.preview-banner-exit{color:#e0c26b;cursor:pointer;background:0 0;border:1px solid #7a6633;border-radius:6px;padding:.25rem .7rem;font-size:.8rem}.preview-banner-exit:hover{background:#4a3e26}.login-page{box-sizing:border-box;background:#0f1115;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:#171a21;border:1px solid #2a2e38;border-radius:10px;flex-direction:column;gap:.6rem;width:100%;max-width:360px;padding:1.75rem;display:flex}.login-title{color:#e6e8ec;margin:0;font-size:1.3rem}.login-subtitle{color:#9aa0ac;margin:0 0 .5rem;font-size:.9rem}.login-card label{color:#9aa0ac;margin-top:.3rem;font-size:.85rem}.login-card input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;padding:.5rem .6rem;font-family:inherit;font-size:1rem}.login-card button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;margin-top:.75rem;padding:.55rem .9rem;font-weight:600}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:#ff9a9a;margin:0;font-size:.85rem}.login-hint{color:#6b7280;text-align:center;margin:.75rem 0 0;font-size:.78rem}.filter-bar{background:#171a21;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;padding:.85rem 1rem;display:flex}.filter-field{color:#9aa0ac;flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.filter-field input,.filter-field select{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;padding:.4rem .55rem;font-size:.9rem}.filter-search{flex:1;min-width:180px}.filter-search input{box-sizing:border-box;width:100%}.filter-clear{color:#c7cbd4;cursor:pointer;background:0 0;border:1px solid #3a3f4b;border-radius:6px;height:fit-content;padding:.45rem .75rem;font-size:.85rem}.filter-clear:hover{background:#21252e}.media-card{cursor:pointer;aspect-ratio:1;background:#171a21;border:none;border-radius:8px;width:100%;padding:0;position:relative;overflow:hidden}.media-card img{object-fit:cover;background:#21252e;width:100%;height:100%;display:block}.media-card img.media-card-broken{object-fit:none;opacity:.25}.media-card-badge{color:#fff;background:#000000a6;border-radius:4px;padding:.1rem .4rem;font-size:.72rem;position:absolute;bottom:6px;right:6px}.media-card:hover{outline-offset:-2px;outline:2px solid #5b8cff}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;display:grid}.media-grid-state{text-align:center;color:#9aa0ac;background:#171a21;border-radius:10px;padding:3rem 1rem}.media-grid-error{color:#ff9a9a}.media-grid-inline-error{color:#ff9a9a;margin-top:.75rem;font-size:.85rem}.media-grid-footer{justify-content:center;align-items:center;min-height:2.5rem;margin-top:1.5rem;display:flex}.load-more-btn{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:8px;padding:.6rem 1.4rem;font-weight:600}.load-more-btn:hover{background:#7ba0ff}.media-grid-loading,.media-grid-end{color:#9aa0ac;font-size:.9rem}.confirm-dialog-backdrop{z-index:200;box-sizing:border-box;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.confirm-dialog{background:#171a21;border:1px solid #2a2e38;border-radius:10px;width:min(440px,100%);padding:1.25rem 1.5rem}.confirm-dialog-title{margin:0 0 .6rem;font-size:1.1rem}.confirm-dialog-message{color:#c7cbd4;margin:0;line-height:1.5}.confirm-dialog-error{color:#ff9a9a;margin:.75rem 0 0}.confirm-dialog-actions{justify-content:flex-end;gap:.6rem;margin-top:1.25rem;display:flex}.confirm-dialog-cancel{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .9rem}.confirm-dialog-confirm{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.confirm-dialog-danger{color:#fff;cursor:pointer;background:#d64545;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.confirm-dialog-cancel:disabled,.confirm-dialog-confirm:disabled,.confirm-dialog-danger:disabled{opacity:.6;cursor:default}.lightbox-backdrop{z-index:100;box-sizing:border-box;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}.lightbox{flex-direction:column;align-items:center;width:min(1100px,100%);max-width:100%;max-height:100%;display:flex;position:relative}.lightbox-media{justify-content:center;align-items:center;width:100%;max-height:75vh;display:flex}.lightbox-image,.lightbox-video{background:#000;border-radius:6px;max-width:100%;max-height:75vh}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1;position:absolute;top:-2.5rem;right:0}.lightbox-nav{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:2.2rem;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:disabled{opacity:.25;cursor:default}.lightbox-nav:not(:disabled):hover{background:#ffffff40}.lightbox-prev{left:-1rem}.lightbox-next{right:-1rem}.lightbox-meta{color:#e6e8ec;text-align:center;width:100%;margin-top:1rem}.lightbox-meta-title-row{justify-content:center;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.lightbox-meta-title{word-break:break-all;font-weight:600}.lightbox-delete-button{color:#ff9a9a;cursor:pointer;background:0 0;border:1px solid #4a2a2a;border-radius:6px;flex-shrink:0;padding:.2rem .6rem;font-size:.8rem}.lightbox-delete-button:hover:not(:disabled){background:#3b2020}.lightbox-delete-button:disabled{opacity:.5;cursor:default}.lightbox-meta-row{color:#9aa0ac;flex-wrap:wrap;justify-content:center;gap:1rem;font-size:.88rem;display:flex}.lightbox-meta-status{color:#9aa0ac;margin-top:.4rem;font-size:.82rem}.lightbox-meta-error{color:#ff9a9a}.lightbox-organize-status{word-break:break-all}.lightbox-organized-yes{color:#7fd490}.lightbox-organized-no{color:#9aa0ac}.lightbox-faces{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.6rem;display:flex}.lightbox-face-chip{background:#21252e;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .4rem .25rem .75rem;font-size:.82rem;display:inline-flex}.lightbox-face-chip a{color:#a9c1ff;text-decoration:none}.lightbox-face-chip a:hover{text-decoration:underline}.lightbox-face-remove{color:#7a8091;cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.1rem .25rem;font-size:.95rem;line-height:1}.lightbox-face-remove:hover:not(:disabled){color:#ff9a9a;background:#3b2020}.lightbox-face-remove:disabled{opacity:.5;cursor:default}.lightbox-add-person{color:#9aa0ac;cursor:pointer;background:0 0;border:1px dashed #3a3f4b;border-radius:999px;padding:.25rem .75rem;font-size:.82rem}.lightbox-add-person:hover{color:#a9c1ff;border-color:#5b8cff}.lightbox-event-row{justify-content:center;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.lightbox-event-label{color:#9aa0ac;font-size:.82rem}.lightbox-details-form{text-align:left;background:#171a21;border-radius:8px;margin-top:.75rem;padding:.75rem .9rem}.lightbox-details-row{flex-wrap:wrap;gap:.75rem;display:flex}.lightbox-details-form label{color:#9aa0ac;flex-direction:column;flex:1;gap:.25rem;min-width:160px;font-size:.78rem;display:flex}.lightbox-details-description{margin-top:.6rem;display:block}.lightbox-details-form input,.lightbox-details-form textarea,.lightbox-tag-picker select,.lightbox-tag-picker input{color:#e6e8ec;box-sizing:border-box;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;width:100%;padding:.4rem .55rem;font-family:inherit;font-size:.9rem}.lightbox-details-form textarea{resize:vertical}.lightbox-details-actions{align-items:center;gap:.75rem;margin-top:.6rem;display:flex}.lightbox-details-actions button,.lightbox-tag-picker button[type=submit]{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:600}.lightbox-details-actions button:disabled,.lightbox-tag-picker button:disabled{opacity:.6;cursor:default}.lightbox-tag-picker{text-align:left;background:#171a21;border-radius:8px;margin-top:.6rem;padding:.75rem .9rem}.lightbox-tag-picker-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.lightbox-tag-picker-or{color:#9aa0ac;flex-shrink:0;font-size:.8rem}.lightbox-tag-cancel{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.4rem .8rem;font-size:.85rem}@media (width<=640px){.lightbox-nav{width:2.4rem;height:2.4rem;font-size:1.6rem}.lightbox-prev{left:.25rem}.lightbox-next{right:.25rem}}.stats-strip{background:#171a21;border-radius:10px;gap:1.5rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.stat{flex-direction:column;align-items:center;min-width:70px;display:flex}.stat-value{font-size:1.3rem;font-weight:700}.stat-label{color:#9aa0ac;font-size:.78rem}.storage-bar-wrap{border-left:1px solid #2a2e38;flex-direction:column;flex:1;justify-content:center;gap:.35rem;min-width:160px;padding-left:1.5rem;display:flex}.storage-bar-label{color:#9aa0ac;font-size:.78rem}.storage-bar-track{background:#21252e;border-radius:999px;height:6px;overflow:hidden}.storage-bar-fill{border-radius:999px;height:100%;transition:width .3s}.storage-bar-ok{background:#5b8cff}.storage-bar-warn{background:#e0c26b}.storage-bar-full{background:#ff9a9a}.person-card{color:#e6e8ec;background:#171a21;border-radius:10px;flex-direction:column;align-items:center;gap:.4rem;padding:1rem;text-decoration:none;display:flex}.person-card:hover{outline:2px solid #5b8cff}.person-card-thumb{background:#21252e;border-radius:50%;width:96px;height:96px;overflow:hidden}.person-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.person-card-name{text-align:center;font-weight:600}.person-card-count{color:#9aa0ac;font-size:.82rem}.page-title{margin:.25rem 0 1.25rem;font-size:1.4rem}.people-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;display:grid}.people-status{color:#9aa0ac;padding:1rem 0}.people-error{color:#ff9a9a}.people-name-queue-link{color:#5b8cff;margin-bottom:1.25rem;font-size:.9rem;text-decoration:none;display:inline-block}.people-name-queue-link:hover{text-decoration:underline}.person-detail-back{color:#9aa0ac;margin-bottom:1rem;font-size:.9rem;text-decoration:none;display:inline-block}.person-detail-back:hover{color:#e6e8ec}.person-detail-header{background:#171a21;border-radius:10px;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.person-detail-thumb{object-fit:cover;background:#21252e;border-radius:50%;width:84px;height:84px}.person-detail-rename{gap:.5rem;display:flex}.person-detail-rename input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .6rem;font-size:1rem}.person-detail-rename button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.person-detail-rename button:disabled{opacity:.6;cursor:default}.person-detail-count{color:#9aa0ac;margin:.5rem 0 0;font-size:.85rem}.person-detail-facts{margin-top:.6rem}.person-detail-fact{color:#9aa0ac;margin:.2rem 0;font-size:.88rem}.person-detail-description{color:#e6e8ec;white-space:pre-wrap;margin:.5rem 0 0;font-size:.9rem}.person-detail-form{text-align:left;background:#0f1115;border-radius:8px;max-width:360px;margin-top:.75rem;padding:.75rem .9rem}.person-detail-form-full{color:#9aa0ac;flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.78rem;display:flex}.person-detail-form-full:first-child{margin-top:0}.person-detail-form input,.person-detail-form textarea{color:#e6e8ec;box-sizing:border-box;background:#171a21;border:1px solid #2a2e38;border-radius:6px;width:100%;padding:.4rem .55rem;font-family:inherit;font-size:.9rem}.person-detail-form textarea{resize:vertical}.person-detail-form-actions{align-items:center;gap:.75rem;margin-top:.6rem;display:flex}.person-detail-form-actions button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:600}.person-detail-form-actions button:disabled{opacity:.6;cursor:default}.name-queue-progress{color:#9aa0ac;margin:0 0 1rem;font-size:.9rem}.name-queue-card{background:#171a21;border-radius:10px;gap:1.5rem;margin-bottom:2rem;padding:1.25rem;display:flex}.name-queue-thumb{object-fit:cover;background:#21252e;border-radius:50%;flex-shrink:0;width:120px;height:120px}.name-queue-forms{flex-direction:column;flex:1;gap:1rem;min-width:0;display:flex}.name-queue-form label{color:#9aa0ac;margin-bottom:.35rem;font-size:.85rem;display:block}.name-queue-form-row{gap:.5rem;display:flex}.name-queue-form-row input,.name-queue-form-row select{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;min-width:0;padding:.45rem .6rem;font-size:1rem}.name-queue-form-row button{color:#0f1115;cursor:pointer;white-space:nowrap;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.name-queue-form-row button:disabled{opacity:.6;cursor:default}.name-queue-skip{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;align-self:flex-start;padding:.4rem .8rem}.name-queue-skip:disabled{opacity:.6;cursor:default}.name-queue-subtitle{margin:0 0 1rem;font-size:1.1rem}.name-queue-suggest{background:#171a21;border-radius:10px;margin-bottom:1.5rem;padding:1rem 1.25rem}.name-queue-suggest>button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600}.name-queue-suggest>button:disabled{opacity:.6;cursor:default}.name-queue-suggest-hint{color:#9aa0ac;max-width:560px;margin-top:.5rem;font-size:.85rem;display:block}.name-queue-suggestions-list{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.name-queue-suggestion-row{background:#0f1115;border:1px solid #2a2e38;border-radius:8px;align-items:center;gap:.75rem;padding:.6rem .85rem;display:flex}.name-queue-suggestion-thumb{object-fit:cover;background:#21252e;border-radius:50%;flex-shrink:0;width:44px;height:44px}.name-queue-suggestion-thumb-link{cursor:pointer;outline-offset:2px;outline:2px solid #0000;transition:outline-color .15s}.name-queue-suggestion-thumb-link:hover{outline-color:#5b8cff}.name-queue-suggestion-arrow{color:#9aa0ac}.name-queue-suggestion-info{flex:1;min-width:0}.name-queue-suggestion-name{font-weight:600}.name-queue-suggestion-confidence{color:#9aa0ac;font-size:.8rem}.name-queue-suggestion-actions{flex-shrink:0;gap:.5rem;display:flex}.name-queue-suggestion-actions button{color:#0f1115;cursor:pointer;white-space:nowrap;background:#5b8cff;border:none;border-radius:6px;padding:.35rem .7rem;font-size:.85rem;font-weight:600}.name-queue-suggestion-actions button:disabled{opacity:.6;cursor:default}.name-queue-suggestion-actions button.name-queue-suggestion-dismiss{color:#9aa0ac;background:0 0;border:1px solid #2a2e38}.folder-picker-backdrop{z-index:100;box-sizing:border-box;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.folder-picker{background:#171a21;border:1px solid #2a2e38;border-radius:10px;flex-direction:column;width:min(560px,100%);max-height:80vh;display:flex;overflow:hidden}.folder-picker-header{border-bottom:1px solid #2a2e38;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.folder-picker-header h2{margin:0;font-size:1.1rem}.folder-picker-close{color:#9aa0ac;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1}.folder-picker-close:hover{color:#e6e8ec}.folder-picker-shortcuts{border-bottom:1px solid #2a2e38;flex-wrap:wrap;gap:.5rem;padding:.85rem 1.25rem;display:flex}.folder-picker-shortcuts button{color:#c7cbd4;cursor:pointer;background:#21252e;border:1px solid #2a2e38;border-radius:6px;padding:.35rem .7rem;font-size:.85rem}.folder-picker-shortcuts button:hover{background:#2a2e38}.folder-picker-path{border-bottom:1px solid #2a2e38;align-items:center;gap:.75rem;padding:.6rem 1.25rem;display:flex}.folder-picker-up{color:#c7cbd4;cursor:pointer;white-space:nowrap;background:#21252e;border:1px solid #2a2e38;border-radius:6px;padding:.3rem .6rem;font-size:.85rem}.folder-picker-up:disabled{opacity:.5;cursor:default}.folder-picker-current{color:#9aa0ac;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.folder-picker-list{flex:1;min-height:200px;padding:.5rem;overflow-y:auto}.folder-picker-entry{text-align:left;color:#e6e8ec;cursor:pointer;background:0 0;border:none;border-radius:6px;width:100%;padding:.5rem .75rem;font-size:.95rem;display:block}.folder-picker-entry:hover{background:#21252e}.folder-picker-status{color:#9aa0ac;padding:.5rem .75rem}.folder-picker-error{color:#ff9a9a}.folder-picker-footer{border-top:1px solid #2a2e38;justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;display:flex}.folder-picker-cancel{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .9rem}.folder-picker-select{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.folder-picker-select:disabled{opacity:.6;cursor:default}.import-intro{color:#9aa0ac;max-width:640px;line-height:1.5}.import-intro code{background:#171a21;border-radius:4px;padding:.1rem .35rem;font-size:.9em}.import-form{gap:.5rem;max-width:640px;margin:1rem 0 1.25rem;display:flex}.import-form input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;padding:.55rem .7rem;font-size:1rem}.import-form input:disabled{opacity:.6}.import-form button,.import-organize button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.55rem 1.1rem;font-weight:600}.import-form button:disabled,.import-organize button:disabled{opacity:.6;cursor:default}.import-form button.import-browse-button{color:#c7cbd4;background:0 0;border:1px solid #2a2e38}.import-form button.import-browse-button:hover:not(:disabled){background:#21252e}.import-status{color:#9aa0ac;margin:.5rem 0}.import-error{color:#ff9a9a}.import-success{color:#7fd490}.import-progress{background:#171a21;border-radius:10px;max-width:640px;margin-bottom:1.5rem;padding:1rem 1.25rem}.import-progress-header{align-items:center;gap:.75rem;display:flex}.import-progress-count{color:#9aa0ac;font-size:.9rem}.import-progress-bar{background:#21252e;border-radius:999px;height:8px;margin-top:.6rem;overflow:hidden}.import-progress-fill{background:#5b8cff;height:100%;transition:width .3s}.import-progress-message{color:#9aa0ac;word-break:break-all;margin:.6rem 0 0;font-size:.85rem}.import-badge{text-transform:capitalize;color:#c7cbd4;background:#21252e;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.import-badge-done{color:#7fd490;background:#1e3b26}.import-badge-error{color:#ff9a9a;background:#3b2020}.import-badge-running,.import-badge-pending{color:#a9c1ff;background:#223055}.import-section-title{margin:0 0 .5rem;font-size:1.1rem}.import-organize{background:#171a21;border-radius:10px;max-width:640px;margin-bottom:1.5rem;padding:1rem 1.25rem}.import-organize button{margin-top:.5rem}.import-jobs-list{max-width:900px;margin:0;padding:0;list-style:none}.import-job-row{border-bottom:1px solid #1c1f26;flex-wrap:wrap;align-items:center;gap:.9rem;padding:.55rem 0;font-size:.88rem;display:flex}.import-job-progress{color:#9aa0ac;min-width:60px}.import-job-message{color:#c7cbd4;word-break:break-all;flex:1;min-width:120px}.import-job-started{color:#9aa0ac;font-size:.8rem}.import-danger{background:#171a21;border:1px solid #3b2020;border-radius:10px;max-width:640px;margin-bottom:1.5rem;padding:1rem 1.25rem}.import-clear-button{color:#ff9a9a;cursor:pointer;background:0 0;border:1px solid #4a2a2a;border-radius:6px;margin-top:.5rem;padding:.5rem 1rem;font-weight:600}.import-clear-button:hover{background:#3b2020}.event-card{color:#e6e8ec;background:#171a21;border-radius:10px;flex-direction:column;align-items:center;gap:.4rem;padding:1rem;text-decoration:none;display:flex}.event-card:hover{outline:2px solid #5b8cff}.event-card-thumb{background:#21252e;border-radius:8px;justify-content:center;align-items:center;width:120px;height:90px;display:flex;overflow:hidden}.event-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.event-card-placeholder{opacity:.5;font-size:1.8rem}.event-card-name{text-align:center;font-weight:600}.event-card-count{color:#9aa0ac;font-size:.82rem}.events-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.events-new-button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600}.events-new-form{gap:.5rem;margin:1rem 0;display:flex}.events-new-form input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;max-width:320px;padding:.45rem .6rem;font-size:1rem}.events-new-form button[type=submit]{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.events-new-form button[type=submit]:disabled{opacity:.6;cursor:default}.events-new-cancel{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .8rem}.events-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-top:1rem;display:grid}.event-detail-header{background:#171a21;border-radius:10px;align-items:flex-start;gap:1.25rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.event-detail-thumb{opacity:.8;background:#21252e;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:90px;font-size:1.8rem;display:flex;overflow:hidden}.event-detail-thumb img{object-fit:cover;width:100%;height:100%}.event-detail-info{flex:1;min-width:0}.event-detail-rename{gap:.5rem;display:flex}.event-detail-rename input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;max-width:320px;padding:.45rem .6rem;font-size:1rem}.event-detail-rename button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.event-detail-rename button:disabled{opacity:.6;cursor:default}.event-detail-facts{margin-top:.6rem}.event-detail-fact{color:#9aa0ac;margin:.2rem 0;font-size:.88rem}.event-detail-description{color:#e6e8ec;white-space:pre-wrap;margin:.5rem 0 0;font-size:.9rem}.event-detail-form{text-align:left;background:#0f1115;border-radius:8px;margin-top:.75rem;padding:.75rem .9rem}.event-detail-form-row{flex-wrap:wrap;gap:.75rem;display:flex}.event-detail-form label{color:#9aa0ac;flex-direction:column;flex:1;gap:.25rem;min-width:140px;font-size:.78rem;display:flex}.event-detail-form-full{margin-top:.6rem;display:block}.event-detail-form input,.event-detail-form textarea{color:#e6e8ec;box-sizing:border-box;background:#171a21;border:1px solid #2a2e38;border-radius:6px;width:100%;padding:.4rem .55rem;font-family:inherit;font-size:.9rem}.event-detail-form textarea{resize:vertical}.event-detail-form-actions{align-items:center;gap:.75rem;margin-top:.6rem;display:flex}.event-detail-form-actions button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:600}.event-detail-form-actions button:disabled{opacity:.6;cursor:default}.event-detail-merge{margin-top:.85rem}.event-detail-merge label{color:#9aa0ac;margin-bottom:.35rem;font-size:.82rem;display:block}.event-detail-merge-row{gap:.5rem;max-width:400px;display:flex}.event-detail-merge-row select{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;padding:.4rem .55rem}.event-detail-merge-row button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.4rem .9rem;font-weight:600}.event-detail-merge-row button:disabled{opacity:.6;cursor:default}.timeline-card{color:#e6e8ec;background:#171a21;border-radius:10px;flex-direction:column;align-items:center;gap:.4rem;padding:1rem;text-decoration:none;display:flex}.timeline-card:hover{outline:2px solid #5b8cff}.timeline-card-thumb{background:#21252e;border-radius:8px;justify-content:center;align-items:center;width:120px;height:90px;display:flex;overflow:hidden}.timeline-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.timeline-card-placeholder{opacity:.5;font-size:1.8rem}.timeline-card-name{text-align:center;font-weight:600}.timeline-card-count{color:#9aa0ac;text-align:center;font-size:.82rem}.timelines-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.timelines-header .page-title{margin:0}.timelines-new-link{color:#0f1115;white-space:nowrap;background:#5b8cff;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none}.timelines-new-link:hover{background:#7ba0ff}.timelines-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;display:grid}.photo-picker{flex-direction:column;gap:.85rem;display:flex}.photo-picker-toolbar{color:#9aa0ac;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.photo-picker-toolbar-actions{gap:.5rem;display:flex}.photo-picker-toolbar-actions button{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.3rem .7rem;font-size:.8rem}.photo-picker-toolbar-actions button:hover{color:#a9c1ff;border-color:#5b8cff}.photo-picker-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;max-height:50vh;padding-right:.25rem;display:grid;overflow-y:auto}.photo-picker-cell{cursor:pointer;aspect-ratio:1;opacity:.45;background:#171a21;border:none;border-radius:8px;width:100%;padding:0;position:relative;overflow:hidden}.photo-picker-cell.checked{opacity:1;outline-offset:-2px;outline:2px solid #5b8cff}.photo-picker-cell img{object-fit:cover;background:#21252e;width:100%;height:100%;display:block}.photo-picker-checkbox{color:#5b8cff;background:#0f1115bf;border:1px solid #5b8cff;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;font-size:.8rem;font-weight:700;display:flex;position:absolute;top:6px;right:6px}.photo-picker-actions{border-top:1px solid #2a2e38;justify-content:flex-end;gap:.6rem;padding-top:.85rem;display:flex}.photo-picker-cancel{color:#9aa0ac;cursor:pointer;background:0 0;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .9rem}.photo-picker-confirm{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.photo-picker-confirm:disabled{opacity:.6;cursor:default}.timeline-builder-form{background:#171a21;border-radius:10px;max-width:640px;padding:1.25rem 1.5rem}.timeline-builder-name-label{color:#9aa0ac;margin-bottom:.35rem;font-size:.85rem;display:block}.timeline-builder-name-input{box-sizing:border-box;color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;width:100%;padding:.55rem .7rem;font-size:1rem}.timeline-builder-blocks{margin-top:1.5rem}.timeline-builder-subtitle{margin:0 0 .75rem;font-size:1rem}.timeline-block-row{background:#0f1115;border:1px solid #2a2e38;border-radius:8px;align-items:center;gap:.6rem;margin-bottom:.5rem;padding:.5rem .75rem;display:flex}.timeline-block-type{font-size:1.1rem}.timeline-block-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.timeline-block-count{color:#9aa0ac;white-space:nowrap;font-size:.82rem}.timeline-block-remove{color:#7a8091;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;padding:.15rem .35rem;font-size:1.1rem;line-height:1}.timeline-block-remove:hover{color:#ff9a9a;background:#3b2020}.timeline-builder-add-buttons{gap:.6rem;margin-top:.75rem;display:flex}.timeline-builder-add-buttons button{color:#9aa0ac;cursor:pointer;background:0 0;border:1px dashed #3a3f4b;border-radius:6px;padding:.5rem .9rem;font-size:.88rem}.timeline-builder-add-buttons button:hover{color:#a9c1ff;border-color:#5b8cff}.timeline-builder-save-row{margin-top:1.5rem}.timeline-builder-save-row button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.55rem 1.1rem;font-weight:600}.timeline-builder-save-row button:disabled{opacity:.6;cursor:default}.timeline-modal-backdrop{z-index:150;box-sizing:border-box;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.timeline-modal-title{margin:0 0 .85rem;font-size:1.05rem}.timeline-ref-picker{background:#171a21;border:1px solid #2a2e38;border-radius:10px;flex-direction:column;width:min(480px,100%);max-height:80vh;padding:1.25rem 1.5rem;display:flex}.timeline-ref-picker-filter{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;margin-bottom:.75rem;padding:.45rem .6rem;font-size:.9rem}.timeline-ref-picker-list{flex-direction:column;gap:.4rem;display:flex;overflow-y:auto}.timeline-ref-picker-row{cursor:pointer;color:#e6e8ec;text-align:left;background:#0f1115;border:1px solid #2a2e38;border-radius:8px;align-items:center;gap:.65rem;padding:.5rem .65rem;display:flex}.timeline-ref-picker-row:hover{border-color:#5b8cff}.timeline-ref-picker-thumb{object-fit:cover;background:#21252e;border-radius:6px;flex-shrink:0;width:36px;height:36px}.timeline-ref-picker-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.timeline-ref-picker-count{color:#9aa0ac;white-space:nowrap;font-size:.78rem}.timeline-modal-actions{justify-content:flex-end;margin-top:.85rem;display:flex}.timeline-photo-picker-modal{background:#171a21;border:1px solid #2a2e38;border-radius:10px;width:min(720px,100%);max-height:85vh;padding:1.25rem 1.5rem;overflow-y:auto}.timeline-view-header{background:#171a21;border-radius:10px;margin-bottom:1.5rem;padding:1rem 1.25rem}.timeline-view-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.timeline-view-rename{flex:1;gap:.5rem;min-width:220px;display:flex}.timeline-view-rename input{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;flex:1;max-width:420px;padding:.45rem .6rem;font-size:1.1rem;font-weight:600}.timeline-view-rename button{color:#0f1115;cursor:pointer;background:#5b8cff;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.timeline-view-rename button:disabled{opacity:.6;cursor:default}.timeline-view-actions{flex-shrink:0;align-items:center;gap:.6rem;display:flex}.timeline-view-edit-link{color:#a9c1ff;border:1px solid #2a2e38;border-radius:6px;padding:.45rem .9rem;font-size:.88rem;text-decoration:none}.timeline-view-edit-link:hover{border-color:#5b8cff}.timeline-view-delete-button{color:#ff9a9a;cursor:pointer;background:0 0;border:1px solid #4a2a2a;border-radius:6px;padding:.45rem .9rem;font-size:.88rem}.timeline-view-delete-button:hover{background:#3b2020}.timeline-view-meta{color:#9aa0ac;margin:.6rem 0 0;font-size:.85rem}.timeline-feed{flex-wrap:wrap;align-content:flex-start;gap:.6rem;display:flex}.timeline-divider{color:#9aa0ac;border-bottom:1px solid #2a2e38;flex-basis:100%;margin:1rem 0 .25rem;padding-bottom:.35rem;font-size:.9rem;font-weight:600}.timeline-unknown-heading{margin-top:1.5rem}.timeline-unknown-section{flex-basis:100%}.timeline-photo-cell{width:150px}.timeline-cluster-block{flex-basis:100%}.timeline-cluster-card{box-sizing:border-box;cursor:pointer;text-align:left;color:#e6e8ec;background:#171a21;border:1px solid #2a2e38;border-radius:10px;align-items:center;gap:1rem;width:100%;padding:.75rem 1rem;display:flex}.timeline-cluster-card:hover{border-color:#5b8cff}.timeline-cluster-thumb{background:#21252e;border-radius:8px;flex-shrink:0;width:84px;height:84px;position:relative;overflow:hidden}.timeline-cluster-thumb img{object-fit:cover;width:100%;height:100%;display:block}.timeline-cluster-badge{color:#fff;background:#000000b3;border-radius:999px;padding:.1rem .4rem;font-size:.72rem;font-weight:700;position:absolute;bottom:4px;right:4px}.timeline-cluster-info{flex:1;min-width:0}.timeline-cluster-name{font-weight:600}.timeline-cluster-range{color:#9aa0ac;margin-top:.2rem;font-size:.82rem}.timeline-cluster-toggle{color:#9aa0ac;flex-shrink:0;font-size:.82rem}.timeline-cluster-expanded{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;padding-left:.5rem;display:flex}.timeline-mini-card{width:100px}.users-table{flex-direction:column;gap:.4rem;display:flex}.users-row{background:#171a21;border:1px solid #2a2e38;border-radius:8px;grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;gap:1rem;padding:.65rem 1rem;display:grid}.users-row-head{color:#9aa0ac;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:none;padding:0 1rem;font-size:.8rem}.users-email{color:#e6e8ec;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.users-role-cell{flex-direction:column;gap:.25rem;display:flex}.users-role-cell select{color:#e6e8ec;background:#0f1115;border:1px solid #2a2e38;border-radius:6px;max-width:140px;padding:.3rem .5rem;font-size:.85rem}.users-role-badge{color:#9aa0ac;font-size:.9rem}.users-row-error{margin:0;font-size:.78rem}.resources-page{--res-ok:#4ade80;--res-warn:#fbbf24;--res-bad:#f87171;--res-unknown:#5b6170}.res-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.res-header-right{align-items:center;gap:.75rem;display:flex}.res-refresh{color:#e6e8ec;cursor:pointer;background:#21252e;border:1px solid #2a2e38;border-radius:6px;padding:.35rem .8rem}.res-refresh:disabled{opacity:.6;cursor:default}.res-muted{color:#9aa0ac;margin:0;font-size:.85rem}.res-sub{color:#9aa0ac;margin-left:.35rem;font-size:.8rem;font-weight:400}.res-mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.8rem}.res-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.res-ok{background:var(--res-ok)}.res-warn{background:var(--res-warn)}.res-bad{background:var(--res-bad)}.res-unknown{background:var(--res-unknown)}.res-text-ok{color:var(--res-ok)}.res-text-warn{color:var(--res-warn)}.res-text-bad{color:var(--res-bad)}.res-banner{background:#171a21;border:1px solid #2a2e38;border-left-width:4px;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.res-banner ul{margin:.5rem 0 0;padding-left:1.2rem;font-size:.9rem}.res-banner-ok{border-left-color:var(--res-ok)}.res-banner-warn{border-left-color:var(--res-warn)}.res-banner-bad{border-left-color:var(--res-bad)}.res-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.res-card{background:#171a21;border:1px solid #2a2e38;border-radius:10px;flex-direction:column;gap:.75rem;min-width:0;padding:1rem;display:flex}.res-card-wide{grid-column:1/-1}.res-card h2{align-items:center;gap:.5rem;margin:0;font-size:1.05rem;display:flex}.res-card h3{text-transform:uppercase;letter-spacing:.03em;color:#9aa0ac;margin:.25rem 0 .5rem;font-size:.8rem}.res-meter-head{justify-content:space-between;margin-bottom:.3rem;font-size:.85rem;display:flex}.res-meter-value{font-variant-numeric:tabular-nums}.res-meter-track{background:#21252e;border-radius:999px;height:6px;overflow:hidden}.res-meter-fill{border-radius:999px;height:100%;transition:width .4s}.res-bg-ok{background:var(--res-ok)}.res-bg-warn{background:var(--res-warn)}.res-bg-bad{background:var(--res-bad)}.res-meter-detail{color:#9aa0ac;margin-top:.25rem;font-size:.75rem}.res-facts{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.6rem 1rem;display:grid}.res-fact{flex-direction:column;min-width:0;display:flex}.res-fact-label{color:#9aa0ac;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.res-fact-value{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.res-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.res-list li{align-items:center;gap:.5rem;min-width:0;font-size:.88rem;display:flex}.res-list-main{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.res-latency{color:#9aa0ac;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:.8rem}.res-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}
