:root{--ink:#151a1a;--muted:#687271;--line:#e5e9e7;--soft:#f6f8f7;--accent:#087d6c;--accent-dark:#06685b;--accent-soft:#eaf5f2;--danger:#d64848}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:#fff;color:var(--ink)}body,button,input{font-family:Noto Sans KR Variable,Noto Sans KR,sans-serif}button,input{font:inherit}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid rgba(8,125,108,.24);outline-offset:2px}.vaultShell{min-height:100vh;display:grid;grid-template:68px 1fr/258px minmax(0,1fr);background:#fff}.vaultShell.hasPreview{grid-template-columns:258px minmax(600px,1fr) 352px}.topbar{grid-column:1/-1;display:grid;grid-template-columns:258px minmax(320px,610px) 1fr;height:68px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.98);position:sticky;top:0;z-index:20}.brand,.topbar{align-items:center}.brand{display:flex;gap:10px;padding:0 30px;color:var(--ink);text-decoration:none;font-size:21px;letter-spacing:-.5px}.brand svg{color:var(--accent);font-size:30px}.globalSearch{height:44px;border:1px solid #d9dfdc;border-radius:8px;display:flex;align-items:center;gap:10px;padding:0 12px;color:#75807d}.globalSearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.globalSearch input{border:0;outline:0;min-width:0;flex:1 1;background:transparent;color:var(--ink)}.globalSearch kbd{border:0;border-radius:5px;background:var(--soft);color:#4f5957;padding:3px 7px;font-size:12px}.profileArea{margin-left:auto;padding-right:26px;gap:15px;position:relative}.profileArea,.profileButton{display:flex;align-items:center}.profileButton{border:0;background:transparent;padding:4px;gap:9px;cursor:pointer;font-weight:600}.profileButton img{border-radius:50%;object-fit:cover}.profileButton svg{font-size:15px}.profileButton .profileAvatar{color:#71807b}.profileMenu{position:absolute;top:48px;right:24px;width:150px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px rgba(18,32,29,.12);z-index:30}.profileMenu a,.profileMenu button{width:100%;border:0;background:transparent;padding:9px 10px;display:flex;gap:8px;align-items:center;border-radius:6px;cursor:pointer;color:inherit;text-decoration:none;font-size:13px}.profileMenu a:hover,.profileMenu button:hover{background:var(--soft)}.notificationWrap,.notificationWrap .iconButton{position:relative}.notificationBadge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border:2px solid #fff;border-radius:99px;display:grid;place-items:center;color:#fff;background:var(--danger);font-size:9px;font-weight:800}.notificationPanel{position:absolute;top:46px;right:0;z-index:30;width:310px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 12px 34px rgba(18,32,29,.14)}.notificationPanel>header{padding:8px 9px 10px;display:flex;justify-content:space-between;font-size:13px}.notificationPanel>header span{color:var(--muted)}.notificationPanel>p{margin:0;padding:20px 10px;color:var(--muted);text-align:center;font-size:12px}.notificationItem{margin-bottom:6px;padding:11px;border-radius:7px;display:grid;gap:4px;background:var(--soft)}.notificationItem:last-child{margin-bottom:0}.notificationItem strong{font-size:12px}.notificationItem span{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.notificationItem.warning{background:#fff6df}.notificationItem.error{background:#faecec}.notificationItem button{width:fit-content;margin-top:3px;padding:0;border:0;color:var(--danger);background:transparent;cursor:pointer;font-size:11px;font-weight:700}.sidebar{grid-column:1;padding:26px 14px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:calc(100vh - 68px)}.folderNav,.sidebar nav{display:grid;gap:4px}.folderNav button,.sidebar nav a,.sidebar nav button{border:0;background:transparent;min-height:46px;border-radius:8px;padding:0 14px;display:flex;align-items:center;gap:13px;cursor:pointer;text-align:left;color:#37413f;text-decoration:none}.folderNav button svg,.sidebar nav a svg,.sidebar nav button svg{font-size:22px;color:#5c6865}.folderNav button:hover,.sidebar nav a:hover,.sidebar nav button:hover{background:var(--soft)}.folderNav button.active,.sidebar nav button.active{background:var(--accent-soft);color:var(--accent-dark);font-weight:600}.folderNav button.active svg,.sidebar nav button.active svg{color:var(--accent)}.sidebarDivider{height:1px;background:var(--line);margin:21px 14px 25px}.folderHeading{display:flex;align-items:center;justify-content:space-between;padding:0 15px 12px;color:#5f6a68;font-size:14px;font-weight:600}.folderHeading button{border:0;background:none;padding:4px;cursor:pointer;color:#5f6a68}.folderNav button{min-height:42px}.folderNav button svg{font-size:19px}.folderNav button.dropTarget{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.storage{margin-top:auto;padding:20px 14px 0;display:grid;gap:7px;color:#596461;font-size:13px}.storage small{color:#7a8582}.upgradeStorage{margin-top:4px;color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.upgradeStorage:hover{text-decoration:underline}.usageTrack{width:100%;height:7px;border-radius:10px;background:#e3e7e5;overflow:hidden}.usageTrack span{display:block;height:100%;background:var(--accent);border-radius:inherit}.content{grid-column:2;padding:34px 28px 50px;min-width:0;overflow:hidden}.contentHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:34px}.contentHeader h1{margin:0;font-size:29px;letter-spacing:-.8px;line-height:1.3}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;color:var(--muted);padding-top:6px;font-size:13px}.breadcrumb span{display:inline-flex;align-items:center;gap:4px}.breadcrumb button{border:0;background:transparent;color:inherit;padding:0;cursor:pointer;font:inherit}.breadcrumb button:hover,.breadcrumb button[aria-current=page]{color:var(--ink)}.headerActions{display:flex;align-items:center;gap:26px}.uploadProgress{margin:-18px 0 28px;padding:14px 16px;border:1px solid #cfe4de;border-radius:8px;background:var(--accent-soft);display:grid;gap:10px}.uploadProgress>div:first-child{display:flex;justify-content:space-between;gap:20px;min-width:0;font-size:12px}.uploadProgress strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uploadProgress span{color:#52605c;white-space:nowrap}.uploadProgressTrack{height:8px;overflow:hidden;border-radius:999px;background:#d7e8e3}.uploadProgressTrack span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .15s linear}.dangerButton,.primaryButton,.secondaryButton{min-height:44px;border-radius:7px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:650}.primaryButton{border:1px solid var(--accent);color:#fff;background:var(--accent)}.primaryButton:hover{background:var(--accent-dark)}.primaryButton:disabled{opacity:.65;cursor:wait}.secondaryButton{border:1px solid #d6dcda;color:#2b3533;background:#fff}.secondaryButton:hover{background:var(--soft)}.dangerButton{border:1px solid var(--danger);color:#fff;background:var(--danger)}.dangerButton:hover{filter:brightness(.92)}.dangerButton:disabled,.secondaryButton:disabled{opacity:.65;cursor:wait}.viewToggle{display:flex;border:1px solid #d7ddda;border-radius:7px;overflow:hidden}.viewToggle button{height:42px;border:0;border-left:1px solid #e5e9e7;background:#fff;padding:0 14px;display:flex;align-items:center;gap:7px;color:#6e7876;cursor:pointer}.viewToggle button:first-child{border-left:0}.viewToggle button.active{color:var(--accent);background:#f9fbfa;font-weight:650}.filesSection h2,.recentSection h2{margin:0;font-size:19px;letter-spacing:-.35px}.recentGrid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.recentCard{border:1px solid #dfe4e2;border-radius:7px;background:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left;transition:border-color .18s,transform .18s}.recentCard:hover{border-color:#aab7b3;transform:translateY(-1px)}.recentCard>img{width:100%;height:198px;display:block;object-fit:cover;background:var(--soft)}.recentCard:first-child>img{object-fit:cover;object-position:top}.recentPlaceholder{width:100%;height:198px;display:grid;place-items:center;background:var(--soft)}.recentGrid>.stateMessage{grid-column:1/-1}.recentMeta{min-height:62px;padding:10px 12px;display:grid;grid-template-columns:25px minmax(0,1fr) 22px;align-items:center;gap:8px}.recentMeta>span{min-width:0;display:grid;gap:3px}.recentMeta strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600}.recentMeta small{color:#75807d;font-size:11px}.recentMeta>svg:last-child{color:#7c8784}.filesSection{margin-top:42px}.sectionTitle{margin-bottom:16px}.bulkSelectionBar,.sectionTitle{display:flex;align-items:center;justify-content:space-between}.bulkSelectionBar{min-height:48px;margin-bottom:10px;padding:8px 10px 8px 14px;border:1px solid #c8ded8;border-radius:7px;gap:12px;color:#24564e;background:var(--accent-soft)}.bulkSelectionBar>div{display:flex;gap:8px}.bulkSelectionBar a,.bulkSelectionBar button{min-height:32px;border:1px solid #b8d4cd;border-radius:6px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;color:#24564e;background:#fff;cursor:pointer;font-weight:650;text-decoration:none}.bulkSelectionBar button:disabled{cursor:not-allowed;opacity:.55}.iconButton{border:0;background:transparent;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;cursor:pointer;font-size:21px}.iconButton:hover{background:var(--soft)}.iconButton.active{color:var(--accent);background:var(--accent-soft)}.filterWrap{position:relative}.filterPopover{position:absolute;top:44px;right:0;z-index:30;width:260px;padding:16px;display:grid;gap:13px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 12px 34px rgba(18,32,29,.14)}.filterPopover>strong{font-size:14px}.filterPopover label{display:grid;gap:6px;color:#596461;font-size:12px}.filterPopover input{width:100%;height:38px;border:1px solid #d6dcda;border-radius:6px;padding:0 10px;outline:0}.filterPopover input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.filterPopover>div{display:flex;justify-content:flex-end;gap:8px}.filterPopover button{min-height:34px;border-radius:6px;padding:0 12px;cursor:pointer;font-size:12px;font-weight:650}.filterClear{border:1px solid #d6dcda;background:#fff}.filterApply{border:1px solid var(--accent);color:#fff;background:var(--accent)}.fileTable{width:100%;min-width:650px}.fileRow,.tableHeader{display:grid;grid-template-columns:34px minmax(220px,1.5fr) minmax(145px,.75fr) minmax(74px,.35fr) 72px 112px;align-items:center;column-gap:10px}.tableHeader{min-height:43px;color:#737d7a;border-bottom:1px solid var(--line)}.fileRow,.tableHeader{font-size:12px;padding:0 10px}.fileRow{width:100%;min-height:51px;border:0;border-bottom:1px solid #edf0ef;background:#fff;color:#5c6764;text-align:left;cursor:pointer;border-radius:6px}.fileRow:hover{background:#fafcfb}.fileRow.selected{background:#f0f8f6;box-shadow:inset 0 0 0 1px #c8ded8}.fileRow[draggable=true]{cursor:grab}.fileRow.dragging{opacity:.45;cursor:grabbing}.fileRow.dropTarget{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.nameCell{min-width:0;display:flex;align-items:center;gap:11px;color:#2b3533}.nameCell strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:550}.folderGlyph{color:#f0b81a}.rowCheck{width:17px;height:17px;margin:0;accent-color:var(--accent);cursor:pointer}.rowCheck:disabled{cursor:default}.rowActions{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:5px;color:#687371}.miniAction{border:0;background:transparent;display:inline-flex;padding:5px;border-radius:5px;cursor:pointer}.miniAction:hover{background:#e3efec}.dangerIcon:hover{color:var(--danger);background:#fff0f0}.actionMenu{position:absolute;top:calc(100% + 5px);right:0;z-index:25;width:154px;padding:6px;display:grid;gap:2px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 10px 28px rgba(18,32,29,.15)}.actionMenu button{width:100%;min-height:36px;border:0;border-radius:6px;padding:0 9px;display:flex;align-items:center;gap:8px;background:transparent;cursor:pointer;color:#36413e;font-size:12px;text-align:left}.actionMenu button:hover{background:var(--soft)}.actionMenu button.dangerAction{color:var(--danger)}.actionMenu button.dangerAction:hover{background:#fff0f0}.starred{color:var(--accent)!important}.typePdf{color:#e33f3f}.typeImage{color:#3d9a39}.typeCode{color:#7257d9}.typeText{color:#4f89d8}.fileTable.grid .tableHeader{display:none}.fileTable.grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:12px;min-width:0}.fileTable.grid .fileRow{min-height:116px;grid-template:auto auto/28px minmax(0,1fr) auto;border:1px solid var(--line);padding:16px}.fileTable.grid .fileRow>span:nth-child(3),.fileTable.grid .fileRow>span:nth-child(4),.fileTable.grid .fileRow>span:nth-child(5){display:none}.fileTable.grid .rowActions{grid-column:3;grid-row:1}.stateMessage{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#7b8582;text-align:center}.stateMessage>svg{font-size:32px}.stateMessage strong{color:#37413f}.stateMessage button{border:0;background:transparent;color:var(--accent);font-weight:650;cursor:pointer}.errorState{color:var(--danger)}.previewPanel{grid-column:3;border-left:1px solid var(--line);padding:25px 26px 26px;min-width:0;display:flex;flex-direction:column;min-height:calc(100vh - 68px);position:sticky;top:68px;height:calc(100vh - 68px);overflow:auto}.previewPanel>header{min-height:30px;display:grid;grid-template-columns:24px minmax(0,1fr) 38px 38px;gap:9px;align-items:center;margin-bottom:24px}.previewPanel>header strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}.previewPanel>header .iconButton{justify-self:end}.previewPanel.expanded{position:fixed;inset:24px;z-index:100;width:auto;height:auto;min-height:0;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 0 0 100vmax rgba(18,32,29,.5),0 20px 60px rgba(18,32,29,.25)}.previewPanel.expanded .previewFrame,.previewPanel.expanded .previewFrame iframe,.previewPanel.expanded .previewFrame img{min-height:90vh}.previewPanel.expanded .videoPlayer video{max-height:75vh}.previewPanel.expanded .previewFrame pre{min-height:90vh;max-height:none}.previewFrame{min-height:340px;border:1px solid #dfe4e2;border-radius:7px;background:#fbfcfb;overflow:hidden;display:flex;align-items:center;justify-content:center}.previewFrame iframe,.previewFrame img{width:100%;height:100%;min-height:340px;border:0;object-fit:contain;background:#fff}.pdfDocument{width:100%;min-height:340px;align-self:stretch;display:flex;flex-direction:column;background:#fff}.pdfDocument>a{min-height:44px;padding:10px 14px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--green);font-size:13px;font-weight:700;border-bottom:1px solid var(--line);background:#f5faf8}.pdfDocument>a:hover{background:#eaf5f1}.pdfDocument>iframe{flex:1 1}.previewFrame audio{width:calc(100% - 32px)}.videoPlayer{position:relative;width:100%;align-self:stretch;display:flex;align-items:center;background:#000;overflow:hidden}.videoPlayer video{display:block;width:100%;max-height:520px;background:#000;cursor:pointer}.videoPlayer video::cue{color:#fff}.videoPlayer.subtitleSizeSmall video::cue{font-size:.85rem}.videoPlayer.subtitleSizeMedium video::cue{font-size:1.05rem}.videoPlayer.subtitleSizeLarge video::cue{font-size:1.3rem}.videoPlayer.subtitleSizeExtraLarge video::cue{font-size:1.6rem}.videoPlayer.subtitleBgNone video::cue{background:transparent;text-shadow:0 1px 3px #000,0 0 5px #000}.videoPlayer.subtitleBgSoft video::cue{background:rgba(0,0,0,.4)}.videoPlayer.subtitleBgDark video::cue{background:rgba(0,0,0,.78)}.subtitleSettings{position:absolute;right:12px;bottom:56px;z-index:2;padding:10px;border:1px solid rgba(255,255,255,.2);border-radius:7px;display:flex;gap:8px;color:#fff;background:rgba(13,18,17,.94);box-shadow:0 8px 24px rgba(0,0,0,.3)}.subtitleSettings label{display:grid;gap:4px;font-size:10px}.subtitleSettings select{min-width:86px;height:30px;border:1px solid #4c5754;border-radius:5px;padding:0 7px;color:#fff;background:#202826}.videoControls{position:absolute;right:0;bottom:0;left:0;padding:24px 12px 10px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.86))}.videoSeek{display:block;width:100%;height:4px;margin:0 0 9px;accent-color:var(--accent);cursor:pointer}.videoControlRow{display:flex;align-items:center;gap:8px;min-width:0}.videoControlRow button{width:32px;height:32px;padding:0;border:0;border-radius:6px;color:#fff;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.videoControlRow button.active,.videoControlRow button:hover{background:rgba(255,255,255,.18)}.videoControlRow button svg{width:20px;height:20px}.videoControlRow .subtitleRemove{width:auto;padding:0 7px;font-size:11px;white-space:nowrap}.videoTime{min-width:92px;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.videoVolume{width:68px;accent-color:#fff}.videoControlRow select{height:30px;border:1px solid rgba(255,255,255,.3);border-radius:5px;padding:0 5px;color:#fff;background:rgba(0,0,0,.6)}.previewFrame pre{width:100%;min-height:340px;max-height:420px;margin:0;padding:20px;overflow:auto;background:#111919;color:#d8e7e3;font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.previewPanel dl{margin:26px 0 0;display:grid;gap:14px;font-size:12px}.previewPanel dl div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px}.previewPanel dt{color:#74807d}.previewPanel dd{margin:0;color:#4b5653;overflow-wrap:anywhere}.tags{margin-top:23px;display:grid;gap:10px;color:#6d7875;font-size:12px}.tags>div{display:flex;flex-wrap:wrap;gap:7px}.tags>div button{min-height:29px;padding:4px 8px 4px 10px;border:1px solid #dce2df;border-radius:5px;display:inline-flex;align-items:center;gap:5px;background:#f8faf9;color:#57615f;cursor:pointer}.tags>div button:hover{border-color:#e0b6b6;color:var(--danger);background:#fff5f5}.tags>div button svg{font-size:13px}.tagForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.tagForm input{min-width:0;height:36px;border:1px solid #d6dcda;border-radius:6px;padding:0 9px;outline:0}.tagForm input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.tagForm button{min-height:36px;border:1px solid var(--accent);border-radius:6px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;color:#fff;background:var(--accent);cursor:pointer}.tagForm button:disabled,.tags>div button:disabled{opacity:.55;cursor:wait}.previewActions{margin-top:auto;padding-top:25px;display:grid;gap:11px}.previewActions a,.previewActions button{width:100%;text-decoration:none}.toast{position:fixed;right:26px;bottom:24px;z-index:50;display:flex;align-items:center;gap:9px;background:#17342f;color:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 12px 32px rgba(8,30,25,.22);font-size:13px}.modalBackdrop{position:fixed;inset:0;z-index:120;padding:20px;display:grid;place-items:center;background:rgba(18,32,29,.48)}.actionDialog{width:min(100%,430px);padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 22px 70px rgba(18,32,29,.28)}.actionDialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.actionDialog h2{margin:0;font-size:20px;letter-spacing:-.5px}.actionDialog label{margin-top:22px;display:grid;gap:8px;color:#596461;font-size:12px;font-weight:650}.actionDialog input{width:100%;height:44px;border:1px solid #d6dcda;border-radius:7px;padding:0 12px;outline:0;font:inherit}.actionDialog input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.actionDialog p{margin:22px 0 0;color:#65706d;font-size:14px;line-height:1.65;word-break:keep-all}.actionDialog p strong{color:#2b3533;overflow-wrap:anywhere}.actionDialog footer{margin-top:26px;display:flex;justify-content:flex-end;gap:9px}.loginPage{min-height:100vh;display:grid;grid-template-columns:minmax(420px,.9fr) minmax(500px,1.1fr)}.loginPanel{background:#0d4f46;color:#fff;padding:48px 58px;display:flex;flex-direction:column;justify-content:space-between}.loginBrand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:750}.loginBrand svg{font-size:30px}.eyebrow{font-size:11px;letter-spacing:2px;opacity:.7}.loginPanel h1{margin:18px 0;font-size:clamp(42px,4vw,62px);line-height:1.15;letter-spacing:-2.8px}.loginLead{color:rgba(255,255,255,.72);font-size:16px}.loginFoot{color:rgba(255,255,255,.5);font-size:12px}.loginFormWrap{display:flex;align-items:center;justify-content:center;padding:50px}.loginForm{width:min(100%,400px);display:grid;gap:20px}.loginForm header{margin-bottom:12px}.loginForm h2{margin:0 0 9px;font-size:27px;letter-spacing:-.8px}.loginForm header p{margin:0;color:var(--muted);font-size:14px}.loginForm label{display:grid;gap:8px;font-size:13px;font-weight:600}.loginForm input{height:48px;border:1px solid #d6dcda;border-radius:7px;padding:0 14px;outline:0}.loginForm input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.loginSubmit{width:100%;justify-content:space-between;margin-top:4px}.googleLoginButton{min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #d6dcda;border-radius:7px;color:#26332f;text-decoration:none;font-size:14px;font-weight:650}.googleLoginButton:hover{border-color:#aebbb7;background:#f8faf9}.googleLoginButton span{width:22px;height:22px;display:grid;place-items:center;color:#4285f4;font-size:17px;font-weight:800}.oauthConsent{margin:-12px 0 0;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}.oauthConsent a{color:#45534f;text-underline-offset:2px}.loginDivider{display:flex;align-items:center;gap:12px;color:#8a9591;font-size:11px}.loginDivider:after,.loginDivider:before{content:"";height:1px;flex:1 1;background:#e3e8e6}.loginDivider span{white-space:nowrap}.formError{margin:-5px 0;color:var(--danger);font-size:12px}.formSwitch{margin:2px 0 0;text-align:center;color:var(--muted);font-size:13px}.formSwitch button{border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer;margin-left:6px}.legalConsent{border:0;padding:0;margin:-2px 0 0;display:grid;gap:11px}.legalConsent label{display:flex;grid-template:none;align-items:flex-start;gap:9px;color:#596461;font-weight:450;line-height:1.5;cursor:pointer}.legalConsent input{width:17px;height:17px;flex:0 0 auto;margin:2px 0 0;accent-color:var(--accent);box-shadow:none}.legalConsent a{color:#33423f;font-weight:650;text-underline-offset:3px}.legalConsent em{color:var(--accent);font-style:normal;font-size:11px}.landingPage{min-height:100vh;background:#fff}.landingNav{height:76px;max-width:1320px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}.landingFooter .brand,.landingNav .brand{padding:0}.landingNav nav{display:flex;align-items:center;gap:30px}.landingNav nav a{color:#4d5855;text-decoration:none;font-size:13px;font-weight:550}.landingNav nav a:hover{color:var(--accent)}.landingNav .navCta{min-height:38px;padding:0 15px;display:inline-flex;align-items:center;color:#fff;background:var(--accent);border-radius:6px}.landingNav .navCta:hover{color:#fff;background:var(--accent-dark)}.landingHero{max-width:1320px;margin:0 auto;padding:88px 32px 102px;display:grid;grid-template-columns:minmax(410px,.82fr) minmax(600px,1.18fr);align-items:center;gap:72px;overflow:hidden}.heroCopy .eyebrow,.landingFeatures .eyebrow,.legalPage .eyebrow,.securitySection .eyebrow{color:var(--accent);opacity:1;font-weight:700}.heroCopy h1{margin:18px 0 24px;font-size:clamp(56px,5.4vw,78px);line-height:1.08;letter-spacing:-4.4px;font-weight:720}.heroCopy>p:not(.eyebrow){max-width:510px;margin:0;color:#65706d;font-size:17px;line-height:1.8;word-break:keep-all}.heroActions{margin-top:34px;display:flex;align-items:center;gap:23px}.heroActions .primaryButton,.landingCta .primaryButton{text-decoration:none}.textLink{color:#45504d;font-size:13px;font-weight:650;text-underline-offset:4px}.heroCopy>small{display:block;margin-top:19px;color:#89928f;font-size:11px}.productShot{padding:10px;border:1px solid #dfe5e2;border-radius:13px;background:#f7f9f8;box-shadow:0 24px 70px rgba(22,52,46,.13);transform:translateX(6%)}.productShot img{display:block;width:100%;height:auto;border-radius:7px}.landingFeatures{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafcfb;padding:92px max(32px,calc((100vw - 1256px)/2))}.landingFeatures>header{max-width:600px}.landingCta h2,.landingFeatures h2,.securitySection h2{margin:12px 0 0;font-size:38px;letter-spacing:-1.8px}.landingFeatures>div{margin-top:58px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}.landingFeatures article{padding:34px 38px 10px 0;border-right:1px solid var(--line)}.landingFeatures article+article{padding-left:38px}.landingFeatures article:last-child{border-right:0}.landingFeatures article svg{color:var(--accent);font-size:32px}.landingFeatures h3{margin:22px 0 10px;font-size:18px}.landingFeatures article p{margin:0;color:#707a77;font-size:14px;line-height:1.75;word-break:keep-all}.securitySection{max-width:1120px;margin:0 auto;padding:110px 32px;display:grid;grid-template-columns:110px minmax(0,620px);justify-content:center;gap:50px;align-items:start}.securitySection>svg{width:96px;height:96px;color:var(--accent)}.securitySection h2{margin-top:10px}.securitySection div>p:last-child{margin:18px 0 0;color:#697370;line-height:1.8}.landingCta{padding:65px 32px;color:#fff;background:#103f38;display:flex;align-items:center;justify-content:center;gap:60px}.landingCta h2{margin:0}.landingCta .primaryButton{border-color:#fff;color:#173e38;background:#fff}.landingCta .primaryButton:hover{background:#eff7f4}.landingFooter{min-height:112px;max-width:1320px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#7b8582;font-size:12px}.landingFooter nav{justify-self:end;display:flex;gap:22px}.landingFooter nav a{color:#5c6764;text-decoration:none}.legalPage{min-height:100vh;background:#fbfcfb}.legalPage>header{height:72px;padding:0 max(28px,calc((100vw - 920px)/2));border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between}.legalPage>header .brand{padding:0}.legalPage>header>a:last-child{display:inline-flex;align-items:center;gap:6px;color:#596461;font-size:12px;text-decoration:none}.legalPage article{width:min(100% - 48px,800px);margin:0 auto;padding:82px 0 110px}.legalPage h1{margin:14px 0 8px;font-size:44px;letter-spacing:-2px}.legalDate{margin:0 0 52px;color:#86908d;font-size:13px}.legalPage article section{padding:27px 0;border-top:1px solid var(--line)}.legalPage article section:last-child{border-bottom:1px solid var(--line)}.legalPage h2{margin:0 0 12px;font-size:17px}.legalPage article section p{margin:0;color:#626c69;font-size:14px;line-height:1.85;word-break:keep-all}.profilePage{min-height:100vh;background:#f7f9f8}.profileHeader{height:68px;padding:0 max(28px,calc((100vw - 920px)/2));border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between}.profileHeader .brand{padding:0}.profileBack{display:inline-flex;align-items:center;gap:7px;color:#596461;text-decoration:none;font-size:13px}.profileContent{width:min(100% - 40px,760px);margin:0 auto;padding:64px 0 90px}.profileContent>header{margin-bottom:24px}.profileContent h1{margin:0 0 8px;font-size:34px;letter-spacing:-1.2px}.profileContent>header p{margin:0;color:var(--muted);font-size:14px}.profileCard{padding:30px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;gap:28px}.profileIdentity{display:flex;align-items:center;gap:18px}.profilePhoto{width:88px;height:88px;flex:0 0 auto;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--soft);color:#78837f}.profilePhoto img{width:100%;height:100%;object-fit:cover}.profileIdentity h2{margin:0 0 5px;font-size:21px}.profileIdentity p{margin:0;color:var(--muted);font-size:13px}.profilePhotoActions{margin-top:13px;display:flex;gap:8px}.profilePhotoActions button,.profilePhotoActions label{min-height:34px;border:1px solid #d6dcda;border-radius:6px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;background:#fff;cursor:pointer;font-size:12px}.profilePhotoActions button{color:var(--danger)}.profileForm{padding-top:26px;border-top:1px solid var(--line);display:grid;gap:15px}.profileForm label{display:grid;gap:7px;color:#596461;font-size:12px;font-weight:600}.profileForm input{height:44px;border:1px solid #d6dcda;border-radius:7px;padding:0 12px;outline:0}.profileForm input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,125,108,.08)}.profileForm input:disabled{color:#7a8582;background:var(--soft)}.profileForm .primaryButton{justify-self:start}.profileNotice{margin:0;color:var(--muted);font-size:12px}.passwordCard{margin-top:20px}.passwordCard>header h2{margin:0 0 6px;font-size:19px}.passwordCard>header p{margin:0;color:var(--muted);font-size:13px}.passwordForm{padding-top:0;border-top:0}.adminPage{min-height:100vh;background:#f5f8f7}.adminContent{width:min(100% - 48px,1180px);margin:0 auto;padding:55px 0 90px}.adminContent>header h1{margin:7px 0 8px;font-size:38px;letter-spacing:-1.5px}.adminContent>header>p:last-child{margin:0;color:var(--muted)}.adminStats{margin-top:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.adminStats article{min-height:132px;padding:21px;border:1px solid var(--line);border-radius:10px;display:grid;grid-template:auto auto/1fr auto;gap:9px;background:#fff}.adminStats article>svg{color:var(--accent);font-size:25px}.adminStats article span{grid-column:1;color:var(--muted);font-size:12px}.adminStats article strong{grid-column:1/-1;font-size:25px}.adminStats article small{grid-column:2;grid-row:1;color:var(--accent);font-size:10px;text-transform:uppercase}.adminUsers{margin-top:22px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.adminUsersHeader{min-height:86px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.adminUsersHeader h2{margin:0 0 4px;font-size:19px}.adminUsersHeader span{color:var(--muted);font-size:11px}.adminUsersHeader form{width:min(100%,340px);height:40px;border:1px solid #d6dcda;border-radius:7px;display:flex;align-items:center;overflow:hidden}.adminUsersHeader form svg{margin-left:11px;color:var(--muted)}.adminUsersHeader input{min-width:0;flex:1 1;height:100%;border:0;padding:0 9px;outline:0}.adminUsersHeader form button{align-self:stretch;border:0;padding:0 15px;color:#fff;background:var(--accent);cursor:pointer}.adminNotice{margin:0;padding:11px 22px;border-bottom:1px solid #d7e9e4;color:#315d54;background:#eff8f5;font-size:12px}.adminTable{min-width:900px}.adminTableHead,.adminUserRow{display:grid;grid-template-columns:minmax(190px,1.2fr) 86px minmax(230px,1fr) 90px minmax(190px,1fr);align-items:center;gap:14px;padding:0 22px}.adminTableHead{min-height:42px;border-bottom:1px solid var(--line);color:var(--muted);background:#fafcfb;font-size:11px}.adminUserRow{min-height:82px;border-bottom:1px solid #edf0ef}.adminUserRow:last-child{border-bottom:0}.adminIdentity{min-width:0;display:grid;gap:4px}.adminIdentity small,.adminIdentity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adminIdentity strong{font-size:13px}.adminIdentity small{color:var(--muted);font-size:11px}.roleBadge,.statusBadge{width:fit-content;border-radius:99px;padding:5px 9px;font-size:10px;font-style:normal}.statusBadge.enabled{color:#176552;background:#e8f6f1}.statusBadge.disabled{color:#8a4343;background:#faecec}.roleBadge{color:#596461;background:#edf1ef}.roleBadge.admin{color:#5f4b13;background:#fff3c9}.quotaControl{display:grid;grid-template-columns:72px 22px 48px;align-items:center;gap:5px}.quotaControl input{width:72px;height:34px;border:1px solid #d6dcda;border-radius:6px;padding:0 7px}.quotaControl em,.quotaControl small{color:var(--muted)}.quotaControl em{grid-column:1/-1;font-size:9px;font-style:normal}.adminRowActions button,.quotaControl button{min-height:32px;border:1px solid #d6dcda;border-radius:6px;padding:0 8px;color:#42504c;background:#fff;cursor:pointer;font-size:10px}.adminRowActions button:hover,.quotaControl button:hover{border-color:var(--accent);color:var(--accent)}.adminRowActions button:disabled,.quotaControl button:disabled{opacity:.5;cursor:wait}.adminRowActions{display:flex;gap:6px}.adminRowActions .dangerButton{border-color:#e6bcbc;color:var(--danger);background:#fff7f7}.adminGlobalNotice{margin-top:18px;border:1px solid #d7e9e4;border-radius:8px}.adminFiles{overflow-x:auto}.adminBulkBar{min-width:760px;min-height:58px;padding:10px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#fafcfb}.adminBulkBar span{color:var(--muted);font-size:12px}.adminBulkBar>div{display:flex;gap:8px}.adminBulkBar .dangerButton{min-height:36px;padding:0 13px;font-size:12px}.adminBulkBar .dangerButton.permanent{background:#811f1f}.adminFileTable{min-width:760px}.adminFileHead,.adminFileRow{display:grid;grid-template-columns:28px minmax(220px,1.3fr) minmax(180px,1fr) 70px minmax(150px,.7fr) 90px;align-items:center;gap:12px;padding:0 22px}.adminFileHead{min-height:42px;border-bottom:1px solid var(--line);color:var(--muted);background:#fafcfb;font-size:11px}.adminFileRow{min-height:58px;border-bottom:1px solid #edf0ef;color:#53605d;font-size:11px}.adminFileRow strong{color:#293431;font-size:12px}.adminFileRow span,.adminFileRow strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adminFileHead input,.adminFileRow input{width:16px;height:16px;accent-color:var(--accent)}.visuallyHidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.learningShell{min-height:100vh;background:#fff}.learningHeader{min-height:68px;padding:0 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:26px}.learningHeader .brand{display:flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:600}.learningHeader .brand:hover{color:var(--ink)}.learningHeader h1{margin:0;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.4px}.learningHeader h1 svg{color:var(--accent)}.learningContent{max-width:860px;margin:0 auto;padding:34px 24px 60px}.learningError{margin:0 0 20px;padding:12px 14px;border:1px solid #f0c7c7;border-radius:8px;color:var(--danger);background:#fdf1f1;font-size:13px}.courseDescription{color:var(--muted);margin:-12px 0 24px}.courseCreateForm,.sectionCreateForm{display:flex;gap:10px;margin-bottom:28px}.courseCreateForm input,.sectionCreateForm input{flex:1 1;min-height:44px;border:1px solid #d6dcda;border-radius:7px;padding:0 14px}.courseCreateForm input:focus-visible,.sectionCreateForm input:focus-visible{border-color:var(--accent)}.courseGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.courseCard{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;transition:border-color .15s,transform .15s}.courseCard:hover{border-color:#aab7b3;transform:translateY(-1px)}.courseCard strong{font-size:15px}.courseCard p{margin:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.courseStatus{width:fit-content;border-radius:99px;padding:3px 10px;font-size:10px;font-weight:700;letter-spacing:.3px;color:#596461;background:#edf1ef}.courseStatus-active{color:#176552;background:#e8f6f1}.courseStatus-archived{color:#8a4343;background:#faecec}.sectionBlock{margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--line)}.sectionBlock:last-child{border-bottom:0}.sectionBlockHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.sectionBlockHeader h2{margin:0;font-size:16px}.sectionBlockActions{display:flex;gap:8px}.sectionBlockActions button{min-height:36px;padding:0 12px;font-size:12px}.lessonList{list-style:none;margin:0;padding:0;display:grid;gap:2px}.lessonList li a{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 10px;border-radius:7px;color:var(--ink);text-decoration:none}.lessonList li a:hover{background:var(--soft)}.lessonList li a svg{color:#5c6865}.lessonListEmpty{color:var(--muted);font-size:13px;margin:0}.writtenLessonForm{display:grid;gap:10px;margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.writtenLessonForm input,.writtenLessonForm textarea{border:1px solid #d6dcda;border-radius:7px;padding:10px 12px;font-family:inherit;background:#fff}.writtenLessonForm textarea{resize:vertical}.writtenLessonFormActions{display:flex;justify-content:flex-end;gap:8px}.lessonViewer{line-height:1.75;font-size:15px}.lessonViewer h1,.lessonViewer h2,.lessonViewer h3{letter-spacing:-.3px}.lessonViewer pre{padding:14px;border-radius:8px;background:var(--soft);overflow-x:auto}.lessonViewer code{background:var(--soft);border-radius:4px;padding:1px 5px}.lessonViewer pre code{padding:0;background:none}.lessonViewer img{max-width:100%}.lessonViewer blockquote{margin:0;padding:2px 16px;border-left:3px solid var(--line);color:var(--muted)}@media (max-width:920px){.adminStats{grid-template-columns:repeat(2,1fr)}.adminUsers{overflow-x:auto}}@media (max-width:620px){.adminContent{width:min(100% - 28px,1180px);padding-top:34px}.adminStats{grid-template-columns:1fr}.adminUsersHeader{align-items:stretch;flex-direction:column}.adminUsersHeader form{width:100%}}@media (max-width:1366px){.vaultShell.hasPreview{grid-template-columns:218px minmax(0,1fr);grid-template-rows:68px auto 1fr}.vaultShell.hasPreview .sidebar{grid-row:2/4}.vaultShell.hasPreview .content{grid-row:2}.previewPanel:not(.expanded){grid-column:2;grid-row:3;position:static;width:auto;height:auto;min-height:0;border-left:0;border-top:1px solid var(--line);overflow:visible}}@media (max-width:1180px){.topbar{grid-template-columns:218px minmax(280px,560px) 1fr}.brand{padding-left:22px}.sidebar{grid-column:1}.content{grid-column:2}.recentCard>img,.recentPlaceholder{height:160px}}@media (max-width:780px){.vaultShell,.vaultShell.hasPreview{grid-template:62px 1fr/70px minmax(0,1fr)}.vaultShell.hasPreview{grid-template-rows:62px auto 1fr}.topbar{height:62px;grid-template-columns:70px minmax(0,1fr) auto}.brand{padding:0;justify-content:center}.brand strong,.profileButton span,.profileButton>svg:not(.profileAvatar){display:none}.globalSearch{height:40px}.globalSearch kbd{display:none}.profileArea{padding-right:8px;gap:0}.profileArea>.iconButton{display:none}.sidebar{padding:18px 8px;min-height:calc(100vh - 62px)}.folderNav button,.sidebar nav a,.sidebar nav button{padding:0;justify-content:center}.folderHeading,.folderNav button span,.sidebar nav a span,.sidebar nav button span,.sidebarDivider,.storage{display:none}.content{padding:24px 18px;overflow:hidden}.contentHeader{align-items:center}.contentHeader>div:first-child{min-width:0}.contentHeader h1{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:24px}.headerActions{gap:8px}.viewToggle{display:none}.recentGrid{grid-template-columns:1fr}.recentCard:nth-child(n+2){display:none}.recentCard>img,.recentPlaceholder{height:210px}.fileTable{min-width:0}.fileTable.grid{grid-template-columns:1fr}.fileRow,.tableHeader{grid-template-columns:24px minmax(0,1fr) 42px;column-gap:8px}.fileRow>:nth-child(3),.fileRow>:nth-child(4),.fileRow>:nth-child(5),.tableHeader>:nth-child(3),.tableHeader>:nth-child(4),.tableHeader>:nth-child(5){display:none}.previewPanel{padding:18px}.previewPanel.expanded{inset:62px 0 0;z-index:25;width:auto;height:auto;min-height:0;border:0;border-radius:0;box-shadow:none}.previewPanel>header{grid-template-columns:24px minmax(0,1fr) 38px 38px;margin-bottom:16px}.previewPanel>header strong{min-width:0}.previewFrame,.previewFrame iframe,.previewFrame img,.previewPanel.expanded .previewFrame,.previewPanel.expanded .previewFrame iframe,.previewPanel.expanded .previewFrame img{min-height:min(340px,50vh)}.loginPage{grid-template-columns:1fr}.loginPanel{display:none}.loginFormWrap{padding:32px 22px}.landingNav{height:66px;padding:0 20px}.landingNav nav{gap:14px}.landingNav nav>a:not(:last-child){display:none}.landingHero{padding:70px 22px 72px;grid-template-columns:1fr;gap:50px}.heroCopy h1{font-size:49px;letter-spacing:-3px}.productShot{transform:none;width:125%}.landingFeatures{padding:70px 22px}.landingCta h2,.landingFeatures h2,.securitySection h2{font-size:30px}.landingFeatures>div{grid-template-columns:1fr}.landingFeatures article,.landingFeatures article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--line)}.securitySection{padding:76px 22px;grid-template-columns:1fr;gap:24px}.securitySection>svg{width:70px;height:70px}.landingCta{padding:55px 22px;flex-direction:column;gap:26px;text-align:center}.landingFooter{padding:28px 22px;grid-template-columns:1fr;gap:18px}.landingFooter nav{justify-self:start}.legalPage>header{padding:0 20px}.legalPage>header>a:last-child{font-size:0}.legalPage>header>a:last-child svg{font-size:18px}.legalPage article{width:min(100% - 40px,800px);padding:60px 0 80px}.legalPage h1{font-size:36px}}