/* 备忘录模块 —— 全部配色走主题变量（warm / glass / darktech 自动适配） */
.memo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.memo-head h1{margin:0;font-size:20px;color:var(--admin-text)}
.memo-head p{margin:4px 0 0;font-size:var(--fs-md);color:var(--admin-text-muted)}
.memo-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.memo-stat{background:var(--admin-surface);border:1px solid var(--admin-card-border);border-radius:var(--ui-radius,12px);padding:14px 18px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--admin-card-shadow)}
.memo-stat b{font-size:26px;line-height:1.2;color:var(--admin-text);font-variant-numeric:tabular-nums}
.memo-stat span{font-size:var(--fs-base);color:var(--admin-text-muted)}
.memo-stat.warn b{color:var(--warning-deep)}
.memo-stat.ok b{color:var(--success-deep)}
.memo-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--admin-surface);border:1px solid var(--admin-card-border);border-radius:var(--ui-radius,12px);padding:12px 16px;margin-bottom:18px;box-shadow:var(--admin-card-shadow)}
.memo-tools input[type=search],.memo-tools input[type=text]{flex:1;min-width:200px;height:38px;border:1.5px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);padding:0 12px;font-size:var(--fs-md);color:var(--admin-text);background:var(--admin-surface-soft);outline:0;transition:border-color .15s,box-shadow .15s}
.memo-tools input[type=search]:focus,.memo-tools input[type=text]:focus{border-color:var(--brand-green);background:var(--admin-surface);box-shadow:0 0 0 3px rgba(var(--brand-green-rgb),.10)}
.memo-tools input::placeholder{color:var(--admin-placeholder)}
.memo-tools select,.memo-tools input[type=date]{height:38px;border:1.5px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);padding:0 10px;font-size:var(--fs-md);color:var(--admin-text);background:var(--admin-surface);outline:0}
.memo-tools select:focus,.memo-tools input[type=date]:focus{border-color:var(--brand-green);box-shadow:0 0 0 3px rgba(var(--brand-green-rgb),.10)}
.memo-sep{color:var(--admin-text-sub);font-size:var(--fs-sm)}
.memo-admin-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.memo-admin-controls[hidden]{display:none}
.memo-sections{display:flex;flex-direction:column;gap:22px;padding:4px 0 30px}
.memo-section-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-lg);font-weight:700;color:var(--admin-text-muted);margin-bottom:12px}
.memo-section-title span{background:rgba(var(--admin-accent-rgb),.10);color:var(--admin-accent);border-radius:var(--ui-radius,12px);padding:2px 9px;font-size:var(--fs-sm);font-weight:600}
.memo-section-others{border-top:2px dashed var(--admin-border-strong);padding-top:20px}
.memo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px;align-items:start}
/* 默认加宽加高并随内容撑开；只在手动缩小时才需要内部滚动。 */
.memo-card{position:relative;background:var(--admin-surface);border:1px solid var(--admin-card-border);border-radius:var(--ui-radius,12px);padding:14px 16px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--admin-card-shadow);transition:box-shadow .2s,border-color .2s;box-sizing:border-box;min-width:180px;height:auto;min-height:260px;overflow:auto;resize:both}
.memo-card.is-resized{min-height:120px}
.memo-card>*{flex:none}
/* 可缩放内容卡保持原位，原生手柄不会被悬停放大挪开；玻璃与流光保留。 */
#memos-page #memos-grid .memo-grid>.memo-card{transform-origin:left top!important;transform:none!important;filter:none!important}
/* 流光仅为装饰，不得覆盖可滚动、可缩放卡片的溢出行为。 */
.memo-card.card-light-host.card-light-active{overflow:auto!important}
.memo-card>.card-light-edge{overflow:hidden}
.memo-card::-webkit-scrollbar{width:8px;height:8px}
.memo-card::-webkit-scrollbar-thumb{background:var(--admin-border-strong);border-radius:var(--ui-radius,12px);border:2px solid transparent;background-clip:padding-box}
.memo-card::-webkit-resizer{background:linear-gradient(135deg,transparent 0 50%,var(--admin-border-strong) 50% 60%,transparent 60% 72%,var(--admin-border-strong) 72% 82%,transparent 82% 100%)}
.memo-card:hover{box-shadow:var(--admin-card-shadow-hover)}
.memo-card[data-own="1"]{cursor:pointer}
.memo-card.memo-near{border-color:rgba(var(--admin-accent-rgb),.45)}
.memo-card.memo-near:hover{border-color:var(--admin-accent)}
/* 拖拽调整大小的状态反馈（放在 hover 规则之后，保证优先级） */
.memo-card.is-resized{z-index:5;box-shadow:0 18px 44px rgba(var(--admin-accent-ink-rgb),.22);border-color:var(--admin-accent)}
.memo-card.is-dragging{z-index:6;cursor:nwse-resize;user-select:none;border-color:var(--admin-accent);box-shadow:0 22px 54px rgba(var(--admin-accent-ink-rgb),.30)}
.memo-card:hover::-webkit-resizer{background:linear-gradient(135deg,transparent 0 50%,var(--admin-accent) 50% 60%,transparent 60% 72%,var(--admin-accent) 72% 82%,transparent 82% 100%)}
.memo-size-tip{position:absolute;right:8px;bottom:8px;pointer-events:none;background:var(--admin-toast-bg);color:#fff;font-size:var(--fs-sm);font-weight:600;border-radius:var(--ui-radius,12px);padding:2px 9px;font-variant-numeric:tabular-nums;letter-spacing:.02em;opacity:.94}
.memo-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.memo-time{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-base);font-weight:700;color:var(--admin-text);background:var(--admin-surface-soft);border-radius:var(--ui-radius,12px);padding:3px 9px;white-space:nowrap;font-variant-numeric:tabular-nums}
.memo-time.near{background:rgba(var(--admin-accent-rgb),.10);color:var(--admin-accent)}
.memo-time.overdue{background:rgba(185,28,28,.10);color:var(--danger-deep)}
.memo-time.sent{color:var(--admin-text-sub);font-weight:600}
.memo-status{font-size:var(--fs-sm);font-weight:600;border-radius:var(--ui-radius,12px);padding:3px 9px;white-space:nowrap}
.memo-status.pending{background:rgba(180,83,9,.12);color:var(--warning-deep)}
.memo-status.sent{background:rgba(4,120,87,.12);color:var(--success-deep)}
.memo-status.unbound,.memo-status.failed{background:rgba(185,28,28,.10);color:var(--danger-deep)}
.memo-title{font-size:var(--fs-xl);font-weight:700;color:var(--admin-text);word-break:break-word}
.memo-title:empty{display:none}
.memo-content{font-size:var(--fs-md);color:var(--admin-text-muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;white-space:pre-wrap}
.memo-content:empty{display:none}
.memo-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:2px}
.memo-chip{font-size:var(--fs-sm);color:var(--admin-text-muted);background:var(--admin-surface-soft);border-radius:var(--ui-radius,12px);padding:2px 8px;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
.memo-chip.cust{background:rgba(var(--admin-accent-rgb),.10);color:var(--admin-accent);font-weight:600}
.memo-actions{margin-left:auto;display:flex;gap:6px}
.memo-act{border:1px solid var(--admin-border-soft);background:var(--admin-surface);color:var(--admin-text-muted);border-radius:var(--ui-radius,12px);padding:3px 10px;font-size:var(--fs-sm);cursor:pointer;transition:border-color .15s,color .15s}
.memo-act:hover{border-color:var(--admin-border-strong);color:var(--admin-text)}
.memo-act.danger:hover{color:var(--danger-deep);border-color:rgba(185,28,28,.35)}
.memo-empty{grid-column:1/-1;padding:50px 20px;text-align:center;color:var(--admin-text-sub);background:var(--admin-surface);border:1px dashed var(--admin-border-strong);border-radius:var(--ui-radius,12px);font-size:var(--fs-md)}
/* 编辑弹窗 */
.memo-dialog{width:min(460px,94vw)}
.memo-dialog-head h2{margin:0;font-size:var(--fs-xl);color:var(--admin-text)}
.memo-dialog-head p{margin:4px 0 0;font-size:var(--fs-base);color:var(--admin-text-muted)}
.memo-form{display:grid;gap:12px;margin-top:14px}
.memo-form label,.memo-form .memo-field{display:grid;gap:6px;font-size:var(--fs-base);font-weight:600;color:var(--admin-text-muted)}
.memo-form input[type=text],.memo-form textarea,.memo-form input[type=datetime-local],.memo-form select{width:100%;border:1.5px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);padding:9px 12px;font-size:var(--fs-md);color:var(--admin-text);background:var(--admin-surface-soft);outline:0;font-family:inherit;transition:border-color .15s,box-shadow .15s}
.memo-form textarea{min-height:88px;resize:vertical;line-height:1.6}
.memo-form input:focus,.memo-form textarea:focus,.memo-form select:focus{border-color:var(--brand-green);background:var(--admin-surface);box-shadow:0 0 0 3px rgba(var(--brand-green-rgb),.10)}
.memo-form input::placeholder,.memo-form textarea::placeholder{color:var(--admin-placeholder)}
.memo-repeat-seg{display:flex;gap:8px;flex-wrap:wrap}
.memo-repeat-opt{border:1.5px solid var(--admin-border-soft);background:var(--admin-surface);color:var(--admin-text-muted);border-radius:var(--ui-radius,12px);padding:6px 16px;font-size:var(--fs-md);cursor:pointer;transition:all .15s}
.memo-repeat-opt.on{background:rgba(var(--admin-accent-rgb),.10);border-color:var(--admin-accent);color:var(--admin-accent);font-weight:600}
.memo-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.memo-hint{font-size:var(--fs-sm);color:var(--admin-text-sub)}
@media(max-width:640px){.memo-stats{grid-template-columns:1fr}.memo-grid{grid-template-columns:1fr}}
