/* IP Intelligence - sits on top of /assets/app.css and reuses its tokens. */
.ip-body{background:var(--bg);}
.ip-body .shell{max-width:none;min-height:100vh;display:flex;flex-direction:column;}
.ip-wrap{max-width:1080px;margin:0 auto;padding:0 18px;width:100%;}
.ip-appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--white);border-bottom:1px solid var(--line);}
.ip-appbar .logo img{display:block;height:34px;width:auto;}
.ip-navlink{font:600 14px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:var(--r-s);}
.ip-navlink:hover{color:var(--navy);background:var(--blue-soft);}
.ip-appbtn{white-space:nowrap;}
@media(max-width:640px){.ip-navlink{display:none;}}
.ip-band{background:var(--navy);color:#fff;}
.ip-band-in{padding:10px 18px;}
.ip-band .eyebrow{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font:700 11px/1 'Plus Jakarta Sans',system-ui,sans-serif;}
.ip-main{flex:1 0 auto;padding:0 0 40px;}
.ip-hero{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:38px 0 30px;}
.ip-hero h1{font:800 34px/1.15 'Plus Jakarta Sans',system-ui,sans-serif;margin:0 0 10px;letter-spacing:-.01em;}
.ip-hero p{color:#C9D4E6;font-size:15.5px;line-height:1.6;margin:0 0 18px;max-width:640px;}
@media(max-width:640px){.ip-hero h1{font-size:26px;}}
.ip-searchbar{display:flex;gap:10px;flex-wrap:wrap;background:var(--white);border-radius:var(--r-m);padding:10px;box-shadow:var(--sh-2);}
.ip-searchbar input[type=text]{flex:1 1 260px;min-width:0;border:0;outline:0;font:500 15px/1.4 'DM Sans',system-ui,sans-serif;color:var(--ink);padding:10px 12px;background:transparent;}
.ip-searchbar .btn{flex:0 0 auto;}
.ip-filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0;}
.ip-filters select{appearance:none;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:8px 30px 8px 14px;font:600 13px/1 'Plus Jakarta Sans',system-ui,sans-serif;cursor:pointer;}
.ip-filters select option{color:var(--ink);}
.ip-examples{margin:16px 0 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.ip-examples .tiny{color:#9FB1CA;}
.ip-ex{display:inline-block;font:600 12.5px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:#EBD9A0;border:1px solid rgba(235,217,160,.4);border-radius:999px;padding:7px 12px;text-decoration:none;}
.ip-ex:hover{background:rgba(235,217,160,.14);}
.ip-section{padding:26px 0 0;}
.ip-section h2{font:800 19px/1.25 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);margin:0 0 4px;}
.ip-results{display:grid;gap:12px;margin-top:14px;}
.ip-result{display:block;text-decoration:none;color:inherit;transition:box-shadow .16s ease,transform .16s ease;}
.ip-result:hover{box-shadow:var(--sh-2);transform:translateY(-1px);}
.ip-cat{margin-bottom:8px;display:inline-block;}
.ip-result-title{font:700 16.5px/1.35 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);margin:0 0 4px;}
.ip-result-meta{margin:0 0 8px;}
.ip-snippet{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 10px;}
.ip-kw .chip{font-size:11.5px;}
.ip-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:18px;}
.ip-stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-m);padding:14px;}
.ip-stat b{display:block;font:800 22px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:#fff;}
.ip-stat span{font-size:12.5px;color:#9FB1CA;}
.ip-pager{display:flex;gap:10px;justify-content:center;margin:22px 0 0;}
.ip-crumb{font-size:13px;color:var(--muted);margin:18px 0 10px;}
.ip-crumb a{color:var(--blue);text-decoration:none;}
.ip-case-head{background:var(--white);border:1px solid var(--line);border-radius:var(--r-l);padding:22px;box-shadow:var(--sh-1);}
.ip-case-head h1{font:800 25px/1.25 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);margin:8px 0 12px;letter-spacing:-.01em;}
@media(max-width:640px){.ip-case-head h1{font-size:21px;}.ip-case-head{padding:16px;}}
.ip-meta{display:grid;grid-template-columns:1fr 1fr;gap:2px 28px;margin:14px 0 0;border-top:1px solid var(--line);padding-top:14px;}
@media(max-width:720px){.ip-meta{grid-template-columns:1fr;}}
.ip-meta div{display:flex;gap:10px;padding:5px 0;font-size:13.5px;}
.ip-meta dt,.ip-meta .k{color:var(--muted-2);min-width:118px;flex:0 0 118px;font-weight:500;}
.ip-meta .v{color:var(--ink);font-weight:600;flex:1 1 auto;}
.ip-block{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:20px;margin-top:14px;}
.ip-block h2{font:700 15px/1.3 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);margin:0 0 10px;text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;}
.ip-block p{font-size:14.8px;line-height:1.72;color:var(--ink);margin:0 0 12px;}
.ip-block p:last-child{margin-bottom:0;}
.ip-ol{margin:0 0 10px;padding-left:20px;}
.ip-ol li{font-size:14.8px;line-height:1.7;color:var(--ink);margin-bottom:7px;}
.ip-ratio{border-left:4px solid var(--gold);background:#FFFCF3;}
.ip-notice{display:flex;gap:10px;align-items:flex-start;background:var(--warn-soft);border:1px solid #F2DFB6;border-radius:var(--r-m);padding:12px 14px;margin-top:14px;}
.ip-notice p{margin:0;font-size:12.8px;line-height:1.6;color:#6B4A08;}
.ip-sourcebox{background:var(--blue-soft);border:1px solid #D3E0FB;border-radius:var(--r-m);padding:16px;margin-top:14px;}
.ip-sourcebox a:not(.btn){color:var(--blue-dark);font-weight:700;}
.ip-sourcebox .btn-primary{color:#fff;}
.ip-sourcebox .btn-line{color:var(--navy);background:var(--white);}
.ip-sec-link{display:inline-block;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font:600 12.5px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);text-decoration:none;margin:0 6px 6px 0;}
.ip-sec-link:hover{border-color:var(--blue);color:var(--blue-dark);}
.ip-actlist{display:grid;gap:10px;margin-top:14px;}
.ip-actcard{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:16px;text-decoration:none;color:inherit;}
.ip-actcard:hover{border-color:var(--blue);}
.ip-actcard b{display:block;font:700 15.5px/1.3 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--navy);margin-bottom:3px;}
.ip-footer{background:var(--navy);color:#9FB1CA;padding:24px 0;margin-top:34px;}
.ip-footer p{margin:0 0 8px;font-size:12.3px;line-height:1.65;color:#9FB1CA;}
.ip-footer a{color:#EBD9A0;}
.ip-empty{background:var(--white);border:1px dashed var(--line);border-radius:var(--r-m);padding:34px 20px;text-align:center;color:var(--muted);}
/* admin */
.ip-admin-grid{display:grid;gap:12px;grid-template-columns:1fr;}
.ip-form label{display:block;font:600 12.5px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--muted);margin:12px 0 6px;text-transform:uppercase;letter-spacing:.05em;}
.ip-form input[type=text],.ip-form input[type=date],.ip-form select,.ip-form textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;font:400 14.5px/1.5 'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--white);}
.ip-form textarea{min-height:110px;resize:vertical;}
.ip-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:640px){.ip-form .row2{grid-template-columns:1fr;}}
.ip-adminrow{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;margin-bottom:8px;}
.ip-adminrow .nm{flex:1 1 auto;font-size:14px;font-weight:600;color:var(--navy);}

[hidden]{display:none !important;}
