:root{color-scheme:light;--bg:#f4f7fb;--panel:#fff;--soft:#edf4f9;--control:#f8fafc;--text:#0a1534;--muted:#5c667a;--line:#dce5ee;--brand:#0068b4;--link:#0068b4;--brand-dark:#11255d;--nav:#0a1534;--success:#39720b;--warning:#91620c}
body>main :is(button,select,input:not([type=checkbox]):not([type=radio])){min-height:44px;max-width:100%}
body>main :is(input[type=checkbox],input[type=radio]){display:inline-block;width:20px;height:20px;min-height:20px;margin:0 .5rem 0 0;vertical-align:middle;accent-color:var(--brand)}
.columns>*{min-width:0}
body>main :is(h1,h2,h3,p,label,summary){overflow-wrap:anywhere}
:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--brand);outline-offset:3px}
body>main button:disabled{cursor:not-allowed}
body>main input[type=file]::file-selector-button{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--brand-dark);color:#fff;cursor:pointer;margin-right:12px}
.category-chooser{width:100%;grid-column:1/-1;border:0}
.category-chooser summary{min-height:44px;padding:10px 0;font-weight:700;cursor:pointer}
.category-chooser .filters{margin-top:8px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.visual-tool-picker{width:100%;min-width:0;margin-block:.75rem}
/* A category with one tool has no picker; do not leave an empty toolbar. */
.tool-tabs:has(>.visual-tool-picker[hidden]){display:none}
body>main .calculator-rows .columns>button{align-self:end;justify-self:start;width:auto;min-height:44px;max-height:44px;margin-block:0}
.visual-tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));grid-auto-rows:1fr;align-items:stretch;gap:.6rem;margin-block:.7rem}
.visual-tool-button{display:flex;align-items:center;gap:.65rem;min-height:60px;margin:0;padding:.8rem;text-align:left;border:1px solid var(--line);border-radius:.8rem;background:var(--panel);color:var(--text);font:inherit;cursor:pointer;overflow-wrap:anywhere}
.visual-tool-button svg{width:23px;height:23px;flex:none;fill:none;stroke:var(--link);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.visual-tool-button:hover{border-color:var(--brand);background:var(--soft)}
.visual-tool-button[aria-pressed=true]{border:2px solid var(--brand);padding:calc(.8rem - 1px);background:var(--soft);font-weight:700}
.visual-tool-button:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.visual-tool-button[hidden]{display:none}
.visual-tool-picker details{padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:var(--panel)}
.visual-tool-picker summary{cursor:pointer;font-weight:700;color:var(--text)}
@media(max-width:520px){.visual-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-tool-button{flex-direction:column;align-items:flex-start;font-size:.82rem}}
html[data-theme="dark"]{color-scheme:dark;--bg:#071027;--panel:#0e1b35;--soft:#142744;--control:#111f39;--text:#eef5ff;--muted:#aebed3;--line:#2a3d5a;--brand:#168ad1;--link:#71c5ff;--brand-dark:#174674;--nav:#050d20;--success:#a6d574;--warning:#e7ba63}
body{background:var(--bg);color:var(--text)}
.topbar,.tool-site-header{background:var(--nav)}
body>main:not(:has(.catalog)),.controls,.tool-card,.tool-card.disabled,.metric-card,.result-panel,.lookup-card,.palette{background:var(--panel);color:var(--text);border-color:var(--line)}
body>main a:not(.workspace-back),.source-note a{color:var(--link)}
body>main .tool-card{color:var(--text)}
body>main input,body>main textarea,body>main select,.palette input{background:var(--control);color:var(--text);border-color:var(--line)}
body>main input::placeholder,body>main textarea::placeholder{color:var(--muted);opacity:1}
html[data-theme] body>main :is(input,textarea,select){background:var(--control);color:var(--text);border-color:var(--line)}
html[data-theme] body>main :is(th,td){background:var(--panel);color:var(--text);border-color:var(--line)}
html[data-theme] body>main th{background:var(--soft);color:var(--muted)}
.theme-icons{display:flex;gap:3px;padding:3px;border:1px solid #485774;border-radius:10px}
.theme-icons button{display:grid;place-items:center;width:34px;height:34px;padding:7px;margin:0;border:0;background:transparent;color:#d9e7f5;border-radius:7px;cursor:pointer}
.theme-icons button[aria-pressed="true"]{background:#245477;color:#fff}
.theme-icons svg,.quick-tools-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quick-tools-button{display:flex;align-items:center;gap:7px;padding:8px 12px;margin:0;background:#14233d;color:#d9e7f5;border:1px solid #485774}
.quick-tools-dialog{width:min(640px,calc(100% - 2rem));max-height:80vh;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text)}
.quick-tools-dialog::backdrop{background:#020916b3}
.quick-tools-dialog header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.quick-tools-dialog h2{margin:0;font-size:1.1rem}
.quick-tools-dialog input{width:100%;background:var(--control);color:var(--text);border-color:var(--line)}
.quick-tools-dialog input::placeholder{color:var(--muted)}
.quick-tools-dialog p{color:var(--muted);font-size:.82rem}
.quick-tools-results{display:grid;gap:5px;max-height:48vh;overflow:auto}
.quick-tools-results a{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--soft);text-decoration:none}
.quick-tools-results a:hover{border-color:var(--brand)}
.quick-tools-results small{color:var(--muted)}
body>main section{background:var(--soft);color:var(--text)}
body>main section.catalog{background:transparent}
body>main .tool-panel,body>main .lookup-summary,body>main .result-panel{background:transparent}
.lookup-card,.ip-card,.metric-card,.result-panel,.ip-explainer article{background:var(--panel)!important;border-color:var(--line)}
.result-panel>header,.tool-tabs,.type-badge,.tag-list span,.tag-list code,.tool-panel>.columns,.tool-panel>label:has(textarea[readonly]),.tool-panel>label:has(input[readonly]){background:var(--soft);border-color:var(--line)}
.tool-panel textarea[readonly],.tool-tabs select{background:var(--control)}
.tool-tabs label,.property-row span,.metric-card span,.ip-card span,.lookup-help,.lookup-status,.source-note,.empty-result,.result-panel header p,.tool-meta p,.subnet-heading p,.tool-site-footer,body>footer,details summary{color:var(--muted)}
body>main table{background:var(--panel);color:var(--text)}
body>main th{background:var(--soft);color:var(--muted)}
body>main td,body>main th,.property-row,details,.tag-list span,.tag-list code{border-color:var(--line)}
.records-table td code,body>main pre{color:var(--link)}
.type-badge{color:var(--link)}
.eyebrow{color:var(--link)}
.lookup-status.success{color:var(--success)}
.lookup-status.error,.error-result{color:var(--warning)}
.error-result{background:var(--soft)}
.error-panel{border-color:var(--warning)}
body>main .ip-hero{background:linear-gradient(135deg,#0a1534,#11255d);color:#fff}
.ip-hero span,.ip-hero p{color:#d4deeb}
.badge,.tool-icon,.category-heading span{background:var(--soft);color:var(--muted)}
.tool-icon{color:var(--link)}
.tool-card:hover{border-color:var(--brand)}
.palette-item:hover{background:var(--soft)}
.palette-item small,.result-count{color:var(--muted)}
.workspace-back{display:inline-flex;align-items:center;gap:8px;padding:7px 0;margin:0 0 10px;color:var(--link);font-size:.85rem;font-weight:600;text-decoration:none}
.workspace-back:hover{text-decoration:underline}
body>.tool-return-nav{width:calc(100% - 2rem);margin:1.25rem auto .75rem;padding:0}
.tool-return-nav>.workspace-back{min-height:44px;margin:0;padding:10px 14px;border:1px solid var(--line);border-radius:.65rem;background:var(--panel);color:var(--link);line-height:1.4}
.tool-return-nav>.workspace-back:visited{color:var(--link)}
.tool-return-nav>.workspace-back:hover{background:var(--soft);border-color:var(--brand);text-decoration:none}
body>.tool-site-header~main:not(:has(.catalog)){width:calc(100% - 2rem);max-width:none;margin:.75rem auto 2rem;padding:clamp(1.2rem,3vw,2rem)}
.tool-site-header{padding-inline:1rem;}
.tool-site-header,.topbar{position:sticky;top:0;z-index:100;}
html{scroll-padding-top:var(--header-offset,120px);}
main nav[aria-label="Seções dos documentos"]{display:flex;flex-wrap:wrap;gap:8px;font-size:0;}
main nav[aria-label="Seções dos documentos"] a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--link);font-size:.9rem;font-weight:600;text-decoration:none;}
main nav[aria-label="Seções dos documentos"] a:hover{border-color:var(--brand);background:var(--panel);}
.tool-site-nav>a,.top-actions>a{border:1px solid #485774;background:#14233d;color:#fff;text-decoration:none;}
.tool-site-nav>a:hover,.top-actions>a:hover{background:#1d3c60;text-decoration:none;}
.tool-site-nav,.top-actions{align-items:center;gap:8px}
.tool-site-nav>a,.tool-site-nav>button,.tool-site-nav .theme-icons button,.top-actions>a,.top-actions>button,.top-actions .theme-icons button{box-sizing:border-box;min-height:44px;margin:0;line-height:1.4}
.tool-site-nav>a,.tool-site-nav>button,.top-actions>a,.top-actions>button{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;font:600 .85rem/1.4 Inter,system-ui,sans-serif;border-radius:8px}
.tool-site-nav .theme-icons,.top-actions .theme-icons{align-items:center;padding:2px;gap:2px}
.tool-site-nav .theme-icons button,.top-actions .theme-icons button{width:44px;height:44px;padding:10px;border-radius:6px}
body>main button:not(.visual-tool-button){font:600 .9rem/1.4 Inter,system-ui,sans-serif;border-radius:8px}
body>main .actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
body>main .actions>button,.tool-site-header~main .actions>a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;margin:0;padding:10px 16px;font:600 .9rem/1.4 Inter,system-ui,sans-serif;border-radius:8px;text-decoration:none}
.tool-site-header~main .actions>a{border:1px solid var(--line);background:var(--soft);color:var(--link)}
.tool-site-header~main .actions>a:hover{border-color:var(--brand)}
.tool-site-header~main .ip-hero .actions>a{background:#14233d;border-color:#485774;color:#fff}
.tool-site-header~.related-tools{width:calc(100% - 2rem);max-width:none;margin:.75rem auto;box-sizing:border-box}
.tool-return-nav>.workspace-back{font:600 .85rem/1.4 Inter,system-ui,sans-serif;display:inline-flex;width:auto;box-sizing:border-box;text-transform:none;letter-spacing:normal}
.theme-control{display:flex;align-items:center;gap:6px;margin:0;font-size:.78rem;font-weight:500;color:#d9e7f5}
.theme-control select{display:block;width:auto;min-width:100px;margin:0;padding:8px 10px;border:1px solid #485774;border-radius:8px;background:#14233d;color:#fff;font:inherit;cursor:pointer}
.theme-control-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.top-actions,.tool-site-nav{align-items:center}
.main-site-link{color:#d9e7f5;font-size:.82rem;text-decoration:none;white-space:nowrap}
.main-site-link:hover{text-decoration:none}
.top-actions{flex-wrap:wrap;justify-content:flex-end}
.tool-site-footer nav,body>footer nav{display:flex;gap:.8rem;flex-wrap:wrap}
.tool-site-footer a:link,.tool-site-footer a:visited,body>footer a:link,body>footer a:visited{color:var(--muted);font:inherit;text-decoration:none}
.tool-site-footer a:hover,body>footer a:hover{color:var(--brand);text-decoration:underline}
.tool-site-footer a:focus-visible,body>footer a:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:2px}
.tool-site-nav a,.tool-site-nav button{margin:0}
body>footer,.tool-site-footer{border-color:var(--line)}
:focus-visible{outline:3px solid var(--link);outline-offset:3px}
.code-preview{background:#fff;color:#000}
.code-preview svg{background:#fff}
.tool-frame{display:block;width:100%;min-height:340px;border:0;background:transparent}
.integration-credit{font-size:.78rem;color:var(--muted);margin-top:20px}
@media(max-width:700px){.theme-control select{min-width:88px;padding:7px}.tool-site-nav{justify-content:flex-start;width:100%}}
body>main .visual-tool-button{min-width:0;white-space:normal;background:var(--panel);color:var(--text)}
body>main .visual-tool-button span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
body>main .visual-tool-button:hover,body>main .visual-tool-button[aria-pressed=true]{background:var(--soft);color:var(--text)}
.skip-to-content{position:fixed;top:12px;left:16px;z-index:1000;padding:12px 16px;transform:translateY(-200%);background:var(--panel);color:var(--link);border:2px solid var(--link);border-radius:8px;font:600 1rem/1.4 Inter,system-ui,sans-serif;text-decoration:none}
.skip-to-content:focus{transform:translateY(0);outline:3px solid var(--link);outline-offset:3px}
.back-to-top{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:48px;min-height:48px;margin:0;padding:12px 14px;border:1px solid #71c5ff;border-radius:12px;background:#0068b4;color:#fff;font:600 .9rem/1.4 Inter,system-ui,sans-serif;box-shadow:0 4px 18px #0003;cursor:pointer}
.back-to-top[hidden]{display:none!important}.back-to-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.back-to-top:hover{background:#004b85}.back-to-top:focus-visible{outline:3px solid var(--link);outline-offset:4px}
body>.tool-site-footer,body>footer{padding-bottom:80px}
@media print{.back-to-top,.skip-to-content{display:none!important}}
@media(forced-colors:active){.back-to-top{background:ButtonFace;color:ButtonText;border:2px solid ButtonText;box-shadow:none}.skip-to-content{background:Canvas;color:LinkText;border-color:LinkText}}
body>.portal-footer{display:block;margin-top:24px;padding:32px 16px 80px;background:#0a1534;color:#d9e7f5;border-top:3px solid #0068b4;font:400 .9rem/1.6 Inter,system-ui,sans-serif}
.portal-footer .footer-content,.portal-footer .footer-bottom{width:min(1420px,100%);margin-inline:auto}
.portal-footer .footer-content{display:grid;grid-template-columns:minmax(280px,2fr) 1fr 1fr;gap:40px}
.portal-footer .footer-intro{max-width:560px}.portal-footer .footer-brand{display:inline-flex;min-height:44px;align-items:center}.portal-footer .footer-brand img{display:block;width:150px;height:auto}
.portal-footer .footer-intro>strong{display:block;margin-top:12px;color:#fff;font-size:1.2rem}.portal-footer p{margin:8px 0 20px;color:#d9e7f5}
.portal-footer nav{display:flex;flex-direction:column;gap:0}.portal-footer h2{margin:0 0 8px;font-size:1rem;color:#fff}
.portal-footer nav>a{display:flex;align-items:center;min-height:44px;padding:8px 0;color:#d9e7f5;text-decoration:none;overflow-wrap:anywhere}
body>footer.portal-footer a:link,body>footer.portal-footer a:visited{color:#d9e7f5}body>footer.portal-footer a:hover{color:#fff;text-decoration:underline}
.portal-footer .footer-search label{margin:0;font:600 .9rem/1.5 Inter,system-ui,sans-serif;color:#fff}.portal-footer .footer-search>div{display:flex;gap:8px;margin-top:8px}
.portal-footer .footer-search input{min-width:0;min-height:44px;flex:1;width:100%;margin:0;padding:10px 12px;border:1px solid #7389a8;border-radius:8px;background:#14233d;color:#fff;font:inherit}.portal-footer .footer-search input::placeholder{color:#b9c9dc;opacity:1}
.portal-footer .footer-search button{min-height:44px;margin:0;padding:10px 16px;border:1px solid #71c5ff;border-radius:8px;background:#0068b4;color:#fff;font:600 .9rem/1.4 Inter,system-ui,sans-serif}
.portal-footer :is(a,input,button):focus-visible{outline:3px solid #71c5ff;outline-offset:3px}
.portal-footer .footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px;padding-top:20px;border-top:1px solid #485774;font-size:.82rem}.portal-footer .footer-bottom a{color:#fff}
@media(max-width:700px){.portal-footer .footer-content{grid-template-columns:1fr;gap:24px}.portal-footer .footer-intro{max-width:none}.portal-footer .footer-bottom{flex-direction:column}.portal-footer .footer-search button{padding-inline:12px}}
