:root{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--sidebar:244px;--blue:#086cff;--navy:#051b3b;--navy2:#0a2a51;--ink:#07162f;--muted:#61708a;--line:#d9e4f1;--page:#f7faff;--surface:#fff;--surface2:#f2f7fd;--accent:#086cff;--accentText:#fff;--shadow:0 7px 24px rgba(22,57,99,.08);--radius:10px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--page);color:var(--ink);font-family:inherit}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}svg{display:block}.ui-icon{width:19px;height:19px;display:inline-grid;place-items:center;flex:0 0 19px}.ui-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* themes change palette only; layout stays identical */
body.theme-filesdrop{--page:#07111f;--surface:#0e1a29;--surface2:#142438;--ink:#f6f9ff;--muted:#9aadc5;--line:#233751;--accent:#1c91ff;--navy:#061427;--navy2:#0b284e}body.theme-dropbox{--page:#f7f8fb;--surface:#fff;--surface2:#edf3ff;--ink:#1e1919;--muted:#6d6766;--line:#ddd9d7;--accent:#0061ff;--navy:#0061ff;--navy2:#003ca6}body.theme-drive{--page:#f7faff;--surface:#fff;--surface2:#f1f6fc;--ink:#07162f;--muted:#61708a;--line:#d9e4f1;--accent:#086cff;--navy:#051b3b;--navy2:#0a2a51}body.theme-onedrive{--page:#f5f7fb;--surface:#fff;--surface2:#eef6fc;--ink:#242424;--muted:#616161;--line:#dde2e8;--accent:#0078d4;--navy:#0b4777;--navy2:#08385f}body.theme-box{--page:#f7f8fa;--surface:#fff;--surface2:#edf5ff;--ink:#222832;--muted:#667688;--line:#dde4ea;--accent:#0061d5;--navy:#123c69;--navy2:#0a2d51}body.theme-wetransfer{--page:#111;--surface:#191919;--surface2:#242424;--ink:#fff;--muted:#aaa;--line:#353535;--accent:#ff5a36;--navy:#0a0a0a;--navy2:#171717}body.theme-icloud{--page:#eef5ff;--surface:#fff;--surface2:#edf5ff;--ink:#18202b;--muted:#68778b;--line:#d7e4f2;--accent:#087cff;--navy:#163a61;--navy2:#0f2c4b}body.theme-proton{--page:#151020;--surface:#1f1930;--surface2:#2b2242;--ink:#faf8ff;--muted:#b3a7ca;--line:#3a2f55;--accent:#8b6cff;--navy:#21163b;--navy2:#301e55}body.theme-mega{--page:#f7f7f7;--surface:#fff;--surface2:#fff1f1;--ink:#242424;--muted:#707070;--line:#dedede;--accent:#d90007;--navy:#341014;--navy2:#4b1217}body.theme-pcloud{--page:#f1f8ff;--surface:#fff;--surface2:#eaf5ff;--ink:#16334b;--muted:#526d82;--line:#d3e6f5;--accent:#0677d8;--navy:#074f84;--navy2:#063d69}body.theme-sync{--page:#0d1727;--surface:#152238;--surface2:#1d2d47;--ink:#f5f8ff;--muted:#9fb0c8;--line:#2b3f5c;--accent:#4f8bd6;--navy:#081321;--navy2:#12233b}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:50;background:linear-gradient(180deg,var(--navy),var(--navy2));padding:14px 11px 12px;display:flex;flex-direction:column;color:#fff}.side-logo{height:78px;display:flex;align-items:center;padding:0 8px 12px;border-bottom:1px solid rgba(255,255,255,.12)}.side-logo img{width:205px;max-height:58px}.side-nav{display:flex;flex-direction:column;gap:3px;padding:12px 0;overflow:auto}.side-nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 13px;border-radius:6px;color:#fff;font-size:15px;font-weight:600}.side-nav a .ui-icon{color:#d3e7ff;width:17px;height:17px}.side-nav a:hover{background:rgba(255,255,255,.07)}.side-nav a.active{background:linear-gradient(135deg,#1190ff,#0862f0);box-shadow:0 7px 20px rgba(4,105,242,.28)}.side-nav a.active .ui-icon{color:#fff}.nav-divider{height:1px;background:rgba(255,255,255,.1);margin:5px 8px}.sidebar-storage{margin-top:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px}.sidebar-storage div:first-child{display:flex;flex-direction:column;gap:2px}.sidebar-storage span{font-size:12px;color:#c2d5ed}.sidebar-storage b{font-size:11px;color:#fff;font-weight:500}.storage-meter{height:5px;border-radius:99px;background:rgba(255,255,255,.2);overflow:hidden;margin-top:7px}.storage-meter i{display:block;height:100%;background:linear-gradient(90deg,#26dd4f,#1787ff);border-radius:99px}.app-main{grid-column:2;min-width:0}.topbar{height:70px;position:sticky;top:0;z-index:40;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 18px;gap:15px;border-bottom:1px solid rgba(255,255,255,.08)}.top-search{height:40px;width:min(360px,42vw);display:flex;align-items:center;gap:7px;padding:0 10px;border-radius:5px;background:rgba(255,255,255,.1);color:#cfe0f5;font-size:12px}.top-search .ui-icon{width:14px;height:14px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:11px}.top-actions>.ui-icon,.top-actions>a{color:#fff}.top-actions>a .ui-icon{width:17px;height:17px}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#087cff;color:#fff;font-size:12px;font-weight:700}.top-user{display:flex;flex-direction:column;line-height:1.2}.top-user b{font-size:12px}.top-user small{font-size:10px;color:#b6c9e0}.logout-link{margin-left:3px}.navtoggle{display:none}.app-main main{width:min(1380px,calc(100% - 44px));margin:18px auto 30px}.dashboard-welcome{margin:4px 0 14px}.dashboard-welcome h1{font-size:30px;margin:0 0 5px;letter-spacing:-.03em}.dashboard-welcome p{margin:0;color:var(--muted);font-size:13px}.dashboard-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:14px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:5px;min-height:118px;padding:17px;box-shadow:0 3px 10px rgba(20,55,95,.025)}.metric-icon{height:20px;color:var(--accent);margin-bottom:5px}.metric-icon .ui-icon{width:19px;height:19px}.metric>b{display:block;font-size:26px;color:var(--accent);line-height:1.1}.metric>span{display:block;margin-top:4px;color:var(--ink);font-size:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:18px;color:var(--ink);box-shadow:var(--shadow)}.dashboard-uploader{min-height:145px;margin-bottom:14px;border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:none;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:var(--surface);cursor:pointer}.dashboard-uploader .upload-cloud{color:var(--accent);margin-bottom:2px}.dashboard-uploader .upload-cloud .ui-icon{width:32px;height:32px}.dashboard-uploader h2{font-size:16px;margin:0 0 4px}.dashboard-uploader p{font-size:12px;color:var(--muted);margin:0}.dashboard-bottom{display:grid;grid-template-columns:1.2fr .9fr;gap:10px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.sectionhead h2{font-size:16px;margin:0}.sectionhead a{color:var(--accent)}.activity-list{display:flex;flex-direction:column}.activity-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.activity-row:first-child{border-top:0}.activity-dot{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:var(--surface2);color:var(--accent)}.activity-dot .ui-icon{width:14px;height:14px}.activity-row>div{display:flex;flex-direction:column;gap:2px}.activity-row b{font-size:12px}.activity-row small{font-size:10px;color:var(--muted)}.storage-overview{display:flex;align-items:center;justify-content:space-between;font-size:8px;margin:14px 0 7px}.storage-meter.large{background:var(--surface2);height:6px}.storage-legend{display:flex;flex-direction:column;gap:8px;margin-top:13px}.storage-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:8px}.storage-legend span b{margin-left:auto;color:var(--ink)}.storage-legend i{width:6px;height:6px;border-radius:50%;background:#ccd8e5}.storage-legend .used-dot{background:var(--accent)}
.page-title,.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:9px 0 18px}.page-title h1,.hero h1{font-size:48px;line-height:1;letter-spacing:-.055em;margin:5px 0 8px;font-weight:750}.smallhero h1{font-size:42px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:700;color:var(--accent)}.muted,.small,.tiny{color:var(--muted)}.small{font-size:14px}.tiny{font-size:11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:13px}.stat b{display:block;color:var(--accent);font-size:28px}.stat span{font-size:8px;color:var(--muted)}.grid2,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.usage{text-align:right}.usage strong{display:block;font-size:20px}.usage span{font-size:11px;color:var(--muted)}.meter{height:5px;background:var(--line);border-radius:99px;overflow:hidden}.meter i{height:100%;display:block;background:var(--accent)}.crumbs{font-size:12px;color:var(--muted);margin:-3px 0 11px}.crumbs a,.folder{color:var(--accent);font-weight:600}.uploader{min-height:115px;text-align:center;border-style:dashed;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.uploader:before{content:"↥";display:grid;place-items:center;width:32px;height:32px;color:var(--accent);font-size:24px}.uploader h2{font-size:12px;margin:3px 0}.uploader p{font-size:8px;margin:0}.tablewrap{margin-top:14px;overflow:auto}.folder-head-actions,.actions{display:flex;gap:5px;flex-wrap:wrap}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:left;padding:10px 7px;border-top:1px solid var(--line);font-size:12px;color:var(--ink)}th{font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.actions a,.actions button,.button,button{min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}.secondary{background:var(--surface2)!important;color:var(--ink)!important;border-color:var(--line)!important}.danger{background:#d92d3d!important;border-color:#d92d3d!important;color:#fff!important}label{display:block;color:var(--muted);font-size:12px;margin:11px 0}input,select,textarea{display:block;width:100%;margin-top:5px;padding:8px 9px;border:1px solid var(--line);border-radius:5px;background:var(--surface2);color:var(--ink);font-size:13px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent)}.check{display:flex;gap:7px;align-items:center}.check input{width:auto;margin:0;accent-color:var(--accent)}.error,.success{padding:9px 10px;border-radius:5px;margin:10px 0;font-size:12px}.error{background:#fff0f2;border:1px solid #e8a3ae;color:#8c1628}.success{background:#ecfbf3;border:1px solid #9bd6b4;color:#155d37}.modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(3,12,25,.62);backdrop-filter:blur(6px);place-items:center;padding:16px}.modal.open{display:grid}.modalcard{width:min(500px,95vw);max-height:calc(100dvh - 30px);overflow:auto;position:relative}.x{position:absolute;right:10px;top:8px;background:transparent!important;border:0!important;color:var(--ink)!important;font-size:21px;min-height:auto!important;padding:2px!important}.dialog-actions,.share-actions-grid{display:flex;gap:7px;flex-wrap:wrap}.dialog-icon{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;background:var(--surface2);color:var(--accent);border:1px solid var(--line)}.integrated-email,.integrated-sms,.request-delivery{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.email-send-row,.sms-send-row,.request-send-row{display:grid;grid-template-columns:1fr auto;gap:7px}
/* Login / public */.public-header{position:absolute;top:18px;left:28px;z-index:5}.public-header img{width:170px}.auth,.public{min-height:100vh;display:grid;place-items:center;padding:86px 18px 55px;background:linear-gradient(180deg,#f8fbff,#eef5ff)}.authcard,.publiccard,.setup{width:min(500px,94vw);background:#fff;color:#07162f;border-color:#d9e4f1;box-shadow:0 18px 55px rgba(7,38,78,.14)}.auth-logo{width:250px;display:block;margin:0 auto 13px}.authcard h1{text-align:center;font-size:30px;margin:6px 0}.authcard>p.muted{text-align:center;color:#66758d}.authcard label{color:#66758d}.authcard input{background:#f5f8fc;color:#07162f}.authcard button{width:100%;background:#086cff;color:#fff}.authcard a{color:#086cff}.public-footer{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:18px;align-items:center;color:#738198;font-size:7px}.public-footer b{font-weight:600;color:#40516a}
/* theme picker always uses exact palette chips, not current theme colors */.theme-form{margin-bottom:60px}.themegrid,.compact-themegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.visual-theme-card{display:grid!important;grid-template-columns:22px 112px 1fr 22px!important;gap:9px!important;align-items:center!important;min-height:118px!important;padding:10px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:7px!important}.visual-theme-card.selected{outline:2px solid var(--accent);outline-offset:0}.visual-theme-card>input{width:15px!important;height:15px!important;margin:0!important}.theme-card-copy{display:flex;flex-direction:column}.theme-card-copy strong{font-size:14px}.theme-card-copy small,.theme-card-copy>span{font-size:10px;color:var(--muted);margin-top:2px}.theme-selected-mark{color:var(--accent);font-size:12px}.card-live-preview{width:112px;height:76px;border:1px solid #ccd8e5;border-radius:6px;overflow:hidden;display:grid;grid-template-rows:16px 1fr;background:var(--cp-bg)}.mini-top{display:flex;gap:3px;align-items:center;padding:0 5px;background:var(--cp-head)}.mini-top i{width:4px;height:4px;border-radius:50%;background:var(--cp-accent)}.mini-body{padding:5px;display:flex;flex-direction:column;gap:4px}.mini-body>b{height:5px;width:52%;border-radius:3px;background:var(--cp-accent)}.mini-body>em{height:3px;width:76%;border-radius:2px;background:var(--cp-line)}.mini-body>span{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:auto}.mini-body>span i{height:11px;border-radius:3px;background:var(--cp-card)}.mini-theme-filesdrop{--cp-bg:#0e1a29;--cp-head:#061427;--cp-accent:#1c91ff;--cp-line:#36516f;--cp-card:#20344e}.mini-theme-dropbox{--cp-bg:#fff;--cp-head:#0061ff;--cp-accent:#0061ff;--cp-line:#cad9ef;--cp-card:#dfebff}.mini-theme-drive{--cp-bg:#fff;--cp-head:#fff;--cp-accent:#086cff;--cp-line:#d6e1ec;--cp-card:#e6eef8}.mini-theme-onedrive{--cp-bg:#fff;--cp-head:#0b4777;--cp-accent:#0078d4;--cp-line:#d2dce6;--cp-card:#e2eff7}.mini-theme-box{--cp-bg:#fff;--cp-head:#123c69;--cp-accent:#0061d5;--cp-line:#d6e1eb;--cp-card:#e5effb}.mini-theme-wetransfer{--cp-bg:#191919;--cp-head:#0a0a0a;--cp-accent:#ff5a36;--cp-line:#444;--cp-card:#333}.mini-theme-icloud{--cp-bg:#fff;--cp-head:#163a61;--cp-accent:#087cff;--cp-line:#d7e4f2;--cp-card:#e7f1fb}.mini-theme-proton{--cp-bg:#1f1930;--cp-head:#21163b;--cp-accent:#8b6cff;--cp-line:#493b67;--cp-card:#3a2d58}.mini-theme-mega{--cp-bg:#fff;--cp-head:#341014;--cp-accent:#d90007;--cp-line:#ead2d3;--cp-card:#ffe5e6}.mini-theme-pcloud{--cp-bg:#fff;--cp-head:#074f84;--cp-accent:#0677d8;--cp-line:#cbe1f1;--cp-card:#dff0fb}.mini-theme-sync{--cp-bg:#152238;--cp-head:#081321;--cp-accent:#4f8bd6;--cp-line:#344c6c;--cp-card:#243958}.theme-savebar{position:sticky;bottom:9px;margin-top:12px;padding:9px 10px;background:var(--surface);border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 8px 25px rgba(9,43,84,.12)}.theme-save-actions{display:flex;gap:6px}.app-footer{font-size:10px;color:var(--muted);padding:12px 0;width:min(1380px,calc(100% - 44px));margin:0 auto}
@media(max-width:850px){:root{--sidebar:210px}.dashboard-stats{grid-template-columns:repeat(3,1fr)}.grid2,.settings-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.app-main{min-height:100vh}.sidebar{width:min(260px,84vw);transform:translateX(-104%);transition:.2s;box-shadow:16px 0 45px rgba(0,0,0,.3)}body.navopen .sidebar{transform:translateX(0)}.topbar{height:52px;padding:0 10px}.navtoggle{display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}.top-search{display:none}.top-user{display:none}.app-main main{width:calc(100% - 20px);margin:16px auto}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-bottom{grid-template-columns:1fr}.page-title,.hero{flex-direction:column;align-items:flex-start}.themegrid,.compact-themegrid{grid-template-columns:1fr}.theme-savebar{position:static;flex-direction:column;align-items:stretch}.theme-save-actions{display:grid;grid-template-columns:1fr 1fr}.public-footer{flex-wrap:wrap}.public-header{left:18px}.folder-head-actions{display:grid;grid-template-columns:1fr}.email-send-row,.sms-send-row,.request-send-row{grid-template-columns:1fr}}@media(max-width:430px){.dashboard-stats{grid-template-columns:1fr}.page-title h1,.hero h1{font-size:30px}.card{padding:11px}.theme-save-actions{grid-template-columns:1fr}}

/* =========================================================
   Phase 3.20 — Normal-size responsive UI
   Preserve Phase 3.19 design; correct over-miniaturized sizing.
   ========================================================= */
html{font-size:16px!important}
body{font-size:16px!important;line-height:1.45!important}
:root{--sidebar:270px!important}

/* Desktop shell */
.sidebar{padding:18px 14px 16px!important}
.side-logo{height:92px!important;padding:2px 10px 16px!important}
.side-logo img{width:226px!important;max-height:68px!important}
.side-nav{gap:5px!important;padding:16px 0!important}
.side-nav a{min-height:54px!important;padding:12px 15px!important;border-radius:9px!important;font-size:16px!important;gap:14px!important}
.side-nav a .ui-icon{width:20px!important;height:20px!important;flex-basis:20px!important}
.sidebar-storage{padding:14px!important;border-radius:10px!important}
.sidebar-storage span{font-size:13px!important}.sidebar-storage b{font-size:13px!important}.storage-meter{height:7px!important;margin-top:9px!important}

.app-main{min-width:0!important}
.topbar{height:82px!important;padding:0 26px!important;gap:20px!important}
.top-search{height:48px!important;width:min(480px,44vw)!important;padding:0 14px!important;border-radius:8px!important;font-size:14px!important}
.top-search .ui-icon{width:18px!important;height:18px!important}
.top-actions{gap:15px!important}.top-actions>a .ui-icon,.top-actions>.ui-icon{width:21px!important;height:21px!important}
.avatar{width:44px!important;height:44px!important;font-size:13px!important}.top-user b{font-size:14px!important}.top-user small{font-size:11px!important}

.app-main main{width:min(1500px,calc(100% - 64px))!important;margin:30px auto 44px!important}
.dashboard-welcome{margin:8px 0 24px!important}.dashboard-welcome h1{font-size:40px!important;line-height:1.08!important;margin-bottom:8px!important}.dashboard-welcome p{font-size:16px!important}
.dashboard-stats{gap:15px!important;margin-bottom:22px!important}.metric{min-height:150px!important;padding:22px!important;border-radius:9px!important}.metric-icon{height:28px!important;margin-bottom:9px!important}.metric-icon .ui-icon{width:26px!important;height:26px!important}.metric>b{font-size:34px!important}.metric>span{font-size:15px!important;margin-top:7px!important}
.dashboard-uploader{min-height:205px!important;margin-bottom:22px!important;border-radius:10px!important}.dashboard-uploader .upload-cloud .ui-icon{width:52px!important;height:52px!important}.dashboard-uploader h2{font-size:20px!important;margin:7px 0 5px!important}.dashboard-uploader p{font-size:14px!important}
.dashboard-bottom{gap:18px!important}.card{padding:24px!important;border-radius:10px!important}.sectionhead{margin-bottom:12px!important}.sectionhead h2{font-size:20px!important}.sectionhead a{font-size:14px!important}
.activity-row{gap:12px!important;padding:13px 0!important}.activity-dot{width:34px!important;height:34px!important}.activity-dot .ui-icon{width:18px!important;height:18px!important}.activity-row b{font-size:14px!important}.activity-row small{font-size:12px!important}
.storage-overview{font-size:14px!important;margin:19px 0 10px!important}.storage-meter.large{height:9px!important}.storage-legend{gap:11px!important;margin-top:18px!important}.storage-legend span{font-size:13px!important}.storage-legend i{width:9px!important;height:9px!important}

/* Standard pages */
.page-title,.hero{gap:28px!important;margin:18px 0 28px!important}.page-title h1,.hero h1{font-size:58px!important;line-height:1.03!important;margin:8px 0 12px!important}.smallhero h1{font-size:50px!important}.eyebrow{font-size:13px!important}.small{font-size:14px!important}.tiny{font-size:13px!important}
.stats{gap:15px!important;margin-bottom:22px!important}.stat{padding:20px!important;border-radius:10px!important}.stat b{font-size:34px!important}.stat span{font-size:13px!important;margin-top:5px!important}
.grid2,.settings-grid{gap:20px!important}.usage strong{font-size:28px!important}.usage span{font-size:13px!important}.meter{height:7px!important;margin-top:7px!important}.crumbs{font-size:14px!important;margin:0 0 16px!important}
.uploader{min-height:180px!important}.uploader:before{width:48px!important;height:48px!important;font-size:34px!important}.uploader h2{font-size:18px!important;margin:7px 0!important}.uploader p{font-size:13px!important}
.tablewrap{margin-top:20px!important}table{min-width:760px!important}th,td{padding:14px 10px!important;font-size:14px!important}th{font-size:11px!important}.folder-head-actions,.actions{gap:8px!important}
.actions a,.actions button,.button,button{min-height:42px!important;padding:9px 14px!important;border-radius:8px!important;font-size:14px!important}
label{font-size:14px!important;margin:15px 0!important}input,select,textarea{margin-top:7px!important;padding:12px 13px!important;border-radius:8px!important;font-size:15px!important;min-height:46px!important}.check input{min-height:auto!important}
.error,.success{padding:13px 15px!important;border-radius:8px!important;font-size:14px!important}
.modalcard{width:min(620px,94vw)!important}.x{font-size:26px!important}.dialog-icon{width:44px!important;height:44px!important}.dialog-actions,.share-actions-grid{gap:10px!important}.integrated-email,.integrated-sms,.request-delivery{padding-top:16px!important;margin-top:16px!important}.email-send-row,.sms-send-row,.request-send-row{gap:10px!important}

/* Auth/login */
.public-header{top:24px!important;left:36px!important}.public-header img{width:230px!important}.auth,.public{padding:110px 22px 70px!important}.authcard,.publiccard,.setup{width:min(590px,94vw)!important;padding:30px!important}.auth-logo{width:330px!important;margin-bottom:20px!important}.authcard h1{font-size:38px!important;margin:10px 0 7px!important}.authcard>p.muted{font-size:15px!important}.authcard label{font-size:14px!important}.authcard button{min-height:50px!important;font-size:16px!important}.public-footer{font-size:12px!important;bottom:22px!important}

/* Theme manager */
.theme-form{margin-bottom:80px!important}.themegrid,.compact-themegrid{gap:16px!important}.visual-theme-card{grid-template-columns:24px 138px 1fr 24px!important;gap:14px!important;min-height:150px!important;padding:16px!important;border-radius:10px!important}.visual-theme-card>input{width:19px!important;height:19px!important}.theme-card-copy strong{font-size:17px!important}.theme-card-copy small,.theme-card-copy>span{font-size:13px!important;margin-top:4px!important}.theme-selected-mark{font-size:17px!important}.card-live-preview{width:138px!important;height:96px!important;border-radius:8px!important}.mini-top{padding:0 7px!important}.mini-top i{width:6px!important;height:6px!important}.mini-body{padding:8px!important;gap:6px!important}.mini-body>b{height:7px!important}.mini-body>em{height:5px!important}.mini-body>span{gap:5px!important}.mini-body>span i{height:17px!important}.theme-savebar{bottom:14px!important;margin-top:18px!important;padding:14px 16px!important;border-radius:10px!important}.theme-save-actions{gap:10px!important}
.app-footer{font-size:12px!important;width:min(1500px,calc(100% - 64px))!important;padding:18px 0!important}

/* Laptop / medium desktop */
@media(max-width:1200px){
 :root{--sidebar:250px!important}
 .app-main main{width:calc(100% - 42px)!important}
 .dashboard-stats{grid-template-columns:repeat(3,1fr)!important}
 .page-title h1,.hero h1{font-size:52px!important}
}

/* Tablet */
@media(max-width:850px){
 :root{--sidebar:230px!important}
 .side-nav a{font-size:15px!important}
 .dashboard-stats{grid-template-columns:repeat(2,1fr)!important}
 .dashboard-bottom,.grid2,.settings-grid{grid-template-columns:1fr!important}
 .page-title h1,.hero h1{font-size:46px!important}
}

/* Phone/tablet drawer layout — independent sizing, not a shrunken desktop */
@media(max-width:700px){
 html{font-size:16px!important}
 .app-shell{display:block!important}.app-main{min-height:100vh!important}
 .sidebar{width:min(320px,88vw)!important;padding:16px!important;transform:translateX(-104%);transition:transform .2s ease;box-shadow:18px 0 50px rgba(0,0,0,.3)}
 body.navopen .sidebar{transform:translateX(0)}
 .side-logo{height:86px!important}.side-logo img{width:220px!important}.side-nav a{min-height:52px!important;font-size:16px!important}.side-nav a .ui-icon{width:20px!important;height:20px!important}
 .topbar{height:68px!important;padding:0 14px!important}.navtoggle{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;min-height:44px!important;font-size:20px!important}.top-search{display:none!important}.top-user{display:none!important}.top-actions{gap:13px!important}
 .app-main main{width:calc(100% - 26px)!important;margin:22px auto 34px!important}
 .dashboard-welcome h1{font-size:32px!important}.dashboard-welcome p{font-size:15px!important}.dashboard-stats{grid-template-columns:1fr 1fr!important;gap:11px!important}.metric{min-height:126px!important;padding:17px!important}.metric>b{font-size:29px!important}.metric>span{font-size:13px!important}
 .dashboard-uploader{min-height:180px!important}.dashboard-uploader h2{font-size:18px!important}.dashboard-uploader p{font-size:13px!important}.dashboard-bottom{grid-template-columns:1fr!important}
 .page-title,.hero{flex-direction:column!important;align-items:flex-start!important;gap:13px!important}.page-title h1,.hero h1,.smallhero h1{font-size:36px!important}.eyebrow{font-size:12px!important}.usage{text-align:left!important}
 .stats{grid-template-columns:1fr 1fr!important}.card{padding:18px!important}.uploader{min-height:165px!important}th,td{font-size:13px!important}
 .themegrid,.compact-themegrid{grid-template-columns:1fr!important}.visual-theme-card{grid-template-columns:22px 105px 1fr 20px!important;min-height:126px!important;padding:13px!important}.card-live-preview{width:105px!important;height:76px!important}.theme-card-copy strong{font-size:15px!important}.theme-card-copy small,.theme-card-copy>span{font-size:11px!important}.theme-savebar{position:static!important;flex-direction:column!important;align-items:stretch!important}.theme-save-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
 .public-header{left:20px!important;top:18px!important}.public-header img{width:200px!important}.auth,.public{padding:95px 14px 55px!important}.authcard,.publiccard,.setup{width:min(560px,96vw)!important;padding:22px!important}.auth-logo{width:290px!important}.authcard h1{font-size:32px!important}.public-footer{font-size:10px!important;position:static!important;margin:20px 0!important}
 .folder-head-actions{display:grid!important;grid-template-columns:1fr!important}.email-send-row,.sms-send-row,.request-send-row{grid-template-columns:1fr!important}
}

@media(max-width:430px){
 .app-main main{width:calc(100% - 20px)!important}
 .dashboard-stats,.stats{grid-template-columns:1fr!important}
 .metric{min-height:112px!important}
 .page-title h1,.hero h1,.smallhero h1{font-size:32px!important}
 .card{padding:16px!important}
 .theme-save-actions{grid-template-columns:1fr!important}
 .visual-theme-card{grid-template-columns:20px 88px 1fr 18px!important;gap:9px!important}.card-live-preview{width:88px!important;height:68px!important}
}

/* Phase 3.21 — branding, MFA sizing, and per-user notifications */
.qrbox{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:14px!important;background:#fff!important;border:1px solid var(--border)!important;border-radius:14px!important;margin:10px 0 18px!important;max-width:250px!important}
.qrbox img{display:block!important;width:220px!important;height:220px!important;max-width:100%!important;object-fit:contain!important}
.brand-logo-box{display:flex;align-items:center;justify-content:center;min-height:130px;padding:20px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;margin-bottom:16px}
.brand-logo-current{display:block;max-width:360px!important;max-height:100px!important;width:auto!important;height:auto!important;object-fit:contain}
.favicon-preview-box{display:flex;align-items:center;justify-content:center;width:72px;height:72px;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;margin:10px 0 16px}
.brand-favicon-current,.brand-mark-preview{display:block!important;width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important;object-fit:contain!important}
.brand-reset-form{margin-top:10px}
.user-notify-form{display:grid;grid-template-columns:minmax(150px,1fr) auto auto auto;gap:8px;align-items:center;margin-top:8px;min-width:520px}
.user-notify-form input[type="tel"]{margin:0;min-width:150px}.compact-check{margin:0!important;white-space:nowrap;font-size:12px!important}.user-notify-form button{white-space:nowrap}
@media(max-width:760px){.qrbox{max-width:218px!important}.qrbox img{width:190px!important;height:190px!important}.brand-logo-current{max-width:280px!important;max-height:86px!important}.user-notify-form{grid-template-columns:1fr;min-width:0}.compact-check{white-space:normal}.favicon-preview-box{width:64px;height:64px}.brand-favicon-current,.brand-mark-preview{width:40px!important;height:40px!important}}
@media(max-width:420px){.qrbox{max-width:196px!important;padding:10px!important}.qrbox img{width:174px!important;height:174px!important}}

/* Phase 3.22 — centered single-logo authentication pages */
body.auth-page .public-header{display:none!important}
body.auth-page{min-height:100dvh!important;width:100%!important;overflow-x:hidden!important;background:radial-gradient(circle at 50% 0,#eaf4ff 0,#f8fbff 37%,#edf5ff 100%)!important}
body.auth-page .auth,body.auth-page .public{min-height:100dvh!important;width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:max(28px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(42px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))!important;background:transparent!important}
body.auth-page .authcard,body.auth-page .publiccard,body.auth-page .setup{width:min(480px,100%)!important;max-width:480px!important;margin:0 auto!important;position:relative!important;left:auto!important;right:auto!important;transform:none!important}
body.auth-page .auth-logo{display:block!important;width:min(320px,86%)!important;max-height:112px!important;height:auto!important;object-fit:contain!important;margin:0 auto 22px!important}
body.auth-page .public-footer{position:fixed!important;left:0!important;right:0!important;bottom:max(10px,env(safe-area-inset-bottom))!important;width:100%!important;text-align:center!important;pointer-events:none}
@media(max-width:760px){body.auth-page .auth,body.auth-page .public{padding:max(18px,env(safe-area-inset-top)) 14px max(38px,env(safe-area-inset-bottom)) 14px!important;align-items:center!important}body.auth-page .authcard,body.auth-page .publiccard,body.auth-page .setup{width:100%!important;max-width:430px!important;margin-left:auto!important;margin-right:auto!important;padding:28px 24px!important;border-radius:18px!important}body.auth-page .auth-logo{width:min(285px,80%)!important;max-height:96px!important;margin-bottom:20px!important}body.auth-page .authcard h1{font-size:34px!important;line-height:1.08!important}body.auth-page .authcard>p.muted{font-size:17px!important;line-height:1.45!important;margin-bottom:24px!important}body.auth-page .authcard label{font-size:15px!important}body.auth-page .authcard input{min-height:54px!important;font-size:16px!important}body.auth-page .authcard button{min-height:54px!important;width:100%!important;font-size:17px!important}body.auth-page .authcard a{font-size:16px!important}}
@media(max-width:430px){body.auth-page .auth,body.auth-page .public{padding-left:12px!important;padding-right:12px!important}body.auth-page .authcard,body.auth-page .publiccard,body.auth-page .setup{max-width:none!important;width:100%!important;padding:24px 18px!important}body.auth-page .auth-logo{width:min(265px,82%)!important}}

/* Phase 3.23 — iPhone/iPad file picker reliability */
.ios-file-input{
 position:absolute!important;
 width:1px!important;
 height:1px!important;
 padding:0!important;
 margin:-1px!important;
 overflow:hidden!important;
 clip:rect(0,0,0,0)!important;
 white-space:nowrap!important;
 border:0!important;
 opacity:.001!important;
 pointer-events:none!important;
}
.file-picker-button{
 display:inline-flex!important;
 align-items:center!important;
 justify-content:center!important;
 min-height:46px!important;
 padding:10px 18px!important;
 margin:10px 0 8px!important;
 border-radius:10px!important;
 border:1px solid var(--accent)!important;
 background:var(--accent)!important;
 color:var(--accent-contrast)!important;
 font-weight:750!important;
 font-size:15px!important;
 cursor:pointer!important;
 -webkit-user-select:none!important;
 user-select:none!important;
 touch-action:manipulation!important;
}
.file-picker-button:active{transform:translateY(1px)}
.uploader .file-picker-button{position:relative;z-index:3}
@media(max-width:760px){
 .file-picker-button{width:100%!important;max-width:320px!important;min-height:52px!important;font-size:16px!important;margin-top:14px!important}
 .uploader{cursor:default!important}
}

/* Phase 3.24 — multi-file iPhone batch upload queue */
#queue,#publicQueue{width:100%;max-width:760px;margin:14px auto 0}
.qitem{width:100%;padding:11px 12px;margin:8px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left}
.qitem.queued{opacity:.72}
.qitem.uploading{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}
.qitem.complete{border-color:color-mix(in srgb,#1f9d55 55%,var(--border))}
.qitem.failed{border-color:color-mix(in srgb,#d9293a 65%,var(--border))}
.upload-file-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.upload-file-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-batch-result{margin-top:12px!important}
@media(max-width:760px){
 #queue,#publicQueue{max-width:none}
 .qitem{padding:12px}
 .upload-file-head{align-items:flex-start;flex-direction:column;gap:2px}
}

/* Phase 3.25 — 1 to 50 file batch selection */
.upload-selection-count{
 display:flex;
 align-items:center;
 justify-content:center;
 width:100%;
 margin:8px 0 12px;
 padding:9px 12px;
 border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));
 border-radius:9px;
 background:color-mix(in srgb,var(--accent) 7%,var(--surface));
 color:var(--text);
 font-size:13px;
 font-weight:700;
}
@media(max-width:760px){
 .upload-selection-count{font-size:14px;padding:10px}
}

/* Phase 3.26 — mobile file-row action alignment
   Keep each individual file's Share/Download/etc. controls inside the iPhone viewport. */
@media (max-width: 760px) {
  .file-row,
  .file-item,
  .file-entry,
  .folder-row,
  .folder-item,
  .item-row,
  tr.file-row,
  tr.folder-row {
    max-width: 100%;
    min-width: 0;
  }

  .file-row .actions,
  .file-item .actions,
  .file-entry .actions,
  .folder-row .actions,
  .folder-item .actions,
  .item-row .actions,
  .file-actions,
  .item-actions,
  td.actions {
    position: static !important;
    right: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 10px 0 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    box-sizing: border-box !important;
  }

  .file-row .actions > *,
  .file-item .actions > *,
  .file-entry .actions > *,
  .folder-row .actions > *,
  .folder-item .actions > *,
  .item-row .actions > *,
  .file-actions > *,
  .item-actions > *,
  td.actions > * {
    max-width: 100%;
  }

  .file-name,
  .item-name,
  td.name,
  td:first-child {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  /* Table-based file lists become stacked mobile cards so controls cannot overflow right. */
  .files-table,
  table.files,
  .file-table {
    width: 100% !important;
    table-layout: fixed !important;
  }

  .files-table tr,
  table.files tr,
  .file-table tr {
    max-width: 100% !important;
  }

  .files-table td,
  table.files td,
  .file-table td {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body, .app-shell, main, .main-content, .content {
    overflow-x: hidden !important;
  }
}

/* Phase 3.27 — public shared-folder ZIP + mobile layout */
.shared-folder-toolbar{
 display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
 margin:20px 0 14px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);
}
.shared-folder-toolbar>div{min-width:0}.shared-zip-button{white-space:nowrap}
.shared-file-list{display:flex;flex-direction:column;gap:10px;width:100%;min-width:0}
.shared-file-row{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;
 width:100%;min-width:0;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);
}
.shared-file-main{min-width:0}
.shared-file-main strong{
 display:block;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;color:var(--text);
}
.shared-file-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:12px;min-width:0}
.shared-file-meta span{min-width:0;overflow-wrap:anywhere}
.shared-file-action{display:flex;align-items:center;justify-content:flex-end;min-width:0}
.shared-file-action .button{white-space:nowrap;min-width:108px}
.publiccard{max-width:min(920px,94vw)!important;width:min(920px,94vw)!important}

@media(max-width:760px){
 .publiccard{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}
 .shared-folder-toolbar{display:grid;grid-template-columns:1fr;width:100%;padding:13px;margin-top:16px}
 .shared-zip-button{width:100%!important;white-space:normal!important;text-align:center}
 .shared-file-list{width:100%;max-width:100%;overflow:hidden}
 .shared-file-row{
   display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;
   width:100%!important;max-width:100%!important;min-width:0!important;padding:14px!important;
 }
 .shared-file-main{width:100%!important;max-width:100%!important;min-width:0!important}
 .shared-file-action{
   width:100%!important;max-width:100%!important;justify-content:center!important;margin:0!important;
   position:static!important;transform:none!important;
 }
 .shared-file-action .button{width:100%!important;max-width:100%!important;min-width:0!important;white-space:normal!important}
 .shared-file-meta{width:100%;gap:7px 12px}
}

/* Phase 3.28 — unified file previews */
.file-name-preview{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}
.file-name-copy{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}
.file-name-copy strong{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.file-name-copy small{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.file-subline{margin-left:60px}
.file-thumb{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--accent)}
.file-thumb-small{width:48px;height:48px}
.file-thumb-share{width:64px;height:64px;border-radius:10px}
.file-thumb-large{width:112px;height:112px;border-radius:16px}
.file-thumb img,.file-thumb video{display:block;width:100%;height:100%;object-fit:cover;background:#111}
.file-thumb b{font-size:11px;font-weight:900;letter-spacing:.02em}
.file-thumb small{position:absolute;bottom:4px;left:4px;right:4px;text-align:center;font-size:7px;font-weight:900;letter-spacing:.08em;opacity:.75}
.file-kind-pdf{background:#fff1f2;color:#d72232;border-color:#f0c5c9}
.file-kind-video{background:#121923;color:#fff}
.file-kind-audio{background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}
.file-kind-word{background:#eef5ff;color:#1769d2}.file-kind-sheet{background:#eefaf2;color:#218346}.file-kind-slides{background:#fff4eb;color:#d86624}.file-kind-archive{background:#fff8e6;color:#9a6a00}
.preview-play{position:absolute;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-style:normal;font-size:10px;padding-left:2px}
.shared-file-main .file-name-preview{align-items:center}.shared-file-main .file-name-copy strong{white-space:normal;overflow-wrap:anywhere}
.public-rich-preview{width:100%;margin:18px 0 20px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface-2)}
.public-rich-preview.image-preview{display:flex;align-items:center;justify-content:center;min-height:180px;max-height:440px;background:#10151d}
.public-rich-preview.image-preview img{display:block;width:auto;max-width:100%;height:auto;max-height:440px;object-fit:contain}
.public-rich-preview.video-preview{background:#10151d}.public-rich-preview.video-preview video{display:block;width:100%;max-height:420px;background:#000}
.public-rich-preview.pdf-preview{height:360px;background:#fff}.public-rich-preview.pdf-preview iframe{display:block;width:100%;height:100%;border:0}
.public-rich-preview.audio-preview,.public-rich-preview.generic-preview{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:24px;min-height:170px;text-align:center}
.public-rich-preview.audio-preview audio{width:min(520px,100%)}
.public-download-button{margin-top:2px}
@media(max-width:760px){
 .file-thumb-small{width:46px;height:46px}.file-thumb-share{width:58px;height:58px}
 .file-name-preview{gap:10px}.file-name-copy strong{white-space:normal;overflow-wrap:anywhere}
 .file-subline{margin-left:56px}
 .public-rich-preview.image-preview{min-height:140px;max-height:320px}.public-rich-preview.image-preview img{max-height:320px}
 .public-rich-preview.video-preview video{max-height:320px}
 .public-rich-preview.pdf-preview{height:300px}
}

/* Phase 3.29 — file management, favorites, share cleanup */
.file-preview-link{display:block;color:inherit!important;text-decoration:none!important;min-width:0}
.file-preview-link:hover .file-name-copy strong{color:var(--accent)!important}
.public-preview-link{width:100%}
.select-col{width:42px!important;text-align:center!important}
.select-col input{width:18px!important;height:18px!important;margin:0 auto!important;accent-color:var(--accent)}
.bulk-toolbar{position:sticky;top:82px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 14px;margin:0 0 12px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;box-shadow:var(--shadow)}
.bulk-toolbar[hidden]{display:none!important}.bulk-actions{display:flex;gap:8px;flex-wrap:wrap}
.folder-picker-trigger{width:100%!important;display:flex!important;justify-content:space-between!important;gap:12px!important;margin:6px 0 12px!important;text-align:left!important}
.folder-picker-trigger span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-browser-card{width:min(600px,96vw)!important}
.folder-browser-path{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}
.folder-browser-path strong{min-width:0;overflow-wrap:anywhere}
.folder-browser-list{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow:auto;padding:2px}
.folder-browser-item{display:grid!important;grid-template-columns:30px minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;width:100%!important;background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--border)!important;text-align:left!important}
.folder-browser-item:hover{border-color:var(--accent)!important;background:var(--surface-2)!important}
.folder-browser-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-browser-item small{color:var(--muted)}
.folder-browser-loading,.folder-browser-empty{padding:20px;text-align:center;color:var(--muted)}
.favorite-folder-link{display:flex;align-items:center;gap:10px;color:var(--text)!important}.favorite-folder-icon{font-size:22px}
.public-footer{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;display:flex!important;justify-content:center!important;gap:18px!important;flex-wrap:wrap!important;width:100%!important;padding:22px 16px max(20px,env(safe-area-inset-bottom))!important;margin:0!important;background:#eef5ff!important;color:#738198!important}
.public{min-height:calc(100dvh - 74px)!important;height:auto!important;align-items:start!important;padding-bottom:32px!important}
body.auth-page .public-footer{position:fixed!important}
@media(max-width:760px){
 .bulk-toolbar{top:70px;align-items:stretch}.bulk-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.bulk-actions button{width:100%}
 .select-col{width:36px!important}.folder-browser-list{max-height:48dvh}
 .public-footer{font-size:10px!important;gap:10px 16px!important}
}

/* Phase 3.30 — always-visible upload progress + shared folder hierarchy */
.overall-upload-progress{
 position:fixed;z-index:120;left:calc(var(--sidebar-w,0px) + 22px);right:22px;top:82px;
 max-width:760px;margin:0 auto;padding:14px 16px;background:color-mix(in srgb,var(--surface) 96%,transparent);
 border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 42px rgba(5,28,60,.18);
 backdrop-filter:blur(16px);transform:translateY(-160%);opacity:0;pointer-events:none;transition:.2s ease;
}
.overall-upload-progress.visible{transform:translateY(0);opacity:1;pointer-events:auto}
.overall-upload-progress.has-errors{border-color:#d9293a}
.overall-upload-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.overall-upload-head>div{display:flex;flex-direction:column;min-width:0}
.overall-title{font-size:14px;color:var(--text)}.overall-detail{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.overall-percent{font-size:20px;color:var(--accent)}
.overall-track{height:9px;background:var(--border);border-radius:99px;overflow:hidden;margin:10px 0 7px}
.overall-track i{display:block;width:0;height:100%;background:var(--accent);border-radius:inherit;transition:width .15s linear}
.overall-stats{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}
.shared-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:16px 0 10px;font-size:13px}
.shared-breadcrumb a{color:#086cff!important;font-weight:700}.shared-breadcrumb span{color:#91a0b5}
.shared-back-folder{display:inline-flex;margin:4px 0 12px;color:#086cff!important;font-weight:700}
.shared-subfolder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 18px}
.shared-subfolder-card{
 display:grid;grid-template-columns:44px minmax(0,1fr) 22px;align-items:center;gap:10px;
 padding:13px 14px;border:1px solid #d8e3ef;border-radius:12px;background:#f8fbff;color:#07162f!important;
}
.shared-subfolder-card:hover{border-color:#086cff;background:#f1f7ff}
.shared-folder-icon{font-size:28px}.shared-subfolder-card div{display:flex;flex-direction:column;min-width:0}
.shared-subfolder-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-subfolder-card small{color:#6b7a91;margin-top:2px}
.shared-folder-arrow{font-size:22px;color:#086cff}
.shared-folder-card{align-self:start}
@media(max-width:760px){
 .overall-upload-progress{left:10px!important;right:10px!important;top:72px!important;max-width:none!important;padding:12px 13px}
 .overall-title{font-size:13px}.overall-percent{font-size:18px}
 .shared-subfolder-grid{grid-template-columns:1fr}
}

/* Phase 3.31 — centered floating upload status */
.overall-upload-progress{
  left:50%!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  width:min(680px,calc(100vw - 36px))!important;
  max-width:680px!important;
  margin:0!important;
  transform:translate(-50%,-50%) scale(.96)!important;
  opacity:0!important;
  pointer-events:none!important;
}
.overall-upload-progress.visible{
  transform:translate(-50%,-50%) scale(1)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
@media(max-width:760px){
  .overall-upload-progress{
    left:50%!important;
    right:auto!important;
    top:50%!important;
    width:calc(100vw - 24px)!important;
    max-width:520px!important;
    transform:translate(-50%,-50%) scale(.96)!important;
  }
  .overall-upload-progress.visible{
    transform:translate(-50%,-50%) scale(1)!important;
  }
}

/* Phase 3.32 — Trash bulk controls */
.trash-hero{align-items:center!important}
.trash-all-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.trash-all-actions button{min-width:140px}
.trash-all-actions .danger{min-width:190px}
#trashBulkStatus:empty{display:none}
.trash-empty{text-align:center!important;padding:50px 20px!important}
.trash-empty strong{display:block;font-size:18px;color:var(--text);margin-bottom:5px}
.trash-empty span{color:var(--muted)}
@media(max-width:760px){
 .trash-hero{align-items:stretch!important}
 .trash-all-actions{display:grid;grid-template-columns:1fr;width:100%}
 .trash-all-actions button,.trash-all-actions .danger{width:100%;min-width:0}
 .trash-table td.actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
 .trash-table td.actions button{width:100%!important}
}
