*{box-sizing:border-box}html{font-family:Inter,Segoe UI,Arial,sans-serif;color:#1f2933;background:#f5f7f5}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.topbar{height:72px;background:#fff;border-bottom:1px solid #e3e8e3;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-size:1.12rem;font-weight:750;color:#17211b}.brand img{height:42px;max-width:160px;object-fit:contain}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav form{margin:0}.container{width:min(1180px,calc(100% - 32px));margin:42px auto 70px;flex:1}footer{background:#fff;border-top:1px solid #e3e8e3;padding:25px max(24px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;color:#66756b;font-size:.9rem}.card{background:#fff;border:1px solid #e1e7e2;border-radius:18px;padding:28px;box-shadow:0 8px 28px rgba(22,55,33,.06)}.narrow{max-width:600px;margin:65px auto}.login-shell{min-height:calc(100vh - 230px);display:grid;place-items:center}.login-card{width:min(480px,100%);padding:38px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--brand);font-size:.75rem;font-weight:800;margin-bottom:8px}h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.1;margin:.1em 0 .35em;color:#17251c}h2{font-size:1.25rem;margin:0 0 18px;color:#203529}.lead,.hero p{color:#617068;line-height:1.6}.hero{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.hero.compact{align-items:center}.hero.compact h1{font-size:2.35rem}.target-pill{min-width:250px;background:#eaf4ed;border:1px solid #c9e1d0;padding:17px 20px;border-radius:14px;display:flex;flex-direction:column}.target-pill small{color:#64746a;margin-bottom:4px}.target-pill strong{color:var(--brand)}label{display:block;font-weight:650;margin:18px 0 7px}input,select,textarea{width:100%;border:1px solid #cbd5ce;border-radius:9px;padding:12px 13px;font:inherit;background:#fff;color:#1b2720}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--brand) 22%,transparent);border-color:var(--brand)}select[multiple]{min-height:120px}.check{display:flex;align-items:center;gap:9px;font-weight:500}.check input{width:18px;height:18px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--brand);color:#fff;border-radius:9px;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;margin-top:20px}.button:hover{filter:brightness(.94);text-decoration:none}.button.wide{width:100%}.button.secondary{background:#edf3ef;color:var(--brand);border:1px solid #cbd9cf;margin:0}.button.ghost{background:transparent;color:var(--brand);border:1px solid #ccd6cf}.link-button{border:0;background:transparent;color:var(--brand);font:inherit;padding:0;cursor:pointer;text-decoration:none}.link-button:hover{text-decoration:underline}.help{font-size:.88rem;color:#6b7870;text-align:center;margin:25px 0 0}.validation,span.field-validation-error{color:#9b2c2c;font-size:.9rem}.validation ul{padding-left:18px}.alert{padding:15px 18px;border-radius:10px;margin:18px 0}.alert.error{background:#fff0f0;color:#8f2929;border:1px solid #efc5c5}.alert.success{background:#edf9f0;color:#216337;border:1px solid #bde2c7}.alert.warning{background:#fff8e4;color:#725712;border:1px solid #eedc9c}.upload-card{padding:32px}.drop-zone{min-height:280px;border:2px dashed #9db7a4;background:#f5faf6;border-radius:16px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#52645a;cursor:pointer;transition:.2s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--brand);background:#ebf6ee}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--brand);color:#fff;font-size:2.2rem;margin-bottom:5px}.drop-zone strong{font-size:1.25rem;color:#233d2c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upload-button{min-width:220px}.file-list{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.file-chip{background:#eef3ef;border-radius:8px;padding:8px 11px;font-size:.88rem}.progress-wrap{margin-top:20px;background:#eef2ee;border-radius:8px;overflow:hidden;position:relative;height:42px;display:flex;align-items:center;justify-content:center}.progress-bar{position:absolute;inset:0 auto 0 0;width:15%;background:#cce5d2;animation:progress 2s infinite ease-in-out}.progress-wrap span{position:relative;font-size:.9rem}@keyframes progress{0%{width:8%}50%{width:70%}100%{width:100%}}.results{margin:28px 0}.result{display:flex;gap:13px;padding:15px 18px;border-radius:10px;margin:8px 0}.result>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}.result p{margin:3px 0 0}.result.ok{background:#edf9f0}.result.ok>span{background:#2f855a;color:#fff}.result.failed{background:#fff0f0}.result.failed>span{background:#c53030;color:#fff}.session-list{list-style:none;padding:0;margin:0}.session-list li{padding:10px 0;border-top:1px solid #edf0ed}.session-list span{color:#2f855a;margin-right:10px}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.admin-tile{color:inherit;transition:.18s}.admin-tile:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(22,55,33,.1);text-decoration:none}.admin-tile p{color:#65736a;line-height:1.5}.tile-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:12px;background:#eaf4ed;color:var(--brand);font-weight:800;margin-bottom:18px}.connection{margin-top:20px;display:flex;align-items:center;justify-content:space-between}.connection p{margin:0;color:#65736a}.split{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:20px;align-items:start}.table-card{padding:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.91rem}th{text-align:left;color:#66736b;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:2px solid #e7ece8}td{padding:13px 10px;border-bottom:1px solid #e9edea;vertical-align:top}.row-actions{display:flex;flex-direction:column;gap:6px}.row-actions form{display:flex;gap:5px}.row-actions input{padding:5px;width:140px;font-size:.8rem}.badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:.75rem;font-weight:700}.badge.active{background:#e5f5e9;color:#26673a}.badge.inactive{background:#fdeaea;color:#913333}small{color:#6c7971}code{font-family:Consolas,monospace;font-size:.8rem;overflow-wrap:anywhere}.actions{display:flex;gap:8px}.filters{display:flex;gap:14px;align-items:end;margin-bottom:20px}.filters label{margin:0;min-width:180px}.filters span{display:block;margin-bottom:6px}.pager{display:flex;justify-content:center;gap:25px;margin-top:20px}
@media(max-width:850px){.admin-grid{grid-template-columns:1fr}.split{grid-template-columns:1fr}.topbar{height:auto;min-height:65px;flex-wrap:wrap;padding:12px 16px}.topbar nav{width:100%;overflow-x:auto;padding-top:10px;gap:15px;font-size:.9rem}.container{margin-top:28px}.hero{align-items:start;flex-direction:column}.target-pill{width:100%}.form-grid{grid-template-columns:1fr}.connection{align-items:start;flex-direction:column;gap:18px}.filters{align-items:stretch;flex-direction:column}.filters label{width:100%}.drop-zone{min-height:220px}footer{flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
[hidden]{display:none!important}.drop-zone:focus-within{outline:3px solid var(--brand);outline-offset:4px}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.file-chip{overflow-wrap:anywhere}.skip-link{position:absolute;left:16px;top:-60px}.skip-link:focus{top:8px;z-index:20;background:white;padding:12px}
.folder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}.folder-card{display:block;color:inherit;transition:transform .15s}.folder-card:hover{transform:translateY(-3px);text-decoration:none;border-color:var(--brand)}.folder-symbol{font-size:3.5rem;color:var(--brand)}.folder-card p{color:#617068}.folder-card>span:last-child{color:var(--brand);font-weight:650}.storage-summary{display:flex;flex-wrap:wrap;align-items:center;gap:24px;justify-content:space-between}.storage-summary span{color:#617068}.storage-summary progress{width:240px;max-width:100%;height:12px;accent-color:var(--brand)}.file-actions{display:flex;gap:16px;flex-wrap:wrap}.file-actions details{max-width:280px}.file-actions summary{cursor:pointer;color:#9b2c2c}.file-actions form{padding:12px;border:1px solid #efc5c5;border-radius:8px}.button.danger{background:#9b2c2c;margin-top:0}.empty-folder{text-align:center;padding:48px 16px;color:#617068}td:first-child{overflow-wrap:anywhere;max-width:360px}@media(max-width:700px){.folder-grid{grid-template-columns:1fr}.file-actions{flex-direction:column;gap:10px}}
.file-name-cell{display:flex;align-items:center;gap:12px}.image-preview{display:block;flex:0 0 72px;border:1px solid #dce5df;border-radius:8px;overflow:hidden;background:#f1f5f2}.image-preview img{display:block;width:72px;height:56px;object-fit:contain}.image-preview:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.image-dialog{width:min(960px,94vw);max-height:92vh;padding:0;border:0;border-radius:16px;box-shadow:0 24px 80px #0006;color:#203529}.image-dialog::backdrop{background:#101c18bf}.image-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid #e1e7e2}.image-dialog-header h2{margin:0;overflow-wrap:anywhere;font-size:1.05rem}.image-dialog-body{display:flex;align-items:center;justify-content:center;min-height:180px;padding:16px;background:#f1f4f2}.image-dialog-body img{max-width:100%;max-height:65vh;object-fit:contain}.image-dialog-footer{display:flex;justify-content:flex-end;padding:14px 22px}body:has(.image-dialog[open]){overflow:hidden}
.folder-card .folder-symbol{display:grid;place-items:center;width:64px;height:64px;background:#eaf4ed;border:1px solid #d7e7dc;border-radius:16px;margin-bottom:22px}.folder-symbol svg{width:34px;height:34px}

.library-filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-top:24px;margin-bottom:24px}.library-filters>div:first-child{flex:1;min-width:200px}.library-filters label{margin-top:0}.library-filters .button{margin:0}.library-filters>a{padding:12px 0}.file-chip{display:flex;align-items:center;gap:16px;justify-content:space-between}.file-chip.invalid{background:#fff0f0;border:1px solid #efc5c5;color:#8f2929}.file-chip .link-button{flex-shrink:0;text-decoration:underline}.button:disabled{opacity:.55;cursor:not-allowed}.file-list{flex-direction:column}@media(max-width:700px){.library-filters{align-items:stretch;flex-direction:column}.file-chip{align-items:start}}

.users-toolbar{flex-wrap:wrap}.users-toolbar .button{margin-top:0}.user-editor{width:100%;margin-bottom:24px}.user-storage{display:flex;flex-direction:column;gap:6px;min-width:180px}.user-storage progress{width:100%;height:12px;accent-color:var(--brand)}.user-storage.warning progress{accent-color:#a66b12}.user-storage.full progress{accent-color:#b43636}.user-storage.full small{color:#913333}

.storage-meter{--meter-color:#298044;display:flex;flex-direction:column;gap:7px;min-width:180px}.storage-meter.warning{--meter-color:#e0ad16}.storage-meter.critical{--meter-color:#c53030}.storage-meter progress{appearance:none;-webkit-appearance:none;width:100%;min-width:180px;height:14px;border:0;border-radius:7px;overflow:hidden;background:#e8ede9;accent-color:var(--meter-color)}.storage-meter progress::-webkit-progress-bar{background:#e8ede9;border-radius:7px}.storage-meter progress::-webkit-progress-value{background:var(--meter-color);border-radius:7px}.storage-meter progress::-moz-progress-bar{background:var(--meter-color);border-radius:7px}.storage-meter .storage-status-text{font-size:.88rem;color:#276339;font-weight:650}.storage-meter.warning .storage-status-text{color:#805d00}.storage-meter.critical .storage-status-text{color:#a02222}.storage-summary>.storage-meter{width:280px;max-width:100%}.upload-card>.storage-meter{margin-bottom:24px}

.rights-confirmation{margin-top:22px;padding:14px;border:2px solid #cbd5ce;border-radius:10px}.rights-confirmation .check{margin:0;align-items:flex-start;line-height:1.5}.rights-confirmation input{flex-shrink:0;margin-top:4px}.rights-confirmation.invalid,.rights-confirmation:has(input:user-invalid){border-color:#b42318;background:#fff0f0;color:#8f2929}.rights-confirmation .validation:not(:empty){display:block;margin-top:8px}
