:root{color:#202623;background:#f4f5f2;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f4f5f2;--surface: #ffffff;--surface-muted: #ecefeb;--line: #d9ded9;--line-strong: #b9c1bb;--text: #202623;--muted: #68716b;--green: #356451;--green-hover: #294f40;--green-soft: #dfeae4;--blue: #356b82;--coral: #aa4f43;--coral-soft: #f4e2de;--gold: #d79a33;letter-spacing:0}*{box-sizing:border-box;letter-spacing:0}html,body,#root{min-width:320px;min-height:100%;margin:0}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6aa68b;outline-offset:2px}button:disabled{opacity:.48;cursor:not-allowed!important}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.primary-button,.secondary-button,.danger-button,.text-button{min-height:40px;border-radius:5px;border:1px solid transparent;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:650;white-space:nowrap}.primary-button{background:var(--green);color:#fff}.primary-button:hover:not(:disabled){background:var(--green-hover)}.secondary-button{background:var(--surface);border-color:var(--line-strong)}.secondary-button:hover:not(:disabled){background:var(--surface-muted)}.danger-button{background:var(--coral);color:#fff}.text-button{background:transparent;color:var(--green);min-height:32px;padding:0 6px}.icon-button,.viewer-icon{width:40px;height:40px;border:0;padding:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer}.icon-button:hover:not(:disabled){background:var(--surface-muted)}.icon-button.small{width:30px;height:30px}.icon-button.danger,button.danger{color:var(--coral)}.app-loading{height:100vh;display:grid;place-items:center;background:#e9ede9}.app-loading-spinner{width:28px;height:28px;border:3px solid var(--line-strong);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.login-symbol{width:44px;height:44px;display:grid;place-items:center;color:#fff;background:var(--green);border:1px solid #ffffff30;border-radius:6px}.login-symbol svg{width:22px;height:22px}.login-page{position:relative;min-height:100vh;background:#1d2420 url(/assets/sign-in-YyYWB188.webp) center / cover no-repeat;display:flex;align-items:center;padding:48px clamp(24px,7vw,112px)}.login-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#151a17dd,#151a1788 38%,#151a1710 70%)}.login-panel{position:relative;width:min(370px,100%);color:#fff}.login-panel h1{font-family:Georgia,serif;font-size:44px;line-height:1;margin:20px 0 5px;font-weight:600}.login-subtitle{margin:0 0 34px;color:#dce3df;font-size:16px}.login-panel form{display:grid;gap:18px}.login-panel label,.form-stack label,.dialog-body>label,.access-folder-select label{display:grid;gap:7px;font-size:13px;font-weight:650}input,select{min-height:40px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:4px;padding:0 11px;min-width:0}.login-panel input{background:#ffffffed;border-color:#ffffff80}.login-button{margin-top:5px;width:100%;background:#4a8069}.form-error,.error-banner{color:#8f352d;background:var(--coral-soft);border:1px solid #e6b7af;border-radius:4px;padding:10px 12px;font-size:13px}.app-shell{min-height:100vh}.mobile-nav-trigger{display:none}.sidebar{position:fixed;z-index:20;left:0;top:0;bottom:0;width:240px;background:#eef1ed;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:12px 8px}.sidebar-mobile-title{display:none}.sidebar nav{display:grid;gap:2px;padding-bottom:12px;border-bottom:1px solid var(--line)}.sidebar-row{width:100%;height:38px;border:0;background:transparent;display:grid;grid-template-columns:19px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;padding:0 10px;border-radius:4px;cursor:pointer;font-size:14px}.sidebar-row span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar-row small{color:var(--muted);font-size:11px}.sidebar-row:hover{background:#e0e5e0}.sidebar-row.active{background:#d5e2da;color:#244c3b;font-weight:650}.sidebar-section-title{min-height:38px;padding:9px 8px 4px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.sidebar-section-title.tag-heading{margin-top:13px;border-top:1px solid var(--line);padding-top:16px}.sidebar-section-title.tag-heading span{display:flex;align-items:center;gap:6px}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:20px}.tag-dot{width:9px;height:9px;border-radius:50%}.tag-row{grid-template-columns:12px minmax(0,1fr) auto}.sidebar-empty{font-size:13px;color:var(--muted);padding:0 10px}.sidebar-account{padding-top:8px;border-top:1px solid var(--line)}.profile-row{height:50px}.profile-row>span{display:flex;min-width:0;flex-direction:column;gap:2px}.profile-row>span strong{overflow:hidden;text-overflow:ellipsis;font-size:13px}.profile-row>span small{font-size:11px;font-weight:400}.app-content{min-height:100vh;margin-left:240px}.library-view,.content-view{min-height:100vh}.library-toolbar,.view-title{min-height:78px;padding:15px 24px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.library-title h1,.view-title h1{margin:0;font-size:20px;line-height:1.25}.library-title span,.view-title p{display:block;margin:4px 0 0;color:var(--muted);font-size:13px}.toolbar-primary{display:flex;align-items:center;gap:10px}.search-box{width:min(320px,30vw);height:40px;display:grid;grid-template-columns:18px minmax(0,1fr) 26px;align-items:center;gap:7px;padding-left:10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface)}.search-box:focus-within{outline:3px solid #6aa68b;outline-offset:2px}.search-box input{border:0;height:38px;min-height:0;padding:0;outline:0}.search-box button{border:0;background:transparent;padding:0;display:grid;place-items:center;cursor:pointer}.filter-bar{min-height:54px;padding:7px 24px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);background:#fafbfa;overflow-x:auto}.segmented{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);padding:2px}.segmented button{height:34px;border:0;background:transparent;border-radius:3px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;white-space:nowrap}.segmented button.active{background:var(--green-soft);color:#244c3b;font-weight:650}.sort-control{height:38px;border:1px solid var(--line-strong);background:var(--surface);border-radius:4px;display:flex;align-items:center;padding-left:10px}.sort-control select{border:0;height:36px;min-height:0;padding-left:7px;background:transparent}.direction-button,.filter-toggle{height:38px;min-width:38px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;cursor:pointer;white-space:nowrap;font-size:13px}.filter-toggle.active{background:var(--green-soft);border-color:#97b5a6;color:#244c3b}.grid-size{display:inline-flex;align-items:center;gap:7px;margin-left:auto}.grid-size input{width:90px;min-height:0;padding:0;accent-color:var(--green)}.active-filters{display:flex;gap:7px;align-items:center;padding:8px 24px;border-bottom:1px solid var(--line)}.active-filters button{height:29px;border:1px solid var(--line);border-radius:15px;background:var(--surface);display:flex;align-items:center;gap:6px;padding:0 9px;cursor:pointer;font-size:12px}.active-filters i{width:8px;height:8px;border-radius:50%}.active-filters .clear-filter{border:0;color:var(--coral);background:transparent}.error-banner{margin:12px 24px 0;display:flex;justify-content:space-between;align-items:center}.error-banner button{border:0;background:transparent;cursor:pointer;color:inherit}.media-grid{display:grid;gap:12px;padding:18px 24px 36px;align-items:start}.media-card{min-width:0;position:relative;background:var(--surface);border:1px solid #d8ddd8;border-radius:5px;overflow:hidden}.media-card.selected{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.media-open{display:block;position:relative;width:100%;aspect-ratio:4 / 3;padding:0;border:0;background:#dfe3df;cursor:pointer;overflow:hidden}.media-open img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.media-open:hover img{transform:scale(1.025)}.select-button{position:absolute;z-index:2;top:8px;left:8px;width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid #ffffffc0;border-radius:4px;background:#10151280;color:#fff;cursor:pointer;opacity:0}.media-card:hover .select-button,.select-button.checked,.select-button:focus-visible{opacity:1}.select-button.checked{background:var(--green)}.video-badge,.favorite-badge,.location-badge{position:absolute;bottom:8px;left:8px;min-height:25px;padding:0 7px;border-radius:3px;background:#101512c5;color:#fff;display:flex;align-items:center;gap:5px;font-size:11px}.favorite-badge{left:auto;right:8px;color:#ffd071;padding:0 5px}.location-badge{left:auto;right:8px;top:8px;bottom:auto;padding:0 5px}.media-card footer{height:54px;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0}.media-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-card time{color:var(--muted);font-size:11px}.processing-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:8px;font-size:12px}.processing-placeholder svg{animation:pulse 1.4s ease infinite}.processing-placeholder.failed{color:var(--coral);background:var(--coral-soft)}.processing-placeholder.failed svg{animation:none}@keyframes pulse{50%{opacity:.35}}.grid-loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding:18px 24px}.grid-loading span{aspect-ratio:4/3;display:block;border-radius:5px;background:linear-gradient(110deg,#e2e6e2 8%,#f1f3f1 18%,#e2e6e2 33%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position-x:-200%}}.empty-state{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:40px}.empty-state h2{color:var(--text);font-size:17px;margin:14px 0 5px}.empty-state p{margin:0;font-size:13px}.infinite-loader{height:44px;display:grid;place-items:center;color:var(--green)}.infinite-loader svg{width:20px;height:20px;animation:spin .8s linear infinite}.infinite-loader .text-button svg{animation:none}.bulk-bar{position:fixed;z-index:45;left:calc(240px + 50%);bottom:18px;transform:translate(-50%);height:54px;display:flex;align-items:center;gap:3px;padding:6px;border-radius:7px;background:#202723;color:#fff;box-shadow:0 8px 30px #10171338}.bulk-bar>div{display:flex;align-items:center;gap:7px;padding:0 10px;white-space:nowrap;font-size:13px}.bulk-bar>button:not(.icon-button),.bulk-bar>a{height:40px;border:0;border-radius:4px;padding:0 10px;background:transparent;color:#fff;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;text-decoration:none}.bulk-bar>button:hover:not(:disabled),.bulk-bar>a:hover{background:#ffffff16}.bulk-bar .icon-button{color:#fff}.upload-tray{position:fixed;z-index:50;right:16px;bottom:16px;width:min(390px,calc(100vw - 32px));max-height:55vh;background:var(--surface);border:1px solid var(--line-strong);border-radius:7px;box-shadow:0 9px 35px #1f282330;overflow:hidden}.upload-tray-header{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 14px;border-bottom:1px solid var(--line)}.upload-tray-header>div{display:flex;align-items:center;gap:8px;font-size:13px}.upload-tray-header>.upload-tray-actions{gap:3px}.upload-list{max-height:calc(55vh - 46px);overflow-y:auto}.upload-item{padding:10px 12px;border-bottom:1px solid var(--line)}.upload-item:last-child{border:0}.upload-item-line{height:30px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:4px}.upload-filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600}.upload-state{text-transform:capitalize;color:var(--muted);font-size:11px;display:flex;align-items:center}.upload-state.error{color:var(--coral)}.upload-state.done,.upload-state.duplicate{color:var(--green)}.upload-progress{height:4px;background:var(--surface-muted);border-radius:2px;overflow:hidden;margin-top:3px}.upload-progress span{display:block;height:100%;background:var(--blue);transition:width .15s linear}.upload-meta{margin-top:5px;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px}.error-text{color:var(--coral);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,1fr);background:#101311;color:#fff}.viewer.with-info{grid-template-columns:minmax(0,1fr) 350px}.viewer-stage{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.viewer-stage>img,.viewer-stage>video{width:100%;height:100%;object-fit:contain}.viewer-stage>img.full-resolution{width:auto;height:auto;max-width:none;max-height:none;cursor:zoom-out}.viewer-toolbar{position:absolute;z-index:3;left:0;right:0;top:0;height:64px;padding:0 12px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#080a09a8,transparent)}.viewer-toolbar-right{display:flex;gap:3px}.viewer-icon{color:#fff;text-decoration:none}.viewer-icon:hover,.viewer-icon.active{background:#ffffff1c;color:#9fdfc3}.viewer-nav{position:absolute;z-index:3;top:50%;width:48px;height:64px;transform:translateY(-50%);border:0;border-radius:4px;background:#080a0975;color:#fff;display:grid;place-items:center;cursor:pointer}.viewer-nav.previous{left:12px}.viewer-nav.next{right:12px}.viewer-nav:hover{background:#080a09c0}.viewer-info{background:#f5f6f4;color:var(--text);overflow-y:auto;border-left:1px solid #303832}.viewer-info-head{padding:24px 20px 18px;border-bottom:1px solid var(--line)}.viewer-info-head h2{font-size:16px;line-height:1.35;margin:8px 0 4px;overflow-wrap:anywhere}.viewer-info-head p{color:var(--muted);font-size:12px;margin:0}.media-kind-label{display:inline-block;font-size:10px;font-weight:750;text-transform:uppercase;padding:3px 6px;border-radius:3px;background:var(--green-soft);color:var(--green)}.media-kind-label.video{background:#deebf0;color:var(--blue)}.summary-list{margin:0;padding:12px 20px;border-bottom:1px solid var(--line)}.summary-list>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;padding:6px 0;font-size:12px}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;overflow-wrap:anywhere}.summary-list a{color:var(--blue);display:inline-flex;gap:4px;align-items:center}.viewer-tags{display:flex;flex-wrap:wrap;gap:6px;padding:14px 20px;border-bottom:1px solid var(--line)}.viewer-tags span{border:1px solid var(--line);border-radius:13px;background:#fff;padding:4px 8px;font-size:11px;display:flex;align-items:center;gap:5px}.viewer-tags i{width:7px;height:7px;border-radius:50%}.metadata-details summary{cursor:pointer;padding:16px 20px;font-size:12px;font-weight:700;display:flex;justify-content:space-between}.metadata-details summary span{color:var(--muted)}.metadata-details dl{margin:0;border-top:1px solid var(--line)}.metadata-details dl div{padding:8px 20px;border-bottom:1px solid #e3e6e3}.metadata-details dt{color:var(--muted);font-size:10px;overflow-wrap:anywhere}.metadata-details dd{margin:3px 0 0;font-size:11px;overflow-wrap:anywhere}.viewer-message{padding:30px;color:#d9dedb}.viewer-loading{width:32px;height:32px;border-radius:50%;border:3px solid #ffffff30;border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dialog-backdrop{position:fixed;z-index:120;top:0;right:0;bottom:0;left:0;background:#18201b9c;display:grid;place-items:center;padding:20px}.dialog{width:min(500px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:7px;background:var(--surface);box-shadow:0 20px 60px #1017134f}.dialog.wide{width:min(760px,100%)}.dialog>header{position:sticky;z-index:2;top:0;height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 13px 0 20px;background:var(--surface);border-bottom:1px solid var(--line)}.dialog>header h2{margin:0;font-size:17px}.dialog-body{padding:20px}.dialog-actions{min-height:64px;padding:10px 16px;display:flex;justify-content:flex-end;align-items:center;gap:8px;border-top:1px solid var(--line);background:#fafbfa}.form-stack{display:grid;gap:16px}.form-stack label input,.form-stack label select,.dialog-body>label select{width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row label{display:grid;gap:7px;font-size:13px;font-weight:650}.check-label{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important}.check-label input{width:17px;min-height:17px;accent-color:var(--green)}.tag-picker{display:flex;flex-wrap:wrap;gap:7px;max-height:240px;overflow-y:auto}.tag-action{margin-bottom:14px}.tag-picker button{min-height:34px;border:1px solid var(--line);background:var(--surface);border-radius:17px;padding:0 10px;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px}.tag-picker button.chosen{border-color:#7da18e;background:var(--green-soft)}.tag-picker i{width:9px;height:9px;border-radius:50%}.tag-picker.compact{max-height:130px}.inline-create{display:flex;gap:8px;margin-top:16px}.inline-create input{flex:1}.confirmation-copy{margin:0;line-height:1.55}.share-success{display:flex;flex-direction:column;align-items:center;gap:13px;text-align:center;padding-block:30px}.success-icon,.share-icon{width:42px;height:42px;border-radius:6px;background:var(--green-soft);color:var(--green);display:grid;place-items:center}.copy-field{display:flex;width:100%;gap:6px}.copy-field input{flex:1}.copy-field.compact{margin-top:8px;max-width:580px}.view-title{min-height:78px}.view-title p{font-weight:400}.view-actions{display:flex;align-items:center;gap:8px}.view-actions a{text-decoration:none}.profile-content{width:min(620px,100%);padding:28px 24px}.profile-identity{display:flex;align-items:center;gap:14px;padding-bottom:24px;border-bottom:1px solid var(--line)}.profile-avatar{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--green-soft);color:var(--green)}.profile-identity>div{min-width:0;display:flex;flex-direction:column;gap:4px}.profile-identity strong{overflow:hidden;text-overflow:ellipsis;font-size:17px}.profile-identity span{color:var(--muted);font-size:13px}.profile-actions{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:10px;padding-top:22px}.profile-actions h2{grid-column:1 / -1;margin:0 0 3px;font-size:14px}.profile-sign-out{color:var(--coral)}.tabs{height:48px;display:flex;align-items:end;gap:4px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}.tabs button{height:42px;border:0;border-bottom:3px solid transparent;background:transparent;padding:0 14px;cursor:pointer;color:var(--muted)}.tabs button.active{color:var(--text);border-bottom-color:var(--green);font-weight:700}.admin-panel{padding:22px 24px}.panel-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-actions strong{font-size:14px}.data-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);background:var(--surface);border-radius:5px}.data-table{width:100%;border-collapse:collapse;min-width:650px}.data-table th{height:40px;padding:0 13px;background:#eef1ed;text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase}.data-table td{height:56px;border-top:1px solid var(--line);padding:7px 13px;font-size:13px}.data-table td select{min-height:34px}.toggle{display:inline-flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap;cursor:pointer}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle span{width:32px;height:18px;border-radius:10px;background:#b7beb9;position:relative;transition:background .15s}.toggle span:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .15s;box-shadow:0 1px 2px #0003}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{transform:translate(14px)}.access-folder-select{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.access-folder-select label{width:min(340px,100%)}.access-folder-select span{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:12px}.access-table th:not(:first-child),.access-table td:not(:first-child){text-align:center}.access-table input[type=checkbox]{min-height:18px;width:18px;accent-color:var(--green)}.access-source{color:var(--muted);font-size:11px;white-space:nowrap}.share-list{padding:18px 24px;display:grid;gap:8px}.share-row{min-height:76px;background:var(--surface);border:1px solid var(--line);border-radius:5px;display:grid;grid-template-columns:44px minmax(0,1fr) auto 40px 40px 40px;align-items:center;gap:12px;padding:10px 12px}.share-main{min-width:0;display:flex;flex-direction:column;gap:4px}.share-main strong{font-size:14px}.share-main>span{font-size:11px;color:var(--muted)}.share-main .copy-field input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.tag-management-list{padding:18px 24px;display:grid;gap:7px}.tag-management-list article{min-height:58px;display:grid;grid-template-columns:12px minmax(0,1fr) 40px 40px 40px;align-items:center;gap:9px;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.tag-management-list article>i{width:10px;height:10px;border-radius:50%}.tag-management-list article>div{min-width:0;display:flex;flex-direction:column;gap:3px}.tag-management-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.tag-management-list span,.form-hint{color:var(--muted);font-size:12px}.form-hint{margin:0;line-height:1.5}.calendar-loading{min-height:260px}.calendar-months{padding:18px 24px 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px;align-items:start}.calendar-month{padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.calendar-month h2{margin:0 0 13px;font-size:16px;text-transform:capitalize}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{margin-bottom:4px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:10px;font-weight:700}.calendar-days>span,.calendar-days button{aspect-ratio:1;min-width:0;border:0;border-radius:50%}.calendar-days button{position:relative;display:grid;place-items:center;background:transparent;color:#a0a7a2;font-size:12px;cursor:default;opacity:1}.calendar-days button.has-media{background:var(--green-soft);color:#244c3b;font-weight:700;cursor:pointer}.calendar-days button.has-media:hover{background:#cbded3}.calendar-days button i{position:absolute;width:4px;height:4px;left:50%;bottom:4px;transform:translate(-50%);border-radius:50%;background:var(--green)}.pairing-phone-code{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:14px}.pairing-phone-code strong{color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px}.pair-share-list{display:grid;gap:7px;max-height:330px;overflow-y:auto}.pair-share-list>button{width:100%;min-height:58px;border:1px solid var(--line);border-radius:5px;background:var(--surface);display:grid;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:8px 11px;text-align:left;cursor:pointer}.pair-share-list>button.selected{border-color:#7da18e;background:var(--green-soft)}.pair-share-list>button>span{min-width:0;display:flex;flex-direction:column;gap:3px}.pair-share-list strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.pair-share-list small{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.pair-empty{text-align:center;padding:22px 0}.pair-empty p{color:var(--muted)}.pair-success{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center}.pair-success>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}@media(max-width:900px){.mobile-nav-trigger{position:fixed;z-index:50;top:10px;left:10px;display:inline-flex;background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 8px #17201b1c}.sidebar{transform:translate(-100%);top:0;z-index:80;width:280px;transition:transform .2s ease;box-shadow:12px 0 35px #15201926}.sidebar.mobile-open{transform:translate(0)}.sidebar-mobile-title{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 7px 0 10px;margin-bottom:8px}.sidebar-mobile-title strong{font-family:Georgia,serif;font-size:20px}.sidebar-backdrop{position:fixed;z-index:79;top:0;right:0;bottom:0;left:0;border:0;background:#17201b85}.app-content{margin-left:0}.library-toolbar,.view-title{padding-left:64px}.bulk-bar{left:50%}.grid-size{display:none}.viewer.with-info{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:760px){.filter-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:8px 12px;overflow-x:visible}.kind-filter{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.kind-filter button{min-width:0;justify-content:center;padding:0 4px}.sort-control{grid-column:1 / 6;width:100%;min-width:0}.sort-control select{flex:1;width:100%}.direction-button{grid-column:6 / 7;width:100%;min-width:0;padding:0}.filter-toggle{grid-column:span 3;width:100%}}@media(max-width:680px){.library-toolbar{min-height:112px;padding:12px 12px 12px 60px;align-items:stretch;flex-direction:column;gap:10px}.library-title{display:flex;align-items:baseline;justify-content:space-between}.toolbar-primary{width:100%}.search-box{width:100%;flex:1}.toolbar-primary .primary-button{padding-inline:11px}.filter-toggle{padding:0 8px}.active-filters{padding:8px 12px;overflow-x:auto}.media-grid{gap:6px;padding:10px 8px 90px;grid-template-columns:repeat(2,minmax(0,1fr))!important}.media-card footer{height:48px;padding:7px}.select-button{opacity:.75}.grid-loading{grid-template-columns:repeat(2,1fr);gap:6px;padding:10px 8px}.bulk-bar{left:0;right:0;bottom:0;transform:none;width:100%;height:62px;border-radius:0;overflow-x:auto;justify-content:flex-start}.bulk-bar>div strong{display:none}.bulk-bar>button:not(.icon-button),.bulk-bar>a{flex-direction:column;height:50px;min-width:58px;gap:2px;font-size:10px}.upload-tray{bottom:70px;right:8px;width:calc(100vw - 16px);max-height:48vh}.viewer,.viewer.with-info{display:block}.viewer-stage{height:100%}.viewer.with-info .viewer-stage{height:64%}.viewer-info{position:absolute;left:0;right:0;bottom:0;height:36%;border-left:0;border-top:1px solid #303832}.viewer-nav{width:42px;height:56px}.viewer-nav.previous{left:5px}.viewer-nav.next{right:5px}.dialog-backdrop{padding:0;align-items:end}.dialog,.dialog.wide{width:100%;max-height:92vh;border-radius:7px 7px 0 0}.form-row{grid-template-columns:1fr}.view-title{min-height:72px;padding:12px 12px 12px 60px}.view-title .primary-button{padding-inline:10px}.view-actions{gap:5px}.view-actions .primary-button,.view-actions .secondary-button{padding-inline:8px}.shares-view .view-title{align-items:stretch;flex-direction:column}.shares-view .view-actions{width:100%}.shares-view .view-actions>*{flex:1}.tabs{padding:0 10px}.admin-panel,.share-list,.tag-management-list,.calendar-months{padding:12px 8px}.profile-content{padding:22px 12px}.profile-actions{grid-template-columns:1fr}.profile-actions .secondary-button{width:100%}.access-folder-select{align-items:stretch;flex-direction:column}.share-row{grid-template-columns:42px minmax(0,1fr) 40px 40px 40px;gap:7px}.share-row .toggle{grid-column:2;justify-self:start}.share-row>.icon-button{grid-row:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
