/* UTL free tools: shared styles. Matches utlsolutions.ai palette and type. */
:root{--navy:#14213d;--navy2:#24365f;--gold:#d4a017;--gold-dk:#8a6500;--cream:#fbf8f1;--ink:#1f2933;--muted:#5b6670;--line:#d5dbe3;--ok:#1e6b3a;--warn:#8a3b00;--err:#a4161a;--radius:14px}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
a{color:var(--navy)}
a:hover{color:var(--gold-dk)}
img{max-width:100%}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:var(--navy);padding:10px 16px;font-weight:700;z-index:100;border-radius:0 0 8px 0}
.skip:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header */
header.site{position:sticky;top:0;background:rgba(20,33,61,.97);color:#fff;z-index:10}
.nav{max-width:1150px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;flex-wrap:wrap}
.logo{font-family:Merriweather,Georgia,serif;font-weight:700;font-size:1.15rem;letter-spacing:.3px;color:#fff;text-decoration:none}
.logo span{color:var(--gold)}
.logo:hover{color:#fff}
.nav ul{display:flex;gap:22px;list-style:none;font-size:.95rem;flex-wrap:wrap}
.nav ul a{color:#fff;text-decoration:none;opacity:.92}
.nav ul a:hover,.nav ul a[aria-current="page"]{color:var(--gold);opacity:1}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--gold);color:var(--navy);font:inherit;font-weight:700;padding:10px 18px;border-radius:8px;text-decoration:none;border:2px solid var(--gold);cursor:pointer;line-height:1.2;min-height:44px}
.btn:hover{background:#e2b42c;color:var(--navy)}
.btn.secondary{background:#fff;color:var(--navy);border-color:var(--navy)}
.btn.secondary:hover{background:#eef1f6}
.btn.ghost{background:transparent;border-color:#fff;color:#fff}
.btn.danger{background:#fff;color:var(--err);border-color:var(--err)}
.btn.small{padding:6px 12px;min-height:36px;font-size:.9rem}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Hero */
.hero{background:linear-gradient(135deg,#14213d 0%,#24365f 60%,#3a4f80 100%);color:#fff;padding:54px 24px 58px}
.hero .wrap{text-align:center}
.hero h1{font-family:Merriweather,Georgia,serif;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.25;margin:0 auto 14px;max-width:880px}
.hero p{max-width:720px;margin:0 auto;font-size:1.08rem;color:#e6eaf2}
.crumbs{font-size:.88rem;margin-bottom:14px;color:#cfd6e4}
.crumbs a{color:#fff}
.crumbs a:hover{color:var(--gold)}

/* Layout */
.wrap{max-width:1150px;margin:auto}
section.block{padding:40px 24px}
h2{font-family:Merriweather,Georgia,serif;font-size:1.45rem;color:var(--navy);margin-bottom:10px;line-height:1.3}
h3{color:var(--navy);font-size:1.08rem;margin-bottom:6px}
.lead{color:var(--muted);max-width:760px}
.muted{color:var(--muted)}
.small{font-size:.88rem}
.panel{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:0 6px 24px rgba(20,33,61,.07);border-top:4px solid var(--gold)}
.panel+.panel{margin-top:22px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.cols.wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
@media(min-height:860px) and (min-width:861px){.sticky-col{position:sticky;top:84px}}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.card{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:0 6px 24px rgba(20,33,61,.07);border-top:4px solid var(--gold);display:flex;flex-direction:column}
.card p{color:var(--muted);font-size:.96rem}
.card .icon{font-size:1.7rem;margin-bottom:8px}
.card .btn{margin-top:auto;align-self:flex-start}
.card .grow{flex:1;margin-bottom:16px}

/* Notices */
.note{background:#fff8e1;border-left:4px solid var(--gold);padding:12px 16px;border-radius:8px;font-size:.93rem;color:#3d3416}
.note.info{background:#eef3fb;border-left-color:var(--navy);color:#1d2a44}
.note.warn{background:#fdeee7;border-left-color:var(--warn);color:#5a2700}
.note+.note{margin-top:10px}
.note strong{color:inherit}

/* Forms */
form.tool{display:grid;gap:16px}
fieldset{border:1px solid var(--line);border-radius:10px;padding:14px 16px 16px;display:grid;gap:12px}
legend{font-weight:700;color:var(--navy);padding:0 6px}
label,.label{font-weight:600;font-size:.92rem;color:var(--navy);display:block;margin-bottom:4px}
.hint{font-size:.84rem;color:var(--muted);font-weight:400;margin-top:3px}
input[type=text],input[type=email],input[type=date],input[type=number],input[type=search],input[type=time],select,textarea{width:100%;padding:10px 12px;border:1px solid #b9c2ce;border-radius:8px;font:inherit;color:var(--ink);background:#fff;min-height:44px}
textarea{resize:vertical;min-height:80px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--navy)}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--err);background:#fff6f6}
.field-error{color:var(--err);font-size:.85rem;margin-top:3px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:var(--ink);font-size:.95rem;margin:0;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--navy)}
.checks{display:grid;gap:8px}
.checks.two{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.output{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.5;background:#fbfbfd;border:1px solid #b9c2ce;border-radius:8px;padding:12px;min-height:260px;white-space:pre-wrap}

/* Chips / filters */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:6px 14px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;min-height:40px}
.chip[aria-pressed=true]{background:var(--navy);color:#fff}
.chip .n{font-weight:400;opacity:.85;margin-left:4px}
.tag{display:inline-block;background:#f3ead2;color:#4d3b00;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;letter-spacing:.2px}

/* Tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{padding:9px 12px;border-bottom:1px solid #e6e9ee;text-align:left;vertical-align:top}
thead th{background:var(--navy);color:#fff;font-weight:600;white-space:nowrap}
tbody th{font-weight:600;color:var(--navy);white-space:nowrap}
tbody tr:nth-child(even){background:#fafbfc}
td.unfilled{color:var(--err);font-weight:700}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(30px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:all .2s;z-index:50;font-weight:600}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Footer */
.promo{background:var(--navy);color:#fff;padding:34px 24px;text-align:center}
.promo p{max-width:760px;margin:0 auto 14px;color:#e6eaf2}
.promo a.cta{color:var(--gold);font-weight:700;font-size:1.05rem}
.promo a.cta:hover{color:#fff}
footer.site{background:#0e172b;color:#aeb8c9;text-align:center;padding:26px 24px;font-size:.88rem}
footer.site a{color:#dfe5ef}
footer.site p+p{margin-top:6px}

@media(max-width:860px){
  .cols,.cols.wide-left{grid-template-columns:1fr}
  header.site{position:static}
  a.jump{display:inline-block}
  .sticky-col{position:static}
  .nav{padding:12px 18px}
  .nav ul{gap:16px;font-size:.9rem}
  section.block{padding:28px 16px}
  .panel{padding:18px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Print: hide site chrome and editing controls by default */
@media print{
  @page{margin:.6in}
  body{background:#fff;color:#000;display:block;font-size:11pt}
  header.site,.hero,.promo,footer.site,.no-print,.toast,.skip,form.tool,.btn,.btn-row{display:none!important}
  section.block{padding:0}
  .panel,.card{box-shadow:none;border:0;padding:0}
  .cols{display:block}
  a{color:#000;text-decoration:none}
  .print-only{display:block!important}
  thead th{background:#fff!important;color:#000!important;border-bottom:2px solid #000}
  th,td{border-bottom:1px solid #999}
  tbody tr:nth-child(even){background:#fff}
  .table-wrap{border:0;overflow:visible}
  tr{break-inside:avoid}
}
.print-only{display:none}
.jump{display:none;font-weight:700;margin:0 0 14px;padding:8px 0}
.noscript{max-width:900px;margin:16px auto}
main:focus{outline:none}
