:root{
  --c-purple-50:#EEEDFE; --c-purple-100:#CECBF6; --c-purple-200:#AFA9EC;
  --c-purple-400:#7F77DD; --c-purple-600:#534AB7; --c-purple-800:#26215C;
  --c-blue:#185FA5; --c-green:#3B6D11; --c-gray:#5F5E5A;
  --bg:#F7F7FB; --card:#FFFFFF;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:-apple-system,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  background:var(--bg);color:var(--c-purple-800);font-size:14px;line-height:1.6;
  padding-bottom:env(safe-area-inset-bottom)}
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;background:var(--c-purple-600);color:#fff;position:sticky;top:0;z-index:10}
.brand{font-size:17px;font-weight:600}
.brand span{font-size:12px;font-weight:400;opacity:.85;margin-left:6px}
.icon-btn{background:rgba(255,255,255,.18);border:none;color:#fff;border-radius:8px;
  padding:6px 12px;font-size:13px;cursor:pointer}
.icon-btn:active{background:rgba(255,255,255,.3)}

/* 模块内多模态输入面板 */
.input-panel{margin-top:10px;border-top:1px solid var(--c-purple-50);padding-top:10px}
.ta{width:100%;min-height:64px;border:1px solid var(--c-purple-200);border-radius:10px;
  padding:10px;font-size:14px;resize:vertical;font-family:inherit;color:var(--c-purple-800)}
.ta-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tool{background:var(--c-purple-50);border:1px solid var(--c-purple-100);color:var(--c-purple-600);
  border-radius:9px;padding:8px 12px;font-size:13px;cursor:pointer}
.tool:active{background:var(--c-purple-100)}
.tool.ai{background:#EAF3DE;color:var(--c-green);border-color:#D5E8C0}
.tool.add{background:var(--c-purple-600);color:#fff;border-color:var(--c-purple-600)}
.tool.add:active{background:var(--c-purple-800)}
.tool.recording{background:#FBE3E3;color:#C0392B;border-color:#E9B7B7}
.ta-hint{margin-top:7px;font-size:11.5px;line-height:1.5;color:var(--c-purple-400)}
.cust-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cust-row label{font-size:12.5px;color:var(--c-purple-600);white-space:nowrap}
.cust-input{flex:1;padding:7px 10px;border:1px solid var(--c-purple-200,#E4DCF5);border-radius:8px;
  font-size:13px;color:var(--c-purple-800);background:#fff}
.cust-input:focus{outline:none;border-color:var(--c-purple-400)}
.entry-cust{display:inline-block;margin:0 6px 4px 0;padding:1px 9px;border-radius:999px;
  font-size:11px;font-weight:600;color:var(--c-purple-700,#5B3FA0);background:var(--c-purple-50,#EFE9FB);
  border:1px solid var(--c-purple-200,#E4DCF5);vertical-align:middle}
.hidden{display:none !important}
.ai-preview{margin-top:10px;border:1px solid var(--c-green);border-radius:10px;background:#F7FBF1;overflow:hidden}
.ai-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--c-green);
  background:#EFF7E4;border-bottom:1px solid #DCEAC9}
.ai-preview-head .tool.add{padding:6px 12px;font-size:12.5px}
.ai-preview-body{padding:10px 12px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;
  color:var(--c-purple-800);width:100%;box-sizing:border-box;border:none;background:transparent;
  resize:vertical;min-height:200px;outline:none;font-family:inherit;display:block}
.ai-preview-body:focus{background:#fff}
.file-hidden{display:none}
.preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{position:relative;display:flex;align-items:center;background:var(--c-purple-50);
  border-radius:8px;padding:3px;font-size:12px;color:var(--c-purple-600)}
.chip img{width:46px;height:46px;object-fit:cover;border-radius:6px;display:block}
.chip.file{padding:6px 8px}
.chip button{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;
  border:none;background:#C0392B;color:#fff;font-size:12px;line-height:1;cursor:pointer}
.entry-media{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--c-purple-100)}
.att{font-size:12px;color:var(--c-gray);background:var(--c-purple-50);border-radius:6px;padding:3px 8px}

.tabs{display:flex;gap:8px;padding:0 14px;overflow-x:auto}
.tab{flex:0 0 auto;background:var(--card);border:1px solid var(--c-purple-100);
  color:var(--c-purple-600);border-radius:20px;padding:8px 18px;font-size:14px;cursor:pointer}
.tab.active{background:var(--c-purple-600);color:#fff;border-color:var(--c-purple-600)}

.sub-area{margin:14px;display:grid;gap:12px}
.sub-card{background:var(--card);border-radius:14px;padding:14px;
  box-shadow:0 1px 3px rgba(40,33,92,.08)}
.sub-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.sub-name{font-size:15px;font-weight:600}
.badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}
.badge.cloud{background:#E6F1FB;color:var(--c-blue)}
.badge.local{background:#EAF3DE;color:var(--c-green)}
.badge.mixed{background:var(--c-purple-50);color:var(--c-purple-600)}
.entries{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.entry{background:var(--c-purple-50);border-radius:9px;padding:8px 10px}
.entry-text{font-size:13px;white-space:pre-wrap;word-break:break-word}
.entry-meta{font-size:11px;color:var(--c-gray);margin-top:3px}
.empty{font-size:12px;color:var(--c-gray);padding:6px 2px}
.add-btn{width:100%;background:var(--c-purple-50);border:1px dashed var(--c-purple-400);
  color:var(--c-purple-600);border-radius:9px;padding:9px;font-size:13px;cursor:pointer}
.add-btn:active{background:var(--c-purple-100)}
.sync-status{font-size:11px;color:var(--c-gray);margin-top:6px}

.modal{position:fixed;inset:0;background:rgba(40,33,92,.4);display:flex;
  align-items:center;justify-content:center;z-index:20;padding:20px}
.modal.hidden{display:none}
.modal-card{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:360px}
.modal-card h3{margin:0 0 12px}
.field{display:block;font-size:13px;color:var(--c-gray)}
.field input{width:100%;margin-top:6px;padding:9px;border:1px solid var(--c-purple-200);
  border-radius:9px;font-size:14px}
.hint{font-size:12px;color:var(--c-gray);margin:10px 0}
.modal-actions{display:flex;gap:10px;margin-top:6px}
