.ddk-portal { --ddk-border:#dce1e7; --ddk-text:#1b1e22; --ddk-muted:#555f69; font-family:inherit; max-width:1200px; color:var(--ddk-text); }
.ddk-portal h2 { margin:0 0 18px; font-size:clamp(1.45rem,3vw,2rem); }
.ddk-portal p { line-height:1.6; }
.ddk-portal .ddk-form { display:grid; gap:22px; }
.ddk-portal fieldset { border:1px solid var(--ddk-border); border-radius:12px; margin:0; padding:22px; min-width:0; }
.ddk-portal legend { font-size:1.1rem; font-weight:700; padding:0 9px; }
.ddk-portal .ddk-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
.ddk-portal .ddk-field { display:flex; flex-direction:column; gap:7px; font-size:.95rem; font-weight:600; }
.ddk-portal .ddk-field input,.ddk-portal .ddk-field select { width:100%; min-width:0; padding:12px 13px; border:1px solid #a6afb9; border-radius:7px; color:var(--ddk-text); background:#fff; font:inherit; font-weight:400; }
.ddk-portal .ddk-field input:focus,.ddk-portal .ddk-field select:focus { outline:2px solid #252525; outline-offset:2px; }
.ddk-portal .ddk-hint { font-size:.87rem; color:var(--ddk-muted); margin:13px 0 0; }
.ddk-portal .ddk-alert { padding:14px 18px; border-left:4px solid #222; background:#f3f4f6; border-radius:4px; }
.ddk-portal button { justify-self:start; border:1px solid #111; background:#111; color:#fff; border-radius:7px; padding:13px 20px; font:inherit; font-weight:650; cursor:pointer; }
.ddk-portal button:hover { background:#333; }
.ddk-portal .ddk-portal-actions { margin:0 0 24px; }
.ddk-portal .ddk-logout-button { display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border:1px solid #111; border-radius:7px; background:#111; color:#fff; text-decoration:none; font-weight:650; }
.ddk-portal .ddk-logout-button:hover,.ddk-portal .ddk-logout-button:focus-visible { background:#333; color:#fff; text-decoration:none; }
.ddk-portal .ddk-nextcloud-button { display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border:1px solid #111; border-radius:7px; background:#fff; color:#111; text-decoration:none; font-weight:650; }
.ddk-portal .ddk-nextcloud-button:hover,.ddk-portal .ddk-nextcloud-button:focus-visible { background:#f2f2f2; color:#111; text-decoration:none; }
.ddk-header-auth-link { color:inherit; font:inherit; text-decoration:none; }
.ddk-header-auth-link:hover,.ddk-header-auth-link:focus-visible { color:inherit; text-decoration:underline; }
.ddk-portal .ddk-honeypot { position:absolute!important; left:-10000px!important; top:auto!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.ddk-portal.ddk-login { max-width:520px; margin-inline:auto; }
.ddk-portal .ddk-login-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:20px; }
.ddk-portal .ddk-remember { display:flex; align-items:center; gap:8px; font-size:.95rem; }
.ddk-portal .ddk-remember input { width:auto; }
.ddk-portal-layout { display:grid; grid-template-columns:minmax(200px,245px) minmax(0,1fr); align-items:start; gap:28px; }
.ddk-portal-sidebar { display:flex; flex-direction:column; gap:6px; border:1px solid var(--ddk-border); border-radius:12px; padding:12px; background:#f7f8fa; }
.ddk-portal-sidebar .ddk-side-link { display:block; padding:12px 14px; border-radius:7px; color:#171717; font-weight:650; text-decoration:none; line-height:1.5; }
.ddk-portal-sidebar .ddk-side-link:hover,.ddk-portal-sidebar .ddk-side-link:focus-visible { background:#e9ebee; color:#171717; text-decoration:none; }
.ddk-portal-sidebar .ddk-side-link.is-active { background:#171717; color:#fff; }
.ddk-portal-sidebar .ddk-side-logout { border-top:1px solid var(--ddk-border); border-radius:0; margin-top:15px; padding-top:18px; }
.ddk-portal-main { min-width:0; }
.ddk-portal .ddk-nc-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.ddk-portal .ddk-nc-actions form { margin:0; }
.ddk-portal button.ddk-button-secondary { background:#fff; color:#161616; }
.ddk-portal button.ddk-button-secondary:hover { background:#f2f2f2; }
.ddk-portal .ddk-nc-breadcrumb { margin:0 0 15px; padding:12px 0; font-size:.92rem; overflow-wrap:anywhere; }
.ddk-portal .ddk-nc-breadcrumb a { color:inherit; text-decoration:underline; }
.ddk-portal .ddk-nc-archive-actions { margin:0 0 18px; }
.ddk-portal .ddk-nc-archive-button { display:inline-flex; align-items:center; padding:11px 15px; border:1px solid #111; border-radius:7px; background:#111; color:#fff; text-decoration:none; font-weight:650; }
.ddk-portal .ddk-nc-archive-button:hover,.ddk-portal .ddk-nc-archive-button:focus-visible { background:#333; color:#fff; text-decoration:none; }
.ddk-portal .ddk-nc-list { display:flex; flex-direction:column; border:1px solid var(--ddk-border); border-radius:10px; overflow:hidden; }
.ddk-portal .ddk-nc-entry { display:flex; align-items:center; gap:10px; padding:14px 15px; border-bottom:1px solid var(--ddk-border); color:#181818; text-decoration:none; overflow-wrap:anywhere; }
.ddk-portal .ddk-nc-entry:last-child { border-bottom:0; }
.ddk-portal .ddk-nc-entry:hover,.ddk-portal .ddk-nc-entry:focus-visible { background:#f3f4f6; color:#181818; text-decoration:none; }
.ddk-portal .ddk-nc-entry small { margin-left:auto; color:var(--ddk-muted); white-space:nowrap; }
.ddk-portal .ddk-nc-file-row { display:flex; align-items:center; border-bottom:1px solid var(--ddk-border); gap:8px; }
.ddk-portal .ddk-nc-file-row:last-child { border-bottom:0; }
.ddk-portal .ddk-nc-file-row .ddk-nc-entry { min-width:0; flex:1; border:0; }
.ddk-portal .ddk-nc-file-download { padding:8px 12px; margin-right:10px; border:1px solid #111; border-radius:6px; color:#111; background:#fff; text-decoration:none; font-size:.85rem; font-weight:650; white-space:nowrap; }
.ddk-portal .ddk-nc-file-download:hover,.ddk-portal .ddk-nc-file-download:focus-visible { color:#111; background:#f1f1f1; }
.ddk-portal .ddk-nc-viewer { box-sizing:border-box; width:min(1180px,96vw); max-width:96vw; height:min(86vh,960px); max-height:86vh; padding:0; border:1px solid #a5aab0; border-radius:12px; background:#fff; color:#111; overflow:hidden; }
.ddk-portal .ddk-nc-viewer::backdrop { background:rgba(0,0,0,.72); }
.ddk-portal .ddk-nc-viewer-toolbar { height:66px; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 16px; border-bottom:1px solid var(--ddk-border); }
.ddk-portal .ddk-nc-viewer-toolbar strong { font-size:1rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ddk-portal .ddk-nc-viewer-external { color:#111; text-decoration:underline; font-size:.85rem; white-space:nowrap; margin-left:auto; }
.ddk-portal .ddk-nc-viewer-toolbar button { padding:9px 15px; flex:0 0 auto; }
.ddk-portal .ddk-nc-viewer iframe { width:100%; height:calc(100% - 66px); border:0; background:#f8f8f8; display:block; }
.ddk-portal .ddk-nc-upload { display:flex; flex-direction:column; gap:12px; border:1px solid var(--ddk-border); border-radius:10px; padding:18px; margin:25px 0; }
.ddk-portal .ddk-nc-upload h3 { margin:0; }
.ddk-portal .ddk-nc-upload input[type=file] { max-width:100%; }
.ddk-portal .ddk-nc-disconnect { padding-top:25px; margin-top:25px; border-top:1px solid var(--ddk-border); }
@media(max-width:760px) { .ddk-portal-layout { grid-template-columns:1fr; gap:22px; } .ddk-portal-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .ddk-portal-sidebar .ddk-side-logout { grid-column:1/-1; margin-top:0; padding-top:12px; } }
@media(max-width:640px) { .ddk-portal fieldset { padding:16px; } .ddk-portal .ddk-grid { grid-template-columns:1fr; } .ddk-portal button { width:100%; } .ddk-portal .ddk-nc-actions,.ddk-portal .ddk-nc-actions form { display:block; width:100%; } .ddk-portal .ddk-nc-actions form + form { margin-top:12px; } }
@media(max-width:640px) { .ddk-portal .ddk-nc-file-row { flex-wrap:wrap; gap:0; } .ddk-portal .ddk-nc-file-row .ddk-nc-entry { flex-basis:100%; } .ddk-portal .ddk-nc-file-download { margin:0 12px 12px auto; } .ddk-portal .ddk-nc-viewer { width:100vw; max-width:100vw; height:94vh; max-height:94vh; border-radius:0; } .ddk-portal .ddk-nc-viewer-toolbar { height:auto; min-height:64px; flex-wrap:wrap; } .ddk-portal .ddk-nc-viewer-toolbar button { width:auto; } .ddk-portal .ddk-nc-viewer iframe { height:calc(100% - 84px); } }
