:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);color:#1f2a2d;background:#f6f3ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh}.auth-screen{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:max(24px,var(--safe-top)) max(24px,var(--safe-right)) max(24px,var(--safe-bottom)) max(24px,var(--safe-left));background:linear-gradient(90deg,rgba(23,63,79,.06),transparent 36%),#f6f3ed}.auth-layout{display:grid;grid-template-columns:repeat(2,minmax(280px,380px));gap:18px;align-items:start;width:min(100%,800px)}.auth-panel{display:grid;gap:18px;width:100%;border:1px solid rgba(31,42,45,.12);border-radius:8px;padding:24px;background:#fff;box-shadow:0 22px 60px #173f4f1f}.auth-brand{color:#1f2a2d}.auth-brand span{color:#68777c}.auth-field{display:grid;gap:7px;color:#445257;font-size:14px}.auth-field select,.auth-field input{width:100%;height:44px;border:1px solid rgba(31,42,45,.16);border-radius:8px;padding:0 12px;color:#1f2a2d;background:#fff}.auth-error{margin:0;color:#b94242;font-size:14px}.auth-note{margin:0;color:#2f8f83;font-size:14px;line-height:1.45}.auth-copy{display:grid;gap:4px}.auth-copy strong{color:#1f2a2d;font-size:18px}.auth-copy span{color:#68777c;font-size:14px;line-height:1.45}.auth-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:8px;color:#fff;background:#173f4f}.auth-submit.secondary{background:#2f8f83}button,input,select{font:inherit}button{border:0;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e0b84f;outline-offset:2px}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh;min-height:100dvh;background:linear-gradient(90deg,rgba(23,63,79,.05),transparent 28%),#f6f3ed}.sidebar{display:flex;flex-direction:column;gap:18px;min-height:100vh;min-height:100dvh;padding:max(22px,var(--safe-top)) 22px max(22px,var(--safe-bottom)) max(22px,var(--safe-left));color:#edf4f3;background:#173f4f}.mobile-appbar,.mobile-sidebar-close,.sidebar-backdrop{display:none}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;color:#173f4f;background:#f0c95a}.brand strong,.brand span{display:block}.brand span,.field-label{color:#edf4f3b8;font-size:13px}.sidebar select,.album-form input,.user-card{width:100%;height:42px;border:1px solid rgba(237,244,243,.25);border-radius:8px;padding:0 12px;color:#edf4f3;background:#ffffff1a}.user-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.user-card span{color:#edf4f3b8;font-size:13px}.side-nav,.side-actions{display:grid;gap:8px}.side-nav-item,.side-actions button{display:flex;align-items:center;gap:10px;min-height:42px;border-radius:8px;padding:0 11px;color:#edf4f3;background:transparent}.side-nav-item:hover,.side-actions button:hover{background:#ffffff1c}.side-actions button.active,.side-nav-item.active{color:#173f4f;background:#f0c95a}.side-nav-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-nav-item small{margin-left:auto;font-size:12px}.admin-panel{display:grid;gap:12px;border-top:1px solid rgba(237,244,243,.18);padding-top:14px}.admin-heading,.issued-code,.managed-users button{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-heading span,.issued-code span,.managed-users small,.admin-request span,.admin-request p{color:#edf4f3b8;font-size:12px}.issued-code{border-radius:8px;padding:10px;color:#173f4f;background:#f0c95a}.issued-code span{color:#173f4fc7}.issued-code strong{font-size:20px}.admin-list{display:grid;gap:10px}.admin-request{display:grid;gap:8px;border-radius:8px;padding:10px;background:#ffffff17}.admin-request p{margin:0;line-height:1.35}.admin-request input,.admin-request select{width:100%;height:36px;border:1px solid rgba(237,244,243,.25);border-radius:8px;padding:0 10px;color:#edf4f3;background:#ffffff1a}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-actions button,.managed-users button{min-height:34px;border-radius:8px;padding:0 10px;color:#173f4f;background:#f0c95a}.admin-actions button+button{color:#edf4f3;background:#ffffff1a}.managed-users{display:grid;gap:8px}.managed-users-heading,.member-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.managed-users-heading span,.member-summary span,.member-message{color:#edf4f3b8;font-size:11px}.member-message{margin:0;line-height:1.4}.managed-user{display:grid;gap:8px;border-radius:8px;padding:9px;background:#ffffff17}.managed-user.disabled{opacity:.64}.member-summary strong,.member-summary span{min-width:0}.member-summary span{text-align:right}.member-edit-fields{display:grid;grid-template-columns:minmax(0,1fr) 106px;gap:7px}.member-edit-fields input,.member-edit-fields select{min-width:0;height:36px;border:1px solid rgba(237,244,243,.22);border-radius:7px;padding:0 8px;color:#edf4f3;background:#ffffff1a}.member-actions{display:flex;justify-content:flex-end;gap:7px}.member-actions button{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;color:#173f4f;background:#f0c95a}.member-actions button:disabled{opacity:.45;cursor:default}.member-actions .member-status-action{color:#fff;background:#b94242c7}.managed-user.disabled .member-status-action{color:#173f4f;background:#65c7a5}.device-list{display:grid;gap:8px}.device-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:58px;border-radius:8px;padding:9px;background:#ffffff17}.device-item>div{min-width:0}.device-item strong,.device-item span{display:block}.device-item span,.device-message{color:#edf4f3b8;font-size:11px;line-height:1.35}.device-item button{display:inline-flex;align-items:center;gap:5px;min-height:32px;border-radius:7px;padding:0 8px;color:#173f4f;background:#f0c95a}.device-item button span{color:inherit;font-size:11px}.device-item button:disabled{cursor:default;color:#edf4f3a3;background:#ffffff1a}.device-item.revoked{opacity:.58}.device-message{margin:0}.album-form{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:8px}.album-management{margin-top:-8px}.album-management-actions,.album-rename-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.album-management-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border-radius:8px;color:#edf4f3;background:#ffffff1a}.album-management-actions button:last-child{color:#fff;background:#b94242c7}.album-rename-form{grid-template-columns:minmax(0,1fr) 36px 36px}.album-rename-form input{min-width:0;height:36px;border:1px solid rgba(237,244,243,.25);border-radius:8px;padding:0 10px;color:#edf4f3;background:#ffffff1a}.album-rename-form button{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:#173f4f;background:#f0c95a}.album-rename-form button:last-child{color:#edf4f3;background:#ffffff1a}.album-form button{border-radius:8px;color:#173f4f;background:#f0c95a}.album-message{margin:-8px 0 0;color:#edf4f3c7;font-size:12px;line-height:1.4}.backup-status{display:grid;gap:4px;border:1px solid rgba(237,244,243,.2);border-left:4px solid #f0c95a;border-radius:8px;padding:11px 12px;background:#ffffff14}.backup-status.healthy{border-left-color:#65c7a5}.backup-status span,.backup-status small{color:#edf4f3b8;font-size:12px}.operations-drawer{position:fixed;top:0;right:0;z-index:40;display:flex;flex-direction:column;width:min(440px,100vw);height:100vh;height:100dvh;color:#1f2a2d;background:#f6f3ed;box-shadow:-18px 0 48px #0a101233}.operations-header{display:flex;align-items:center;justify-content:space-between;min-height:68px;border-bottom:1px solid rgba(31,42,45,.12);padding:max(14px,var(--safe-top)) max(16px,var(--safe-right)) 14px 18px;background:#fff}.operations-header>div,.operations-header button,.operations-summary{display:flex;align-items:center}.operations-header>div{gap:9px}.operations-header h2{margin:0;font-size:18px}.operations-header button{justify-content:center;width:36px;height:36px;border-radius:8px;color:#445257;background:#f1eee7}.operations-content{overflow-y:auto;padding:16px max(16px,var(--safe-right)) max(24px,var(--safe-bottom)) 16px}.operations-summary{gap:11px;min-height:64px;border-left:4px solid #b94242;padding:10px 12px;background:#fff}.operations-summary.healthy{border-left-color:#2f8f83}.operations-summary div,.operations-summary span{display:block}.operations-summary span{margin-top:3px;color:#68777c;font-size:12px}.operations-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.operations-metrics article{display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px 7px;min-height:96px;border:1px solid rgba(31,42,45,.1);border-radius:8px;padding:11px;background:#fff}.operations-metrics article>svg{grid-row:1 / 4;color:#2f8f83}.operations-metrics span,.operations-metrics small,.operations-section-title span,.error-list span,.error-list small,.audit-list span,.audit-list small{color:#68777c;font-size:11px}.operations-section{margin-top:22px}.operations-section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}.operations-section-title h3{margin:0;font-size:15px}.error-list,.audit-list{display:grid;gap:7px}.error-list article,.audit-list article{display:grid;gap:4px;border:1px solid rgba(31,42,45,.1);border-radius:8px;padding:10px;background:#fff}.error-list article{border-left:3px solid #b94242}.audit-list article>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.audit-list p,.operations-loading{color:#68777c;font-size:13px}.operations-loading{display:grid;place-items:center;min-height:240px}.workspace{display:flex;flex-direction:column;min-width:0;min-height:100vh;min-height:100dvh}.topbar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;min-height:74px;padding:max(16px,var(--safe-top)) 22px 16px;border-bottom:1px solid rgba(31,42,45,.1);background:#f6f3edeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.searchbox{display:flex;align-items:center;gap:10px;height:42px;border:1px solid rgba(31,42,45,.13);border-radius:8px;padding:0 12px;background:#fff}.searchbox input{min-width:0;width:100%;border:0;outline:0;background:transparent}.segmented,.icon-group{display:flex;align-items:center;gap:4px;min-height:42px;border:1px solid rgba(31,42,45,.13);border-radius:8px;padding:4px;background:#fff}.segmented button,.icon-group button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:6px;padding:0 10px;color:#445257;background:transparent}.segmented button.active,.icon-group button.active{color:#fff;background:#2f8f83}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:8px;padding:0 16px;color:#fff;background:#d1623f}.upload-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:14px 22px 0}.upload-item{display:grid;gap:8px;border:1px solid rgba(31,42,45,.1);border-radius:8px;padding:12px;background:#fff}.upload-item span{overflow:hidden;color:#2b383c;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.upload-item strong{color:#2f8f83;font-size:13px}.upload-item.duplicate strong{color:#9b6b1f}.upload-item.failed strong{color:#b94242}.upload-item.retrying strong{color:#9b6b1f}.upload-item button{min-height:34px;border-radius:8px;color:#fff;background:#173f4f}.progress{height:5px;overflow:hidden;border-radius:999px;background:#e6ded2}.progress i{display:block;height:100%;background:#2f8f83}.gallery-area{flex:1;padding:18px 22px 38px}.gallery-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.gallery-context>div{display:flex;align-items:baseline;gap:10px}.gallery-context h1{margin:0;font-size:22px;line-height:1.2}.gallery-context span{color:#68777c;font-size:13px}.cover-status{white-space:nowrap}.empty-trash{display:inline-flex;align-items:center;gap:7px;min-height:38px;border-radius:8px;padding:0 12px;color:#fff;background:#b94242}.empty-trash span{color:inherit}.month-group+.month-group{margin-top:34px}.month-heading{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:#445257}.month-heading h2{margin:0;color:#1f2a2d;font-size:20px;line-height:1.2}.month-heading span{font-size:13px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:14px}.media-card{overflow:hidden;border:1px solid rgba(31,42,45,.1);border-radius:8px;background:#fff;box-shadow:0 14px 36px #173f4f14}.media-open-control{display:block;min-width:0;width:100%;padding:0;color:inherit;text-align:left;background:transparent}.media-title-control{flex:1;align-self:stretch;padding:0}.media-card.trashed,.media-row.trashed{opacity:.58}.media-preview{position:relative;aspect-ratio:1;overflow:hidden;background:#d9dfda}.media-preview.compact{width:72px;height:72px;flex:0 0 72px;border-radius:8px}.media-preview img,.viewer-stage img,.viewer-stage video{width:100%;height:100%;object-fit:contain}.media-preview img{object-fit:cover}.video-placeholder{display:grid;place-items:center;width:100%;height:100%;color:#173f4f;background:#d9dfda}.badges{position:absolute;right:8px;bottom:8px;display:flex;gap:5px}.badges span{display:grid;place-items:center;min-width:26px;height:26px;border-radius:999px;color:#fff;background:#173f4fd6}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:66px;padding:10px}.card-footer strong,.row-main strong,.panel-title h2{overflow-wrap:anywhere}.card-footer span,.row-main span{display:block;margin-top:3px;color:#68777c;font-size:13px}.card-footer>button:not(.media-open-control),.media-row>button:not(.media-row-open),.viewer-tools button,.favorite{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:#445257;background:#f1eee7}.card-footer button.active,.media-row button.active,.favorite.active{color:#fff;background:#d1623f}.media-list{display:grid;gap:10px}.media-row{display:flex;align-items:center;gap:14px;min-height:92px;border:1px solid rgba(31,42,45,.1);border-radius:8px;padding:10px;background:#fff}.media-row-open{display:flex;align-items:center;gap:14px;min-width:0;flex:1;padding:0;color:inherit;text-align:left;background:transparent}.row-main{min-width:0;flex:1}.empty-state{display:grid;place-items:center;gap:12px;width:100%;min-height:420px;border:1px dashed rgba(31,42,45,.26);border-radius:8px;color:#445257;background:#ffffff8c}.empty-state strong{color:#1f2a2d;font-size:22px}.load-more{display:block;min-width:180px;min-height:44px;margin:28px auto 0;border-radius:8px;padding:0 18px;color:#fff;background:#173f4f}.load-more:disabled{cursor:wait;opacity:.65}.viewer{position:fixed;inset:0;z-index:50;display:grid;grid-template-columns:minmax(0,1fr) 360px;background:#0a1012f0}.viewer-main{position:relative;min-width:0;min-height:0}.viewer-toolbar{position:absolute;top:14px;left:14px;right:14px;z-index:2;display:flex;justify-content:space-between;gap:10px}.viewer-toolbar>button,.viewer-tools{display:flex;gap:8px}.viewer-toolbar>button{min-height:38px;border-radius:8px;padding:0 14px;color:#f6f3ed;background:#ffffff1f}.viewer-tools button{color:#f6f3ed;background:#ffffff1f}.viewer-stage{display:grid;place-items:center;width:100%;height:100vh;height:100dvh;padding:72px 68px}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%}.viewer-arrow{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:44px;height:58px;border-radius:8px;color:#f6f3ed;background:#ffffff1f;transform:translateY(-50%)}.viewer-arrow.left{left:14px}.viewer-arrow.right{right:14px}.viewer-panel{display:flex;flex-direction:column;gap:18px;min-width:0;overflow-y:auto;padding:22px;background:#f6f3ed}.panel-title{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:12px;align-items:start}.panel-title h2{margin:0;font-size:20px;line-height:1.28}.meta-grid{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px 12px;align-items:center;border-block:1px solid rgba(31,42,45,.1);padding:14px 0}.meta-grid span{color:#68777c;font-size:13px}.meta-grid input,.comment-controls input,.comment-controls select{min-width:0;height:38px;border:1px solid rgba(31,42,45,.13);border-radius:8px;padding:0 10px;background:#fff}.scope-line{display:flex;align-items:center;gap:6px}.stream-status{display:flex;align-items:center;justify-content:space-between;gap:8px}.stream-status button{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#fff;background:#173f4f}.album-controls{display:grid;gap:10px;border-bottom:1px solid rgba(31,42,45,.1);padding-bottom:16px}.album-controls-heading,.album-add-row,.album-current-actions{display:flex;align-items:center;gap:8px}.album-controls-heading h3{margin:0;font-size:17px}.album-add-row select{min-width:0;height:38px;flex:1;border:1px solid rgba(31,42,45,.13);border-radius:8px;padding:0 10px;background:#fff}.album-add-row button,.album-current-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:8px;padding:0 10px;color:#fff;background:#2f8f83}.album-current-actions{flex-wrap:wrap}.album-current-actions button:last-child{color:#8d3333;background:#f0dfdf}.album-empty-note{color:#68777c;font-size:13px}.reaction-row,.comments-heading,.comment-controls{display:flex;align-items:center;gap:8px}.reaction-row button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:8px;padding:0 10px;color:#173f4f;background:#e6ded2}.comments{display:grid;gap:12px}.comments-heading h3{margin:0;font-size:17px}.comment-list{display:grid;gap:10px}.comment-thread{display:grid;gap:8px}.comment-bubble{display:grid;gap:6px;border-radius:8px;padding:10px;background:#fff}.comment-bubble.reply{margin-left:24px;border-left:3px solid #2f8f83}.comment-bubble div{display:flex;align-items:center;justify-content:space-between;gap:8px}.comment-bubble span{color:#68777c;font-size:12px}.comment-bubble p{margin:0;line-height:1.45}.comment-bubble button,.reply-target{justify-self:start;border-radius:6px;padding:5px 8px;color:#2f8f83;background:#e1eee9}.comment-form{display:grid;gap:8px}.comment-controls{align-items:stretch}.comment-controls select{width:92px}.comment-controls input{flex:1}.comment-controls button{min-width:58px;border-radius:8px;color:#fff;background:#2f8f83}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:980px){.auth-layout,.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:35;width:min(340px,88vw);min-height:100vh;min-height:100dvh;overflow-y:auto;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) 16px max(16px,var(--safe-left));transform:translate(-100%);transition:transform .18s ease}.sidebar.open{transform:translate(0)}.mobile-sidebar-close{display:grid;place-items:center;width:38px;height:38px;margin-left:auto;border-radius:8px;color:#edf4f3;background:#ffffff1a}.sidebar-backdrop{position:fixed;inset:0;z-index:34;display:block;width:100%;height:100%;padding:0;background:#0a101280}.mobile-appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:calc(62px + var(--safe-top));padding:max(12px,var(--safe-top)) max(16px,var(--safe-right)) 12px max(16px,var(--safe-left));border-bottom:1px solid rgba(31,42,45,.1);background:#f6f3edf5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-appbar strong,.mobile-appbar span{display:block}.mobile-appbar strong{font-size:17px}.mobile-appbar span{margin-top:2px;color:#68777c;font-size:12px}.mobile-appbar-actions{display:flex;align-items:center;gap:10px}.mobile-appbar-actions .connection-dot{width:8px;height:8px;margin:0;border-radius:50%;background:#9b6b1f}.mobile-appbar-actions .connection-dot.connected{background:#2f8f83}.mobile-appbar-actions button{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;color:#fff;background:#173f4f}.side-nav,.side-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.album-management-actions button,.album-rename-form input{min-height:44px}.album-rename-form{grid-template-columns:minmax(0,1fr) 44px 44px}.album-rename-form button{width:44px;height:44px}.member-edit-fields input,.member-edit-fields select,.member-actions button{min-height:44px}.member-actions button{width:44px;height:44px}.topbar{position:relative;top:auto;grid-template-columns:1fr}.viewer{grid-template-columns:1fr}.viewer-panel{max-height:46vh}.viewer-stage{height:54vh;height:54dvh;padding:62px 54px 24px}}@media(min-width:981px)and (max-width:1280px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.topbar{grid-template-columns:minmax(220px,1fr) auto auto}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media(max-width:620px){.segmented,.icon-group{width:100%;overflow-x:auto;justify-content:flex-start}.primary-action{width:100%}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-area,.topbar{padding-right:max(14px,var(--safe-right));padding-left:max(14px,var(--safe-left))}.viewer-stage{padding-inline:46px}.viewer-panel{padding:16px max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left))}.comment-controls{flex-wrap:wrap}.comment-controls select,.comment-controls button{flex:1 0 92px}}
