*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:#f4f4f4;color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:#06c}code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:#eee;padding:1px 4px;border-radius:2px}.btn{padding:.5em 1em;background:#06c;color:white;border:none;border-radius:3px}.btn:disabled{background:#aaa;cursor:not-allowed}.btn-secondary{background:#888}.btn-danger{background:#c33}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:#fff;border:1px solid #ccc;padding:2em;width:320px;border-radius:4px}.login-card h1{margin:0 0 1em;font-size:1.2em}.login-card input{display:block;width:100%;margin-bottom:.75em;padding:.5em;border:1px solid #ccc;border-radius:3px}.login-card button{width:100%;padding:.6em;background:#06c;color:white;border:none;border-radius:3px}.error{color:#c00}.error,.ok{margin:.5em 0;font-size:.9em}.ok{color:#060}.admin,.app{display:flex;flex-direction:column;height:100vh}.tabs{border-bottom:1px solid #ccc;overflow-x:auto;overflow-y:hidden;flex-shrink:0;align-items:stretch}.tab,.tabs{display:flex;background:#e8e8e8}.tab{padding:.6em 1em;border-right:1px solid #ccc;color:#333;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:.4em;font-size:13px}.tab:hover{background:#ddd}.tab.active{background:#fff;font-weight:600;border-bottom:2px solid #06c;margin-bottom:-1px}.tab.add-tab,.tab.icon,.tab.plus{padding:.6em .8em}.tab.add-tab,.tab.plus{font-weight:700}.tab.dragging{opacity:.4}.tab.drag-over{box-shadow:inset -3px 0 0 #06c}.tab[draggable=true]{cursor:-webkit-grab;cursor:grab}.tab[draggable=true]:active{cursor:-webkit-grabbing;cursor:grabbing}.tab .delete-x{background:none;border:none;color:#999;font-size:14px;padding:0 4px;line-height:1}.tab .delete-x:hover{color:#c33}.tab input.rename-input,.tab input.tab-rename-input{border:1px solid #06c;padding:2px 4px;font-size:13px;width:100px;outline:none}.editor-area{flex:1 1;display:flex;flex-direction:column;background:#fff;min-height:0}.cm-host,.editor-wrap{flex:1 1;min-height:0;overflow:hidden;position:relative}.cm-host>div,.editor-wrap>div{position:absolute;inset:0;display:flex;flex-direction:column}.cm-host .cm-editor,.editor-wrap .cm-editor{flex:1 1;min-height:0;height:100%;font-size:13px}.cm-host .cm-scroller,.editor-wrap .cm-scroller{font-family:ui-monospace,SF Mono,Menlo,monospace;overflow:auto!important}.editor-toolbar{padding:.6em 1em;background:#f4f4f4;border-top:1px solid #ddd;display:flex;gap:.5em;align-items:center;flex-shrink:0}.editor-toolbar .status{margin-left:auto;color:#666;font-size:12px}.file-list,.file-panel{flex:1 1;overflow:auto;padding:1em 1.5em;background:#fff}.file-list h2,.file-panel h2{margin-top:0}.upload-area{margin-bottom:1.5em}.upload-btn{padding:.5em 1em;background:#06c;color:white;border:none;border-radius:3px}.file-table{margin-top:12px}.file-head{display:flex;align-items:center;gap:.5em;padding:0 .6em .35em;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#999;font-weight:600;border-bottom:1px solid #ddd}.file-head .fh-name{flex:1 1}.file-head .fh-size{width:84px;text-align:right}.file-head .fh-actions{width:58px}.file-row{display:flex;align-items:center;gap:.5em;padding:.45em .6em;border-bottom:1px solid #f0f0f0}.file-row:nth-child(2n){background:#f7f7f8}.file-row .fr-name{flex:1 1;min-width:0;color:#06c;text-decoration:none;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .file-size,.file-row .fr-name{font-family:ui-monospace,SF Mono,Menlo,monospace}.file-row .file-size{width:84px;flex:none;text-align:right;color:#999;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.file-row .file-actions{width:58px;flex:none;display:flex;justify-content:flex-end;gap:2px}.file-row .rename-btn{background:none;border:none;color:#999;font-size:14px;padding:0 .35em;cursor:pointer;line-height:1}.file-row .rename-btn:hover{color:#06c}.file-row .file-rename-input{flex:1 1;min-width:0;padding:2px 5px;border:1px solid #888;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.file-row .delete-x{background:none;border:none;color:#c33;font-size:18px;padding:0 .35em;font-weight:700;cursor:pointer;line-height:1}.file-row .fr-namewrap{flex:1 1;min-width:0;display:flex;align-items:center;gap:4px}.file-row .fr-namewrap .fr-name{flex:0 1 auto}.file-row .copy-name-btn{flex:none;background:none;border:none;cursor:pointer;color:#999;font-size:12px;line-height:1;padding:2px 4px;opacity:0;transition:opacity .12s}.file-row .copy-name-btn:focus,.file-row:hover .copy-name-btn{opacity:1}.file-row .copy-name-btn:hover{color:#06c}.bottom-bar{background:#e8e8e8;border-top:1px solid #ccc;padding:.4em 1em;display:flex;justify-content:space-between;font-size:12px;flex-shrink:0;align-items:center;z-index:50}.bottom-bar-fixed{position:fixed;bottom:0;left:0;right:0;z-index:50}.impersonation-banner-fixed{position:fixed;bottom:36px;left:0;right:0;z-index:51}.bottom-bar .settings-link,.bottom-bar a{color:#06c;text-decoration:none;margin-right:1em}.bottom-bar .settings-link:hover,.bottom-bar a:hover{text-decoration:underline}.bottom-bar .left{display:flex;align-items:center;gap:.5em}.bottom-bar .status{color:#666;margin-right:.5em}.bottom-bar .btn{padding:.3em .8em;font-size:12px}.dialog-backdrop,.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100}.dialog,.modal{background:#fff;padding:1.5em;border-radius:4px;width:360px;max-width:90vw}.dialog h2,.dialog h3,.modal h2,.modal h3{margin-top:0;font-size:1.1em}.dialog .actions,.modal .actions{display:flex;gap:.5em;justify-content:flex-end;margin-top:1.2em}.dialog button,.modal button{padding:.45em .9em;border:1px solid #ccc;background:#f4f4f4;border-radius:3px}.dialog .btn-danger,.dialog button.danger,.modal .btn-danger,.modal button.danger{background:#c33;color:white;border-color:#c33}.settings-page{max-width:640px;margin:2em auto;background:#fff;padding:2em 2em 70px;border:1px solid #ddd;border-radius:4px}.settings-page h1{margin-top:0}.settings-page h2{font-size:1.05em;margin-bottom:.5em}.settings-page .section,.settings-page section{margin-bottom:2em;padding-bottom:1.5em;border-bottom:1px solid #eee}.settings-page .section:last-child,.settings-page section:last-child{border-bottom:none}.settings-page .row{margin-bottom:.75em}.settings-page label{display:block;margin-bottom:.25em;font-weight:600;font-size:13px}.settings-page input[type=password],.settings-page input[type=text]{width:100%;padding:.5em;border:1px solid #ccc;border-radius:3px}.settings-page .back{display:inline-block;margin-bottom:1em;text-decoration:none;font-size:13px}