
/* Nice Group floating utilities: window-level independent of route, macOS-like transitions. */
.ng-utility-root {position:relative;z-index:1500;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px;color:#273347}
.ng-tool-dock {position:fixed;right:20px;bottom:17px;display:flex;gap:9px;z-index:1502;background:rgba(250,250,252,.92);backdrop-filter:blur(18px);padding:7px;border:1px solid #d9dde7;border-radius:18px;box-shadow:0 12px 40px rgba(22,36,54,.17)}
.ng-tool-dock button {display:flex;align-items:center;gap:7px;border:0;background:transparent;border-radius:12px;padding:8px 12px;min-height:39px;cursor:pointer;color:#394c69;font-size:13px;font-weight:700}
.ng-tool-dock button:hover,.ng-tool-dock button[aria-pressed=true]{background:#e4edf9}
.ng-tool-dock button span{font-size:22px;color:#2773b9}.ng-tool-dock button small{font-size:11px}
.ng-tool-window {position:fixed;right:20px;bottom:83px;width:340px;height:480px;max-height:calc(100dvh - 110px);border:1px solid #cdd5df;border-radius:17px;background:#fff;z-index:1501;box-shadow:0 24px 75px rgba(23,35,52,.24),0 3px 12px rgba(20,31,43,.1);overflow:hidden;display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(28px) scale(.83);transform-origin:92% 100%;transition:opacity .24s ease,transform .38s cubic-bezier(.2,1.15,.35,1),visibility 0s linear .38s}
.ng-tool-window.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .38s cubic-bezier(.2,1.15,.35,1),visibility 0s}
.ng-tool-notes {right:20px;width:385px;height:520px}.ng-tool-calc {right:418px;width:316px;height:467px}
.ng-tool-window-head{height:49px;display:flex;justify-content:space-between;gap:5px;align-items:center;flex:0 0 auto;background:linear-gradient(180deg,#f7f9fc,#eff3f7);padding:0 12px;border-bottom:1px solid #dfe5ed;cursor:grab;user-select:none;touch-action:none}
.ng-tool-window-head:active{cursor:grabbing}.ng-tool-window-head>b{font-size:12px;white-space:nowrap;font-weight:720;color:#3f536a}
.ng-tool-window-head button{border:1px solid #d9e2ea;background:#fff;border-radius:8px;font-weight:650;font-size:11px;color:#57718b;cursor:pointer;padding:5px 8px;white-space:nowrap}
.ng-tool-mac-dots{display:flex;align-items:center;gap:6px}.ng-tool-mac-dots i,.ng-tool-mac-dots button{display:block!important;width:12px;height:12px;min-width:12px;border-radius:50%;padding:0;border:1px solid #bdc8d5;background:#d4dae1}
.ng-tool-mac-dots button{background:#ff6158;border-color:#e84943;cursor:pointer}.ng-tool-mac-dots i:nth-child(2){background:#ffbc2f;border-color:#e7aa28}.ng-tool-mac-dots i:nth-child(3){background:#2aca3e;border-color:#21b234}
.ng-tool-editor{display:flex;flex-direction:column;min-height:0;flex:1}.ng-tool-editor[hidden],.ng-tool-history[hidden]{display:none!important}
.ng-tool-notes textarea{border:0;outline:0;background:#fffdf5;padding:18px;width:100%;height:100%;min-height:0;flex:1;resize:none;font:14px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#25364a}
.ng-tool-notes textarea:disabled{opacity:.65}.ng-tool-notes footer{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fffdf5;border-top:1px solid #e8e7df;gap:8px}
.ng-tool-notes footer small{color:#72849b;font-size:11px}.ng-tool-notes footer button{border:0;background:#277fd9;color:white;font-size:11px;font-weight:700;padding:9px 12px;border-radius:9px;cursor:pointer}
.ng-tool-history{padding:12px;display:flex;flex-direction:column;gap:9px;flex:1;min-height:0;overflow:auto;background:#f9fbfd}
.ng-tool-history>button{align-self:start;border:1px solid #d8e5f4;border-radius:9px;color:#28649d;background:#fff;padding:6px 10px;font-size:12px;cursor:pointer}
.ng-tool-history>div{display:grid;gap:7px}.ng-tool-history>div>button{display:grid;gap:5px;min-width:0;text-align:left;border:1px solid #e2e7ef;border-radius:10px;background:#fff;padding:11px;cursor:pointer;font-size:12px;color:#314866;overflow-wrap:anywhere}
.ng-tool-history>div>button:hover{background:#eff6ff}.ng-tool-history>div>button small{color:#7890a9;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.ng-history-empty{padding:15px;color:#93a0ac;font-size:12px}
.ng-tool-calc .ng-tool-editor{padding:13px;gap:9px;background:#f9fafc}.ng-calculator-display{width:100%;background:white;border:1px solid #d6dee8;border-radius:12px;text-align:right;font-size:24px;min-height:65px;padding:10px 14px;color:#1f3653;min-width:0;outline:0;box-sizing:border-box}
.ng-calculator-display:focus{border-color:#82b7f1}.ng-calculator-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;flex:1}.ng-calculator-keys button{min-height:40px;border-radius:10px;background:white;border:1px solid #dee5ee;color:#2d425c;font-size:20px;cursor:pointer;box-shadow:0 2px 0 #edf0f3}.ng-calculator-keys button:hover{background:#edf6ff}.ng-calculator-keys button.operator{background:#eef5ff;color:#146bb5}.ng-calculator-keys button.equal{background:#2581df;color:white;border-color:#2581df}.ng-calc-result{font-size:11px;color:#58718c;text-align:right;min-height:15px}
.ng-tool-notice{position:fixed;bottom:90px;right:20px;z-index:1503;color:#256847;pointer-events:none;max-width:320px;font-size:12px;background:#e5f6ec;border-radius:9px}.ng-tool-notice:not(:empty){padding:9px 12px}.ng-tool-notice.error{color:#a53f39;background:#ffeae8}
@media(max-width:800px){.ng-tool-notes,.ng-tool-calc{right:12px;bottom:84px;left:auto!important;top:auto!important;width:min(385px,calc(100vw - 24px));height:min(500px,calc(100dvh - 110px))}.ng-tool-dock{right:10px;bottom:10px}.ng-tool-dock button small{display:none}.ng-tool-dock button{padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.ng-tool-window{transition:none!important}}
