:root{
  --bg:#FFF8F0;--bg-card:#F7F3ED;--bg-card-alt:#EDE6DA;
  --primary:#3D2B1F;--primary-light:#5B4535;
  --text:#3D2B1F;--text-sec:#6B5744;--text-muted:#8B7B6B;
  --gold:#8B6914;--gold-light:#C9A84C;
  --border:#E8E0D8;--border-light:#F0E8DC;
  --success:#4CAF50;--warning:#FFC107;--error:#F44336;--info:#2196F3;
  --r-sm:6px;--r-md:8px;--r-lg:12px;
  --sh-sm:0 1px 3px rgba(61,43,31,.06);--sh-md:0 4px 12px rgba(61,43,31,.08);
  --font:system-ui,-apple-system,sans-serif;--mono:monospace;
  --ribbon-h:90px;--tab-h:32px;--status-h:24px;--sidebar-w:260px;
}
[data-theme=dark]{--bg:#1A120B;--bg-card:#2A1F14;--bg-card-alt:#3D2B1F;--primary:#E8D5C4;--primary-light:#C9B8A8;--text:#E8D5C4;--text-sec:#B8A090;--text-muted:#8B7B6B;--border:#4A3828;--border-light:#3D2B1F;}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font);color:var(--text);background:var(--bg);overflow:hidden;height:100vh;}
button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;}
input,select,textarea{font:inherit;color:var(--text);}
::selection{background:var(--gold-light);color:#fff;}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-track{background:transparent}

#app{display:flex;flex-direction:column;height:100vh;}
.title-bar{display:flex;align-items:center;height:36px;background:var(--primary);color:#fff;padding:0 12px;gap:12px;}
.title-bar .logo{font-weight:700;font-size:14px;}
.title-bar .doc-name{flex:1;background:transparent;border:1px solid transparent;color:#fff;padding:2px 8px;border-radius:4px;font-size:13px;}
.title-bar .doc-name:focus{border-color:rgba(255,255,255,.3);outline:none;}
.title-bar .user-avatar{width:28px;height:28px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;}
.app-tabs{display:flex;background:var(--bg-card);border-bottom:1px solid var(--border);}
.app-mode-tab{padding:6px 16px;font-size:13px;border-bottom:2px solid transparent;}
.app-mode-tab.active{border-bottom-color:var(--gold);color:var(--gold);font-weight:600;}
.app-mode-tab:hover{background:var(--bg-card-alt);}
.main-area{display:flex;flex:1;overflow:hidden;}
.editor-area{flex:1;overflow:auto;background:#e8e0d8;display:flex;justify-content:center;padding:20px;}
.sidebar{width:var(--sidebar-w);background:var(--bg-card);border-left:1px solid var(--border);overflow-y:auto;display:none;}
.sidebar.open{display:block;}
.status-bar{height:var(--status-h);background:var(--bg-card);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 12px;font-size:11px;color:var(--text-muted);gap:16px;}
.status-bar .zoom-controls{margin-left:auto;display:flex;align-items:center;gap:4px;}

.ribbon{background:var(--bg-card);border-bottom:1px solid var(--border);}
.ribbon-tabs{display:flex;gap:2px;padding:0 8px;border-bottom:1px solid var(--border);}
.ribbon-tab{padding:4px 14px;font-size:12px;border-radius:4px 4px 0 0;}
.ribbon-tab.active{background:var(--bg);border:1px solid var(--border);border-bottom-color:var(--bg);margin-bottom:-1px;}
.ribbon-tab:hover{background:var(--bg-card-alt);}
.ribbon-panels{}
.ribbon-panel{display:flex;padding:4px 8px;gap:4px;align-items:flex-start;min-height:60px;}
.ribbon-group{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 8px;border-right:1px solid var(--border);position:relative;}
.ribbon-group-label{position:absolute;bottom:-2px;left:0;right:0;text-align:center;font-size:9px;color:var(--text-muted);}
.tb-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:13px;}
.tb-btn:hover{background:var(--bg-card-alt);}
.tb-btn.active{background:var(--border);}
.tb-btn-lg{display:flex;flex-direction:column;align-items:center;padding:4px 8px;border-radius:var(--r-sm);font-size:11px;gap:2px;}
.tb-btn-lg:hover{background:var(--bg-card-alt);}
.tb-select{height:26px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 6px;font-size:12px;background:var(--bg);min-width:80px;}
.tb-select-sm{height:26px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 4px;font-size:12px;background:var(--bg);width:50px;}
.tb-color{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0;cursor:pointer;}

.editor-wrapper{position:relative;width:100%;}
.editor-page{width:210mm;min-height:297mm;background:#fff;box-shadow:var(--sh-md);margin:0 auto;padding:25mm 20mm;}
.editor-content{outline:none;min-height:200px;line-height:1.6;font-size:11pt;}
.editor-content:focus{outline:none;}
.editor-content h1{font-size:24pt;margin:16px 0 8px;}
.editor-content h2{font-size:18pt;margin:14px 0 6px;}
.editor-content h3{font-size:14pt;margin:12px 0 4px;}
.editor-content p{margin:4px 0;}
.editor-content ul,.editor-content ol{padding-left:24px;}
.editor-content blockquote{border-left:3px solid var(--gold);padding-left:12px;color:var(--text-sec);margin:8px 0;}
.editor-table{width:100%;border-collapse:collapse;margin:12px 0;}
.editor-table td,.editor-table th{border:1px solid var(--border);padding:6px 8px;min-width:60px;}
.editor-table th{background:var(--bg-card);font-weight:600;}
.page-break{border-top:2px dashed var(--border);margin:20px 0;page-break-before:always;}
.img-wrapper{display:inline-block;position:relative;max-width:100%;}
.comment-highlight{background:rgba(255,235,59,.3);border-bottom:2px solid #FFC107;cursor:pointer;}
.track-insert{background:rgba(76,175,80,.2);text-decoration:none;}
.track-delete{background:rgba(244,67,54,.1);text-decoration:line-through;color:var(--error);}

.find-panel{position:absolute;top:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:8px;z-index:100;box-shadow:var(--sh-md);display:flex;flex-direction:column;gap:4px;}
.find-row{display:flex;gap:4px;align-items:center;}
.find-input{border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 8px;font-size:12px;width:200px;}
.find-count{font-size:11px;color:var(--text-muted);min-width:40px;}
.find-btn{padding:4px 8px;border-radius:var(--r-sm);font-size:12px;background:var(--bg);border:1px solid var(--border);}
.find-btn:hover{background:var(--bg-card-alt);}
.find-options{display:flex;gap:8px;font-size:11px;}
.find-highlight{background:rgba(251,188,5,.3);}
.find-current{background:rgba(66,133,244,.3);outline:2px solid var(--info);}

.sheet-wrapper{display:flex;flex-direction:column;width:100%;height:100%;}
.formula-bar{display:flex;align-items:center;height:28px;border-bottom:1px solid var(--border);background:var(--bg-card);padding:0 4px;gap:4px;}
.cell-ref{width:60px;text-align:center;font-size:12px;font-weight:600;border-right:1px solid var(--border);padding-right:4px;}
.fx-label{font-size:12px;color:var(--text-muted);font-style:italic;}
.formula-input{flex:1;border:none;background:transparent;font-size:12px;outline:none;padding:0 4px;}
.sheet-grid{flex:1;overflow:auto;}
.sheet-table{border-collapse:collapse;}
.sheet-table th,.sheet-table td{border:1px solid var(--border-light);}
.col-header{background:var(--bg-card);font-size:11px;font-weight:500;padding:2px;text-align:center;position:sticky;top:0;z-index:2;user-select:none;cursor:default;}
.row-header{background:var(--bg-card);font-size:11px;font-weight:500;padding:2px 6px;text-align:center;position:sticky;left:0;z-index:1;min-width:36px;user-select:none;}
.sheet-cell{padding:1px 4px;font-size:12px;min-width:80px;height:24px;white-space:nowrap;overflow:hidden;cursor:cell;}
.sheet-cell.selected{outline:2px solid var(--info);outline-offset:-1px;background:rgba(66,133,244,.05);}
.sheet-cell.editing{outline:2px solid var(--gold);background:#fff;}
.sheet-tabs{display:flex;align-items:center;height:28px;border-top:1px solid var(--border);background:var(--bg-card);padding:0 4px;gap:2px;overflow-x:auto;}
.sheet-tab{padding:4px 12px;font-size:11px;border-radius:var(--r-sm) var(--r-sm) 0 0;border:1px solid transparent;}
.sheet-tab.active{background:var(--bg);border-color:var(--border);border-bottom-color:var(--bg);}
.sheet-tab:hover{background:var(--bg-card-alt);}
.sheet-tab-add{font-size:14px;padding:2px 8px;color:var(--text-muted);}
.chart-container{position:absolute;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-sm);cursor:move;}

.slide-wrapper{display:flex;height:100%;}
.slide-list-panel{width:160px;background:var(--bg-card);border-right:1px solid var(--border);overflow-y:auto;padding:8px;}
.slide-thumb{border:2px solid transparent;border-radius:var(--r-sm);padding:4px;margin-bottom:4px;cursor:pointer;display:flex;gap:4px;align-items:center;}
.slide-thumb.active{border-color:var(--gold);}
.slide-thumb:hover{background:var(--bg-card-alt);}
.thumb-num{font-size:10px;color:var(--text-muted);min-width:16px;}
.thumb-preview{width:100%;aspect-ratio:16/9;border:1px solid var(--border);border-radius:3px;}
.slide-add-btn{width:100%;padding:8px;font-size:12px;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--text-muted);margin-top:4px;}
.slide-add-btn:hover{background:var(--bg-card-alt);color:var(--text);}
.slide-canvas-area{flex:1;display:flex;justify-content:center;align-items:center;background:#e0d8d0;overflow:auto;padding:20px;}
.slide-canvas{position:relative;background:#fff;box-shadow:var(--sh-md);overflow:hidden;}
.slide-el{position:absolute;cursor:move;}
.slide-el.selected{outline:2px solid var(--info);}
.resize-handles{display:none;}
.slide-el.selected .resize-handles{display:block;}
.rh{position:absolute;width:8px;height:8px;background:var(--info);border-radius:50%;}
.rh.nw{top:-4px;left:-4px;cursor:nw-resize;}.rh.ne{top:-4px;right:-4px;cursor:ne-resize;}
.rh.sw{bottom:-4px;left:-4px;cursor:sw-resize;}.rh.se{bottom:-4px;right:-4px;cursor:se-resize;}
.slide-notes-panel{height:100px;border-top:1px solid var(--border);background:var(--bg-card);}
.notes-input{width:100%;height:100%;border:none;background:transparent;padding:8px;font-size:12px;resize:none;outline:none;}
.el-shape-rect{width:100%;height:100%;border-radius:var(--r-sm);}
.el-shape-circle{width:100%;height:100%;border-radius:50%;}
.el-shape-triangle{width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:80px solid;}

.presenter-overlay{position:fixed;inset:0;background:#000;z-index:9999;display:flex;}
.presenter-main{flex:1;display:flex;justify-content:center;align-items:center;}
.presenter-slide{width:960px;height:540px;position:relative;background:#fff;}
.presenter-sidebar{width:300px;background:#1a1a1a;color:#ccc;display:flex;flex-direction:column;}
.presenter-next{height:180px;margin:8px;border:1px solid #333;border-radius:4px;}
.presenter-notes{flex:1;padding:12px;font-size:14px;line-height:1.5;overflow-y:auto;}
.presenter-controls{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid #333;font-size:13px;}
.pres-btn{padding:4px 12px;background:#333;color:#fff;border-radius:4px;font-size:12px;}
.pres-btn:hover{background:#555;}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;justify-content:center;align-items:center;z-index:1000;}
.dialog{background:var(--bg);border-radius:var(--r-lg);box-shadow:var(--sh-md);min-width:400px;max-width:600px;}
.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);}
.dialog-header h3{font-size:14px;}
.dialog-body{padding:16px;}
.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);}
.btn-primary{padding:6px 16px;background:var(--gold);color:#fff;border-radius:var(--r-sm);font-size:13px;}
.btn-primary:hover{background:var(--primary);}
.btn-cancel{padding:6px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm);font-size:13px;}
.btn-sm{padding:3px 8px;font-size:11px;border-radius:var(--r-sm);border:1px solid var(--border);}
.btn-sm:hover{background:var(--bg-card-alt);}
.btn-danger{color:var(--error);}
.confirm-dialog{background:var(--bg);border-radius:var(--r-lg);padding:24px;box-shadow:var(--sh-md);max-width:400px;}
.confirm-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}
.context-menu{position:fixed;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);min-width:180px;z-index:500;padding:4px;}
.cm-item{padding:6px 12px;font-size:12px;border-radius:var(--r-sm);cursor:pointer;}
.cm-item:hover{background:var(--bg-card-alt);}
.cm-sep{height:1px;background:var(--border);margin:4px 0;}

#toast-container{position:fixed;bottom:40px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:4px;}
.toast{padding:8px 16px;border-radius:var(--r-md);font-size:13px;color:#fff;transform:translateX(100%);transition:transform .3s;}
.toast-show{transform:translateX(0);}
.toast-info{background:var(--info);}
.toast-success{background:var(--success);}
.toast-warning{background:var(--warning);color:#333;}
.toast-error{background:var(--error);}

.file-manager{padding:24px;max-width:1000px;margin:0 auto;}
.fm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.fm-header h2{font-size:20px;}
.fm-search{border:1px solid var(--border);border-radius:var(--r-md);padding:8px 12px;width:300px;font-size:13px;}
.fm-new-btns{display:flex;gap:8px;margin-bottom:20px;}
.fm-new-btn{display:flex;flex-direction:column;align-items:center;gap:8px;width:140px;height:100px;border:1px solid var(--border);border-radius:var(--r-md);justify-content:center;font-size:13px;}
.fm-new-btn:hover{background:var(--bg-card-alt);border-color:var(--gold);}
.fm-new-btn .icon{font-size:28px;}
.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.fm-card{border:1px solid var(--border);border-radius:var(--r-md);padding:12px;cursor:pointer;}
.fm-card:hover{background:var(--bg-card-alt);border-color:var(--gold);box-shadow:var(--sh-sm);}
.fm-card .fm-icon{font-size:32px;margin-bottom:8px;}
.fm-card .fm-name{font-size:13px;font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fm-card .fm-date{font-size:11px;color:var(--text-muted);}
.fm-card .fm-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;color:#fff;}
.fm-badge-doc{background:var(--info);}.fm-badge-sheet{background:var(--success);}.fm-badge-slide{background:#FF6D01;}

.sidebar-panel{padding:12px;}
.panel-header h3{font-size:14px;margin-bottom:8px;}
.comment-card{border:1px solid var(--border);border-radius:var(--r-md);padding:8px;margin-bottom:8px;}
.comment-card.resolved{opacity:.5;}
.comment-meta{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px;}
.comment-quote{font-style:italic;color:var(--text-sec);font-size:12px;margin-bottom:4px;background:var(--bg-card-alt);padding:2px 6px;border-radius:3px;}
.comment-text{font-size:12px;}
.comment-reply{margin-left:12px;border-left:2px solid var(--border);padding-left:8px;font-size:11px;margin-top:4px;}
.comment-actions{display:flex;gap:4px;margin-top:4px;}
.empty{text-align:center;color:var(--text-muted);padding:20px;font-size:13px;}

.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg);}
.login-container{text-align:center;padding:40px;}
.login-container h1{font-size:28px;color:var(--primary);margin-bottom:4px;}
.login-container .subtitle{color:var(--text-muted);margin-bottom:24px;}
.login-container form{display:flex;flex-direction:column;gap:12px;}
.login-container input{padding:10px 14px;border:1px solid var(--border);border-radius:var(--r-md);font-size:14px;}
.login-container button{padding:10px;background:var(--gold);color:#fff;border-radius:var(--r-md);font-size:14px;font-weight:600;}
.login-container a{color:var(--gold);font-size:13px;margin-top:8px;display:block;}

@media print{.ribbon,.status-bar,.sidebar,.title-bar,.app-tabs{display:none!important;}
.editor-area{background:#fff!important;padding:0!important;}
.editor-page{box-shadow:none!important;margin:0!important;width:100%!important;}
.page-break{page-break-before:always;border:none!important;}}

/* === NEW FEATURE STYLES === */
/* ID 42: AutoFill */
.autofill-handle{position:absolute;bottom:-3px;right:-3px;width:8px;height:8px;background:#0066cc;cursor:crosshair;z-index:10;}
.autofill-preview{background:rgba(0,102,204,0.08)!important;outline:1px dashed #0066cc;}
/* ID 53: Cell comments */
.has-comment{position:relative;}
.has-comment::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 7px 7px 0;border-color:transparent #e74c3c transparent transparent;pointer-events:none;}
/* ID 30: Filter */
.filter-btn{user-select:none;}
th.col-header[data-filtered="1"] .filter-btn{color:#0066cc!important;font-weight:bold;}
/* ID 32: Protect banner */
.protect-banner{padding:6px 12px;font-size:12px;border-bottom:1px solid #ffc107;z-index:10;}
/* ID 94: AutoSave status */
#autosave-status{font-size:11px;margin-left:8px;transition:color .3s;}
/* ID 44: Multi-select */
.multi-selected{outline:2px solid #ff6600!important;outline-offset:-2px;}
