:root { --sdp-paper:#f6f5f1; --sdp-surface:#fffefa; --sdp-ink:#232522; --sdp-muted:#73776e; --sdp-line:#e0e1d9; --sdp-accent:#8c302f; --sdp-green:#28654f; }
.portal-page { margin:0; min-height:100vh; background:var(--sdp-paper); color:var(--sdp-ink); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.portal-page *, .sdp-dialog *, .sdp-rail *, .sdp-toast { box-sizing:border-box; }
.portal-page [hidden], [data-admin-only][hidden], .sdp-dialog [hidden] { display:none!important; }
.portal-page button,.portal-page input,.portal-page select,.portal-page textarea,.sdp-dialog input,.sdp-dialog button,.sdp-dialog select { font:inherit; }
.portal-page a { color:inherit; text-decoration:none; }
.portal-page button,.sdp-dialog button { cursor:pointer; }
.portal-page button:disabled,.sdp-dialog button:disabled { opacity:.55; cursor:wait; }
.portal-page svg,.sdp-dialog svg,.sdp-button svg,.sdp-rail svg,.sdp-user-nav svg,.collection-add svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.sdp-header { height:100px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.sdp-brand { display:flex; align-items:center; gap:17px; font-size:12px; line-height:1.45; text-decoration:none; color:var(--sdp-ink); }
.sdp-brand strong { font-weight:600; }
.sdp-monogram { font-family:Georgia,serif; font-weight:bold; font-size:32px; letter-spacing:-3px; padding-right:19px; border-right:1px solid #d6d7ce; }
.sdp-monogram span { color:var(--sdp-accent); }
.sdp-header-note,.sdp-footer { font-size:12px; color:var(--sdp-muted); }
.sdp-user-nav { display:flex; align-items:center; gap:16px; font-size:13px; }
.sdp-user-chip { display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit; }
.sdp-avatar { width:33px; height:33px; display:grid; place-items:center; border-radius:50%; background:#e6e8df; color:#4b5647; font-size:12px; font-weight:650; }
.sdp-logout { border:0; background:none; padding:8px; color:var(--sdp-muted); display:flex; align-items:center; border-radius:8px; }
.sdp-logout:hover { background:#e9e9e2; }
.sdp-eyebrow { font-size:10px; letter-spacing:.16em; font-weight:650; color:var(--sdp-accent); margin:0 0 25px; }
.dashboard-main { max-width:960px; width:calc(100% - 64px); margin:65px auto 100px; }
.dashboard-heading h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(30px,3.6vw,48px); font-weight:400; letter-spacing:-1.6px; line-height:1.22; margin:0 0 22px; }
.dashboard-heading h1 span { color:#828679; }
.dashboard-heading>p:last-child { color:var(--sdp-muted); font-size:15px; }
.apps-heading { display:flex; justify-content:space-between; color:#86897f; font-size:10px; letter-spacing:.14em; margin:54px 0 17px; }
.app-tiles { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.app-tile { background:var(--sdp-surface); border:1px solid var(--sdp-line); border-radius:20px; padding:30px 32px 23px; aspect-ratio:1.25; display:flex; flex-direction:column; justify-content:space-between; min-height:340px; transition:transform .2s,box-shadow .2s,border-color .2s; }
.app-tile:hover { transform:translateY(-4px); box-shadow:0 18px 40px #2028200c; border-color:#b9c0b2; }
.app-tile-top { display:flex; justify-content:space-between; align-items:flex-start; }
.app-icon { width:68px; height:68px; border-radius:19px; display:grid; place-items:center; }
.app-icon svg { width:41px; height:41px; stroke-width:1.7; }
.dataverse-icon { color:#825b39; background:#f0e7d7; }
.accounts-icon { color:#58715e; background:#e7ede3; }
.tile-arrow { color:#9a9e92; font-size:23px; }
.tile-category { font-size:9px; letter-spacing:.14em; color:#94978c; margin:25px 0 11px; }
.app-tile h2 { font-weight:550; font-size:24px; letter-spacing:-.8px; margin:0 0 13px; }
.app-tile p:not(.tile-category) { color:var(--sdp-muted); font-size:14px; line-height:1.7; margin:0 0 26px; }
.tile-bottom { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #e9e9e2; padding-top:19px; font-size:12px; font-weight:550; }
.dashboard-shortcuts { display:flex; gap:26px; flex-wrap:wrap; margin-top:27px; }
.dashboard-shortcuts a { display:flex; gap:8px; align-items:center; font-size:12px; color:#777d70; }
.dashboard-shortcuts a:hover { color:var(--sdp-green); }
.dashboard-shortcuts svg { width:16px; height:16px; }
.sdp-footer { display:flex; justify-content:space-between; gap:20px; margin:0 5vw; padding:24px 0; border-top:1px solid var(--sdp-line); font-size:10px; }
.login-main { width:min(1040px,calc(100% - 80px)); margin:85px auto 100px; display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:85px; }
.login-intro h1 { font-family:Georgia,serif; font-size:clamp(40px,4.5vw,60px); line-height:1.1; font-weight:400; letter-spacing:-2px; margin:0 0 25px; }
.login-intro>p:not(.sdp-eyebrow) { font-size:15px; line-height:1.8; color:var(--sdp-muted); }
.login-art { margin-top:48px; display:grid; width:150px; grid-template-columns:repeat(3,1fr); gap:10px; transform:rotate(-8deg); }
.login-art span { display:block; width:40px; height:40px; border:1px solid #d5d9cb; border-radius:12px; background:#e8eadd55; }
.login-art span:nth-child(2),.login-art span:nth-child(6) { background:#d4decc; border-color:#c9d4c2; }
.login-art span:nth-child(4) { background:#e7d4c8; border-color:#e0c7b8; }
.login-art span:nth-child(9) { opacity:.2; }
.sdp-surface { background:var(--sdp-surface); border:1px solid var(--sdp-line); border-radius:20px; padding:30px; }
.login-form { padding:35px; box-shadow:0 18px 45px #272d2007; }
.sdp-small-icon { width:43px; height:43px; display:grid; place-items:center; background:#e8ede2; border-radius:12px; color:#5a7254; margin-bottom:24px; }
.sdp-small-icon svg { width:29px; height:29px; }
.login-form h2 { font-size:25px; font-weight:550; letter-spacing:-.6px; margin:0 0 9px; }
.login-form>p { color:var(--sdp-muted); font-size:13px; margin:0 0 30px; }
.portal-page label,.sdp-dialog label { display:grid; gap:8px; font-size:12px; font-weight:550; margin-bottom:19px; }
.portal-page input,.portal-page select,.portal-page textarea,.sdp-dialog input,.sdp-dialog select,.sdp-dialog textarea { width:100%; border:1px solid #d9dcd1; border-radius:9px; padding:12px 13px; background:#fffefa; color:var(--sdp-ink); font:inherit; font-size:14px; }
.portal-page input:focus,.portal-page textarea:focus,.sdp-dialog input:focus,.sdp-dialog textarea:focus { outline:2px solid #a6b59b; outline-offset:2px; }
.password-field { display:flex; border:1px solid #d9dcd1; border-radius:9px; background:#fffefa; }
.password-field input { border:0; background:transparent; min-width:0; }
.password-field button { border:0; background:transparent; color:var(--sdp-muted); font-size:11px; padding:0 12px; }
.sdp-button { border:1px solid #d9dcd1; border-radius:9px; padding:11px 16px; display:inline-flex; align-items:center; justify-content:center; gap:9px; font:inherit; font-size:12px; font-weight:550; background:#fffefa; color:var(--sdp-ink); text-decoration:none; cursor:pointer; }
.sdp-button:hover { border-color:#9aa68e; background:#f5f6ef; }
.sdp-button.primary { background:#303e32; border-color:#303e32; color:#fff; }
.sdp-button.primary:hover { background:#455443; }
.sdp-button.danger { color:#942e30; border-color:#e2c7c2; }
.login-form .sdp-button { width:100%; justify-content:space-between; padding:13px 16px; }
.login-form .login-footnote { text-align:center; line-height:1.7; margin:23px 0 0; font-size:11px; }
.sdp-error,.login-form .sdp-error { color:#9b302d; font-size:12px; min-height:0; margin:8px 0 16px; white-space:pre-wrap; }
.sdp-error:empty { display:none; }
.sdp-muted { color:var(--sdp-muted); font-size:13px; line-height:1.7; }
.sdp-toast { position:fixed; bottom:26px; left:50%; transform:translateX(-50%); padding:14px 22px; background:#303e32; color:#fff; border-radius:12px; box-shadow:0 8px 30px #0002; z-index:200; font:13px/1.5 ui-sans-serif,system-ui,sans-serif; max-width:calc(100vw - 40px); }
.sdp-toast[hidden] { display:none; }
.sdp-toast.error { background:#7e302e; }
.sdp-dialog { position:fixed; width:min(520px,calc(100% - 32px)); max-height:85vh; border:1px solid var(--sdp-line); border-radius:20px; padding:32px; background:var(--sdp-surface); color:var(--sdp-ink); box-shadow:0 30px 90px #0002; font:14px/1.5 ui-sans-serif,system-ui,sans-serif; }
.sdp-dialog::backdrop { background:#20281f55; backdrop-filter:blur(4px); }
.sdp-dialog h2 { font-family:Georgia,serif; font-weight:400; font-size:29px; margin:0 25px 9px 0; }
.sdp-dialog p { color:var(--sdp-muted); font-size:13px; }
.sdp-dialog .sdp-error { color:#9b302d; }
.sdp-dialog a { color:var(--sdp-green); text-decoration:none; }
.sdp-dialog-close { position:static; display:block; width:32px; height:32px; margin:0 0 8px auto; padding:0; line-height:1; border:0; background:transparent; color:#7a8173; font-size:25px!important; }
.sdp-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; flex-wrap:wrap; }
.sdp-collection-option { display:flex; gap:12px; align-items:center; border-bottom:1px solid var(--sdp-line); padding:15px 0; }
.sdp-collection-option>div { flex:1; min-width:0; }
.sdp-collection-option strong { display:block; overflow-wrap:anywhere; }
.sdp-collection-option small { color:var(--sdp-muted); }
.sdp-collection-option button { background:none; border:1px solid var(--sdp-line); border-radius:8px; padding:7px 10px; color:var(--sdp-green); font-size:11px; }
.sdp-collection-option button.active { background:#e6eee0; border-color:#c5d1bb; }
.workspace-layout { display:grid; grid-template-columns:215px minmax(0,1fr); border-top:1px solid var(--sdp-line); min-height:calc(100vh - 100px); }
.workspace-sidebar { padding:35px 20px 30px 28px; border-right:1px solid var(--sdp-line); display:flex; flex-direction:column; }
.workspace-sidebar .sdp-eyebrow { color:#989c91; font-size:9px; margin-left:10px; }
.workspace-sidebar nav { display:grid; gap:5px; }
.workspace-sidebar a { display:flex; gap:12px; align-items:center; font-size:12px; padding:13px 12px; color:#747b6c; border-radius:9px; }
.workspace-sidebar a.active { background:#e6eadd; color:#384a30; font-weight:600; }
.workspace-sidebar a:hover { background:#eaece4; }
.workspace-sidebar svg { width:17px; height:17px; }
.sidebar-bottom { margin-top:auto; padding:60px 10px 0; color:#a1a594; font-size:10px; line-height:1.6; }
.workspace-content { padding:46px clamp(20px,4vw,65px) 90px; min-width:0; }
.workspace-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:32px; }
.workspace-heading h1 { font-family:Georgia,serif; font-size:37px; font-weight:400; letter-spacing:-1px; margin:0 0 9px; }
.workspace-heading p { margin:0; }
.workspace-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.sdp-tabs { display:flex; flex-wrap:wrap; gap:5px; border-bottom:1px solid var(--sdp-line); margin-bottom:25px; padding-bottom:12px; }
.sdp-tabs button { border:0; background:none; color:#7d8574; padding:9px 12px; border-radius:7px; font-size:12px; }
.sdp-tabs button.active { background:#e6eadd; color:#384a30; }
.sdp-table-wrap { overflow:auto; border:1px solid var(--sdp-line); border-radius:14px; background:var(--sdp-surface); }
.sdp-table { width:100%; border-collapse:collapse; font-size:12px; }
.sdp-table th { text-align:left; font-size:10px; font-weight:550; color:#8b9082; padding:15px 18px; border-bottom:1px solid var(--sdp-line); white-space:nowrap; }
.sdp-table td { padding:18px; border-bottom:1px solid #eceee5; vertical-align:top; line-height:1.5; }
.sdp-table tr:last-child td { border-bottom:0; }
.sdp-table td small { display:block; color:#8b9082; font-size:10px; margin-top:4px; }
.sdp-table td .sdp-button { padding:6px 9px; font-size:10px; white-space:nowrap; }
.sdp-table .query-cell { max-width:400px; overflow-wrap:anywhere; }
.sdp-badge { display:inline-block; border-radius:5px; padding:3px 7px; font-size:10px; background:#eaf0e3; color:#627653; }
.sdp-badge.admin { background:#efe4df; color:#976951; }
.sdp-pagination { display:flex; justify-content:center; gap:15px; align-items:center; margin:26px 0; font-size:12px; color:#858c7c; }
.sdp-empty { text-align:center; padding:65px 24px; border:1px dashed #d1d8c8; border-radius:16px; color:var(--sdp-muted); }
.sdp-empty svg { width:32px; height:32px; color:#95a18b; }
.sdp-empty h2 { font-size:18px; font-weight:500; color:#4c5643; }
.sdp-empty p { font-size:13px; line-height:1.8; }
.collection-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:20px; }
.collection-tile { display:block; border:1px solid var(--sdp-line); border-radius:16px; padding:24px; background:var(--sdp-surface); }
.collection-tile:hover { border-color:#adbaa1; }
.collection-tile>svg { width:32px; height:32px; color:#869477; margin-bottom:20px; }
.collection-tile h2 { font-size:18px; font-weight:550; margin:0 0 10px; overflow-wrap:anywhere; }
.collection-tile p { font-size:12px; color:var(--sdp-muted); }
.collection-video-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }
.saved-clip { border:1px solid var(--sdp-line); border-radius:14px; overflow:hidden; background:var(--sdp-surface); }
.saved-clip video { width:100%; aspect-ratio:1; object-fit:contain; background:#171b16; display:block; }
.saved-clip-body { padding:18px; }
.saved-clip h3 { font-size:14px; line-height:1.5; font-weight:550; margin:0 0 10px; }
.saved-clip details { margin:12px 0; color:var(--sdp-muted); font-size:12px; line-height:1.7; }
.saved-clip summary { cursor:pointer; }
.saved-clip .sdp-button { padding:7px 10px; font-size:10px; }
.profile-summary { display:flex; align-items:center; gap:17px; padding:22px; margin-bottom:30px; }
.profile-summary .sdp-avatar { width:48px; height:48px; font-size:17px; }
.profile-summary h2 { margin:0 0 5px; font-size:18px; font-weight:550; }
.profile-summary p { margin:0; font-size:12px; color:var(--sdp-muted); }
.profile-summary>div:nth-child(2) { flex:1; }
.sdp-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 15px; }
.sdp-rail { position:fixed; top:95px; left:12px; z-index:15; display:grid; gap:6px; width:58px; }
.sdp-rail a,.sdp-rail button { background:#f5f4efd9; border:1px solid transparent; display:flex; flex-direction:column; align-items:center; gap:5px; padding:10px 3px; color:#828879; text-decoration:none; border-radius:10px; font:9px/1.3 ui-sans-serif,system-ui,sans-serif; cursor:pointer; }
.sdp-rail a:hover,.sdp-rail button:hover { background:#e5eadf; color:#395332; }
.dataverse-page main { width:min(1440px,calc(100% - 115px)); margin-left:auto; margin-right:32px; }
.dataverse-page .topbar-actions { gap:10px; }
.collection-add { position:absolute; right:12px; top:12px; z-index:2; border:1px solid #ffffff75; border-radius:50%; width:36px; height:36px; display:grid; place-items:center; background:#fffefaed; color:#34472f; cursor:pointer; box-shadow:0 3px 14px #0002; }
.collection-add:hover { background:#e7efdf; transform:scale(1.05); }
.collection-add.saved { background:#d7e7cc; border-color:#a0b792; }
.collection-add:disabled { opacity:.6; cursor:wait; }
.sdp-active-collection { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sdp-history-drawer { margin:0 0 0 auto; height:100vh; max-height:100vh; width:min(420px,100%); border-radius:20px 0 0 20px; top:0; right:0; left:auto; padding-top:50px; }
.sdp-history-item { display:block; padding:17px 0; border-bottom:1px solid var(--sdp-line); }
.sdp-history-item strong { display:block; color:#333e2f; font-weight:500; }
.sdp-history-item small { color:#8b9282; font-size:10px; }
:is(.portal-page,.sdp-dialog,.sdp-rail) :focus-visible,.collection-add:focus-visible { outline:2px solid #7e9670; outline-offset:4px; }
@media(max-width:1000px) { .login-main{gap:45px}.workspace-layout{grid-template-columns:175px minmax(0,1fr)}.workspace-sidebar{padding-left:12px}.sdp-header{padding:0 28px}.dataverse-page .wordmark-text strong{font-size:11px}.sdp-active-collection{max-width:95px} }
@media(max-width:700px) { .sdp-header{height:80px;padding:0 22px}.sdp-header-note{display:none}.sdp-brand{gap:12px;font-size:10px}.sdp-monogram{font-size:28px;padding-right:12px}.sdp-user-nav{gap:7px}.sdp-user-chip>span:not(.sdp-avatar){display:none}.dashboard-main{margin:40px auto 60px;width:calc(100% - 40px)}.app-tiles{grid-template-columns:1fr}.app-tile{aspect-ratio:auto;min-height:310px}.dashboard-heading h1{font-size:33px;letter-spacing:-1px}.apps-heading{margin-top:38px}.dashboard-shortcuts{gap:20px}.sdp-footer{margin:0 22px}.sdp-footer span:last-child{display:none}.login-main{display:block;width:calc(100% - 40px);margin:28px auto 65px;max-width:430px}.login-intro{display:none}.login-form{padding:30px}.workspace-layout{display:block;min-height:calc(100vh - 80px)}.workspace-sidebar{padding:10px 14px;border-right:0;border-bottom:1px solid var(--sdp-line)}.workspace-sidebar .sdp-eyebrow,.sidebar-bottom{display:none}.workspace-sidebar nav{display:flex;overflow:auto}.workspace-sidebar a{font-size:10px;padding:10px;white-space:nowrap;gap:6px}.workspace-content{padding:30px 20px 70px}.workspace-heading{align-items:flex-start;flex-direction:column;gap:15px}.workspace-heading h1{font-size:30px}.sdp-form-grid{grid-template-columns:1fr}.sdp-rail{top:auto;bottom:12px;left:50%;transform:translateX(-50%);width:auto;display:flex;gap:4px;background:#f5f4eff2;border:1px solid #d9ddcf;border-radius:14px;padding:3px;box-shadow:0 6px 25px #0002}.sdp-rail a,.sdp-rail button{padding:7px 12px}.dataverse-page main{width:calc(100% - 28px);margin:0 auto;padding-bottom:85px}.dataverse-page .topbar{padding:0 14px}.dataverse-page .wordmark-text{display:none}.dataverse-page .request-button-copy small,.dataverse-page .request-button-arrow{display:none}.dataverse-page .topbar-actions{gap:7px}.dataverse-page .topbar-actions .sdp-button{padding:9px;font-size:10px}.sdp-active-collection{max-width:75px}.profile-summary{flex-wrap:wrap}.sdp-dialog{padding:25px}.sdp-toast{bottom:87px} }
@media(prefers-reduced-motion:reduce) { .app-tile,.collection-add{transition:none!important} }
@media(max-width:700px) { .dataverse-page .request-button { position:static; min-height:37px; box-shadow:none; padding:4px 7px 4px 4px; }.dataverse-page .request-button-icon{width:28px;height:28px}.dataverse-page .request-button-copy strong{font-size:10px}.dataverse-page .sdp-user-nav{gap:3px}.dataverse-page .sdp-logout{padding:5px} }
