*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Malgun Gothic,sans-serif;background:#f4f5f7;color:#1f2328}button{cursor:pointer;border:1px solid #d0d7de;background:#fff;border-radius:6px;padding:6px 12px;font-size:14px}button:hover{background:#f0f1f3}input{border:1px solid #d0d7de;border-radius:6px;padding:8px 10px;font-size:14px;width:100%}.error{color:#cf222e}.success{color:#1a7f37}.banner{padding:8px 16px;margin:0}.login-page{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:360px;background:#fff;border:1px solid #d0d7de;border-radius:10px;padding:32px}.login-card h1{font-size:18px;text-align:center;margin-bottom:24px}.tabs{display:flex;margin-bottom:16px}.tabs button{flex:1;border-radius:0}.tabs button:first-child{border-radius:6px 0 0 6px}.tabs button:last-child{border-radius:0 6px 6px 0}.tabs button.active{background:#0969da;color:#fff;border-color:#0969da}.login-card form{display:flex;flex-direction:column;gap:10px}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#fff;border-bottom:1px solid #d0d7de}.top-bar h1{font-size:16px;margin:0}.top-bar-actions{display:flex;align-items:center;gap:10px}.role-badge{font-size:13px;color:#57606a}.content{display:grid;grid-template-columns:260px 320px 1fr;height:calc(100vh - 53px)}.sidebar{border-right:1px solid #d0d7de;background:#fff;overflow-y:auto;padding:12px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#57606a;margin-bottom:8px}.folder-tree,.folder-tree ul{list-style:none;margin:0;padding-left:14px}.folder-tree{padding-left:0}.folder-row{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:6px;cursor:pointer}.folder-row:hover{background:#f0f1f3}.folder-row.selected{background:#ddf4ff}.toggle{width:14px;text-align:center;color:#57606a}.file-panel{border-right:1px solid #d0d7de;background:#fff;overflow-y:auto;padding:12px}.file-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:10px}.file-list{list-style:none;margin:0;padding:0}.file-list li{display:flex;align-items:center;justify-content:space-between;border-radius:6px;padding:2px 4px}.file-list li:hover,.file-list li.selected{background:#f0f1f3}.file-row{display:flex;align-items:center;gap:8px;flex:1;padding:6px 4px;cursor:pointer;min-width:0}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:12px;color:#57606a;white-space:nowrap}.danger-link{border:none;background:none;color:#cf222e;font-size:12px}.danger-link:hover{text-decoration:underline;background:none}.preview-panel{overflow-y:auto;padding:16px}.empty-hint{color:#57606a;font-size:14px}.preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.preview-header h3{margin:0;font-size:15px;overflow-wrap:anywhere}.preview-body img{max-width:100%;border-radius:6px}.text-preview{white-space:pre-wrap;background:#f6f8fa;padding:12px;border-radius:6px}.docx-preview{background:#fff;border:1px solid #d0d7de;border-radius:6px;padding:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal{background:#fff;border-radius:10px;padding:24px;width:360px}.modal h2{margin-top:0;font-size:16px}.modal-subtitle{font-size:13px;color:#57606a;margin-top:-8px}.modal form{display:flex;flex-direction:column;gap:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.admin-content{padding:20px;max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.admin-section{background:#fff;border:1px solid #d0d7de;border-radius:10px;padding:16px 20px}.admin-section h2{font-size:15px;margin-top:0}.inline-form{display:flex;gap:8px}.storage-bar{height:10px;background:#eaeef2;border-radius:6px;overflow:hidden}.storage-bar-fill{height:100%;background:#0969da}.user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.user-list li{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid #eaeef2}.user-list li span:first-child{flex:1}
