/* 115 notes · local highlight & annotation layer */
.ann-ui{font-family:"PingFang TC","Noto Sans TC","Noto Sans SC","Microsoft JhengHei",sans-serif;box-sizing:border-box}
.ann-ui *{box-sizing:border-box}

.ann-toolbar{
  position:fixed;right:18px;bottom:18px;z-index:9998;
  display:flex;align-items:center;gap:6px;
  padding:7px 8px;background:rgba(255,253,248,.96);
  border:1px solid #d8d1c2;border-radius:5px;
  box-shadow:0 8px 24px rgba(28,38,56,.16);
}
.ann-btn{
  border:1px solid #d8d1c2;background:#fffdf8;color:#1f3a63;
  font:600 12px/1 "PingFang TC","Noto Sans TC",sans-serif;
  padding:7px 9px;border-radius:3px;cursor:pointer;white-space:nowrap;
}
.ann-btn:hover{background:#f1ecdf}
.ann-btn.on{background:#1f3a63;color:#fff;border-color:#1f3a63}
.ann-colors{display:flex;gap:4px;padding:0 4px}
.ann-dot{
  width:18px;height:18px;border-radius:50%;border:2px solid transparent;
  cursor:pointer;padding:0;background:var(--dot);
}
.ann-dot.on{border-color:#16202e;box-shadow:0 0 0 2px #fff inset}
.ann-count{
  display:inline-block;min-width:16px;padding:0 4px;margin-left:3px;
  border-radius:8px;background:#a33a3a;color:#fff;font:700 10px/16px monospace;text-align:center;
}

.ann-panel{
  position:fixed;right:18px;top:72px;bottom:82px;width:340px;max-width:calc(100vw - 24px);
  z-index:9999;background:#fffdf8;border:1px solid #d8d1c2;border-radius:5px;
  box-shadow:0 14px 40px rgba(28,38,56,.2);display:none;flex-direction:column;overflow:hidden;
}
.ann-panel.open{display:flex}
.ann-panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-bottom:1px solid #d8d1c2;background:#f6f2e8;
}
.ann-panel-head b{font-family:"Songti TC","Songti SC",serif;font-size:17px;color:#1f3a63}
.ann-close{border:none;background:transparent;font-size:22px;line-height:1;color:#5c6573;cursor:pointer;padding:0 4px}
.ann-scroll{overflow:auto;padding:12px 14px 16px}
.ann-section{font:700 10px/1.4 monospace;letter-spacing:.12em;text-transform:uppercase;color:#7c8492;margin:8px 0 7px}
.ann-seed{border-left:3px solid #1f3a63;background:#f3eee2;padding:7px 9px;margin:0 0 7px;cursor:pointer}
.ann-seed b{display:block;color:#1f3a63;font-size:12.5px;margin-bottom:2px}
.ann-seed span{display:block;color:#5c6573;font-size:11.5px;line-height:1.5}
.ann-item{border-bottom:1px dotted #d8d1c2;padding:8px 0;cursor:pointer}
.ann-item .q{font-size:12.5px;color:#16202e;line-height:1.5;margin-bottom:3px}
.ann-item .n{font-size:11.5px;color:#5c6573;line-height:1.5;background:#f6f2e8;padding:5px 7px;border-radius:2px;white-space:pre-wrap}
.ann-item .meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:10.5px;color:#8a8f9e}
.ann-item .sw{width:8px;height:8px;border-radius:50%;background:var(--c)}
.ann-del{margin-left:auto;border:none;background:transparent;color:#a33a3a;font-size:11px;cursor:pointer;padding:2px 4px}
.ann-empty{font-size:12px;color:#8a8f9e;line-height:1.6;padding:8px 0}
.ann-actions{display:flex;gap:8px;margin-top:10px}
.ann-actions .ann-btn{flex:1;text-align:center}

.ann-pop{
  position:fixed;z-index:10000;display:none;align-items:center;gap:5px;
  background:#fffdf8;border:1px solid #d8d1c2;border-radius:4px;
  box-shadow:0 10px 28px rgba(28,38,56,.2);padding:6px 7px;
}
.ann-pop.open{display:flex}
.ann-pop .ann-dot{width:20px;height:20px}

mark.ann-mark{padding:0 1px;border-radius:2px;background:var(--hl);cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}
mark.ann-yellow{--hl:#ffe58a}
mark.ann-red{--hl:#ffb3b3}
mark.ann-green{--hl:#b9e6c9}
mark.ann-blue{--hl:#b9d7ff}
mark.ann-mark.has-note{box-shadow:inset 0 -2px 0 #a33a3a}
mark.ann-flash{animation:ann-flash .8s ease 2}
@keyframes ann-flash{0%,100%{outline:0 solid rgba(163,58,58,0)}50%{outline:3px solid rgba(163,58,58,.55)}}

.ann-toast{
  position:fixed;left:50%;bottom:78px;transform:translateX(-50%);
  z-index:10001;background:#16202e;color:#fff;font-size:12px;
  padding:8px 12px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s;
}
.ann-toast.show{opacity:1}

@media print{
  .ann-ui, .ann-toolbar, .ann-panel, .ann-pop, .ann-toast{display:none!important}
  mark.ann-mark{background:transparent!important;box-shadow:none!important}
}
