:root {
  --blue: #0877e9;
  --blue-dark: #075ab3;
  --ink: #0b2142;
  --muted: #718096;
  --line: #d9e4ef;
  --surface: #ffffff;
  --soft: #f4f8fc;
  --shadow: 0 20px 60px rgba(24,76,126,.12), 0 6px 18px rgba(24,76,126,.07);
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; min-height: 100vh; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--ink); background: radial-gradient(circle at 50% 24%, rgba(31,135,234,.08), transparent 30rem), linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
a { color: inherit; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.hidden { display:none!important; }

/* Home */
.home-page { display:flex; flex-direction:column; }
.page-shell { flex:1; display:grid; place-items:center; padding:48px 24px 32px; }
.hero { width:min(100%,900px); text-align:center; transform:translateY(-3vh); }
.brand { display:inline-block; text-decoration:none; margin-bottom:20px; }
.brand-logo { display:block; width:clamp(380px,68vw,700px); max-width:100%; height:auto; margin:0 auto; }
.hero h1 { margin:0 0 36px; font-size:clamp(1.35rem,3vw,2.05rem); line-height:1.2; font-weight:500; letter-spacing:-.025em; color:#18385f; }
.search-form { width:100%; }
.search-box { width:min(100%,800px); margin:0 auto; height:72px; display:flex; align-items:center; gap:8px; padding:7px 8px 7px 20px; background:rgba(255,255,255,.98); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); transition:.18s ease; }
.search-box:focus-within { border-color:rgba(8,119,233,.52); box-shadow:0 24px 70px rgba(24,76,126,.15),0 0 0 4px rgba(8,119,233,.08); transform:translateY(-1px); }
.search-icon { width:25px; height:25px; color:#7f92a8; flex:0 0 auto; }
.search-icon svg,.search-button svg,.quick-action svg { width:100%; height:100%; }
#searchInput { min-width:0; flex:1; height:54px; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; font-size:1.1rem; padding:0 10px 0 4px; }
#searchInput::placeholder { color:#8798aa; }
.engine-wrap { display:flex; align-items:center; border-left:1px solid #e2e9f1; padding-left:10px; }
#searchEngine { border:0; outline:0; background:transparent; color:#31506f; font:inherit; font-weight:650; padding:10px 28px 10px 8px; cursor:pointer; }
.search-button { width:56px; height:56px; border:0; border-radius:17px; display:grid; place-items:center; background:var(--blue); color:#fff; cursor:pointer; padding:16px; box-shadow:0 8px 18px rgba(8,119,233,.24); }
.search-button:hover { background:var(--blue-dark); }
.quick-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:27px; }
.quick-action { border:0; background:transparent; color:#60758d; font:inherit; font-size:.93rem; display:inline-flex; align-items:center; gap:7px; cursor:pointer; text-decoration:none; padding:7px 10px; border-radius:10px; }
.quick-action:hover { color:var(--blue); background:#eef6ff; }
.quick-action svg { width:18px; height:18px; }
.coming-soon { color:#9aa9b8; font-size:.88rem; margin:16px 0 0; }
.footer { padding:16px 24px 24px; text-align:center; color:#a4b1bd; font-size:.78rem; }

/* Dialog */
dialog { border:0; border-radius:24px; padding:0; width:min(92vw,560px); color:var(--ink); box-shadow:0 24px 80px rgba(18,54,91,.24); }
dialog::backdrop { background:rgba(9,31,54,.38); backdrop-filter:blur(3px); }
.dialog-inner { position:relative; padding:34px; background:#fff; }
.dialog-close { position:absolute; right:16px; top:12px; border:0; background:transparent; font-size:2rem; line-height:1; color:#8293a4; cursor:pointer; }
.dialog-icon img { width:52px; height:52px; object-fit:contain; }
.dialog-inner h2 { margin:14px 0 8px; font-size:1.45rem; }
.dialog-intro,.dialog-note { color:#677b90; line-height:1.55; }
.browser-steps { color:#314e6b; line-height:1.6; }

/* Tools shell */
.tools-page { min-height:100vh; background:linear-gradient(180deg,#fff,#f7fbff); }
.site-header { height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 max(20px,calc((100vw - 1120px)/2)); border-bottom:1px solid #e7eef5; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); position:sticky; top:0; z-index:10; }
.site-header img { width:230px; max-width:56vw; height:auto; display:block; }
.header-nav { display:flex; gap:10px; align-items:center; }
.header-link { text-decoration:none; color:#526a82; font-weight:650; font-size:.92rem; padding:10px 12px; border-radius:10px; }
.header-link:hover,.header-link.active { color:var(--blue); background:#eef6ff; }
.tools-main { width:min(1120px,calc(100% - 36px)); margin:0 auto; padding:48px 0 70px; }
.tools-hero { max-width:760px; margin-bottom:30px; }
.eyebrow { display:block; color:var(--blue); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.tools-hero h1,.tool-page-card h1 { margin:9px 0 10px; font-size:clamp(2rem,5vw,3.15rem); letter-spacing:-.035em; color:#12355d; }
.tools-hero p,.tool-page-card .lead { margin:0; color:#667b91; font-size:1.05rem; line-height:1.65; }
.tools-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.tool-tile { min-height:186px; display:flex; flex-direction:column; text-decoration:none; background:#fff; border:1px solid #dfe9f2; border-radius:20px; padding:22px; box-shadow:0 9px 26px rgba(27,74,119,.06); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.tool-tile:hover { transform:translateY(-3px); border-color:#b7d7f7; box-shadow:0 14px 32px rgba(27,74,119,.11); }
.tool-icon { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; background:#eef6ff; color:var(--blue); font-size:1.35rem; margin-bottom:18px; }
.tool-tile h2 { margin:0 0 7px; font-size:1.05rem; color:#173a61; }
.tool-tile p { margin:0; color:#73869a; font-size:.89rem; line-height:1.5; }
.tool-badge { margin-top:auto; padding-top:14px; color:#95a4b3; font-size:.74rem; font-weight:700; }
.tool-tile.coming { opacity:.62; cursor:default; }
.tool-tile.coming:hover { transform:none; border-color:#dfe9f2; box-shadow:0 9px 26px rgba(27,74,119,.06); }
.section-title { margin:40px 0 16px; color:#536d87; font-size:.9rem; text-transform:uppercase; letter-spacing:.08em; }

/* Individual tools */
.tool-page-main { width:min(920px,calc(100% - 32px)); margin:0 auto; padding:38px 0 70px; }
.breadcrumb { display:flex; gap:7px; align-items:center; color:#7890a6; font-size:.86rem; margin-bottom:20px; }
.breadcrumb a { color:var(--blue); text-decoration:none; }
.tool-page-card { background:#fff; border:1px solid #dfe9f2; border-radius:24px; padding:clamp(22px,4vw,38px); box-shadow:0 15px 45px rgba(27,74,119,.08); }
.tool-page-card h1 { font-size:clamp(1.75rem,4vw,2.65rem); }
.tool-page-card .lead { margin-bottom:28px; }
label.field-label { display:block; color:#526a82; font-size:.84rem; font-weight:750; margin-bottom:7px; }
input[type=text],input[type=number],input[type=search],select,textarea { width:100%; border:1px solid #cfdeeb; border-radius:12px; background:#fff; color:#17324e; font:inherit; padding:12px 13px; outline:none; }
textarea { resize:vertical; min-height:120px; line-height:1.5; }
input:focus,select:focus,textarea:focus { border-color:#75b4f1; box-shadow:0 0 0 3px rgba(8,119,233,.08); }
.tool-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:14px; }
.primary-button,.secondary-button { border:0; border-radius:11px; padding:11px 15px; font:inherit; font-weight:750; cursor:pointer; }
.primary-button { background:var(--blue); color:#fff; }
.primary-button:hover { background:var(--blue-dark); }
.secondary-button { background:#edf4fb; color:#365a7d; }
.secondary-button:hover { background:#e3effa; }
button:disabled { opacity:.45; cursor:not-allowed; }
.result-card { margin-top:18px; border:1px solid #d9e6f1; background:#f7fbff; border-radius:14px; padding:15px; }
.result-label { display:block; color:#8192a3; font-size:.72rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; margin-bottom:5px; }
.result-text { word-break:break-word; font-weight:650; color:#274e75; }
.result-meta,.privacy-hint { margin-top:7px; color:#7a8ea1; font-size:.82rem; line-height:1.5; }
.password-output-row { display:grid; grid-template-columns:1fr auto auto; gap:8px; }
.password-output-row input { font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; }
.range-row { margin:25px 0 16px; }
.range-row input { width:100%; }
.check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.check-grid label { background:#f6f9fc; border:1px solid #e1eaf2; border-radius:10px; padding:10px 12px; color:#526b83; }
.text-stats { display:flex; flex-wrap:wrap; gap:14px; margin:10px 0 0; color:#7890a4; font-size:.82rem; }
.text-mode-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:16px; border-top:1px solid #e5edf4; }
.text-mode-note { color:#8294a5; font-size:.8rem; margin-top:9px; }
.two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.three-col { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.calc-box { border:1px solid #dce8f2; border-radius:16px; padding:17px; background:#fbfdff; }
.calc-box h2 { margin:0 0 16px; font-size:1rem; }
.input-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.input-affix { display:flex; align-items:center; border:1px solid #cfdeeb; border-radius:12px; background:#fff; overflow:hidden; }
.input-affix > span { padding:0 0 0 12px; color:#7c8fa2; font-weight:700; }
.input-affix input { border:0; box-shadow:none!important; }
.calc-result { margin-top:14px; display:flex; justify-content:space-between; gap:12px; align-items:center; background:#eef7ff; border-radius:12px; padding:13px 14px; }
.calc-result strong { color:var(--blue-dark); font-size:1.2rem; }
.converter-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.converter-output { margin-top:16px; font-size:1.55rem; font-weight:800; color:#1a5e9f; word-break:break-word; }
.mono-output { font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; }
.toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%,20px); opacity:0; pointer-events:none; background:#173b60; color:#fff; padding:10px 15px; border-radius:10px; font-size:.87rem; transition:.18s ease; z-index:50; }
.toast.show { opacity:1; transform:translate(-50%,0); }

@media (max-width:900px) { .tools-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
  .page-shell { padding:28px 14px 22px; }
  .hero { transform:translateY(-2vh); }
  .brand-logo { width:min(95vw,560px); }
  .hero h1 { margin-bottom:26px; font-size:1.3rem; }
  .search-box { height:auto; min-height:64px; border-radius:18px; padding-left:14px; gap:4px; }
  .search-icon { width:21px; height:21px; }
  #searchInput { font-size:1rem; padding-right:2px; }
  .engine-wrap { padding-left:5px; }
  #searchEngine { max-width:116px; padding:9px 20px 9px 5px; font-size:.82rem; }
  .search-button { width:50px; height:50px; border-radius:14px; padding:14px; }
  .site-header { height:66px; padding:0 16px; }
  .site-header img { width:190px; }
  .header-link.hide-mobile { display:none; }
  .tools-main,.tool-page-main { width:min(100% - 24px,1120px); padding-top:28px; }
  .tools-grid { grid-template-columns:1fr; }
  .tool-tile { min-height:150px; }
  .password-output-row { grid-template-columns:1fr 1fr; }
  .password-output-row input { grid-column:1 / -1; }
  .check-grid,.two-col,.three-col,.converter-grid,.input-row { grid-template-columns:1fr; }
  .dialog-inner { padding:28px 22px; }
}

/* Tools directory organization */
.tools-search-row { max-width:720px; margin:0 0 16px; }
.tools-search-row input { font-size:1rem; padding:14px 16px; border-radius:14px; background:#fff; }
.category-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px; }
.category-chip { border:1px solid #dbe7f1; background:#fff; color:#526b83; border-radius:999px; padding:9px 13px; font:inherit; font-size:.86rem; font-weight:700; cursor:pointer; }
.category-chip:hover,.category-chip.active { color:var(--blue); border-color:#b7d7f7; background:#eef6ff; }
.personal-tools-section { margin:0 0 34px; }
.section-heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:0 0 14px; }
.section-heading-row h2 { margin:3px 0 0; color:#173a61; font-size:1.35rem; }
.browse-heading { margin-top:4px; }
.section-note { color:#94a3b2; font-size:.78rem; }
.text-button { border:0; background:transparent; color:var(--blue); font:inherit; font-size:.84rem; font-weight:700; cursor:pointer; padding:7px 0; }
.text-link { color:var(--blue); text-decoration:none; font-size:.86rem; font-weight:700; }
.tool-card { position:relative; min-width:0; }
.tool-card .tool-tile { height:100%; }
.favorite-toggle { position:absolute; top:12px; right:12px; z-index:3; width:34px; height:34px; border:1px solid #dce8f2; border-radius:50%; background:rgba(255,255,255,.95); color:#8ca0b2; font-size:1.25rem; line-height:1; cursor:pointer; box-shadow:0 4px 12px rgba(24,76,126,.08); }
.favorite-toggle:hover,.favorite-toggle.active { color:#d79600; background:#fffaf0; border-color:#f0d897; }
.compact-grid .tool-tile { min-height:154px; }
.compact-card .tool-tile p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.empty-state { border:1px dashed #cfdde9; border-radius:16px; padding:24px; color:#71869b; text-align:center; background:#fbfdff; }

/* Image tools */
.privacy-banner,.notice-card { border:1px solid #d7e8f7; background:#f4faff; color:#4b6781; border-radius:14px; padding:13px 15px; margin:0 0 22px; font-size:.88rem; line-height:1.5; }
.notice-card { background:#fffaf2; border-color:#f0dfbd; color:#705d39; }
.drop-zone { position:relative; display:flex; flex-direction:column; gap:5px; align-items:center; justify-content:center; min-height:132px; padding:24px; border:1.5px dashed #b9cfdf; border-radius:18px; background:#f9fcff; color:#526b83; text-align:center; cursor:pointer; transition:.16s ease; }
.drop-zone:hover { border-color:#78b5ef; background:#f2f8ff; }
.drop-zone strong { color:#1b4d78; font-size:1rem; }
.drop-zone span { color:#8799aa; font-size:.82rem; }
.drop-zone input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.image-preview-wrap { margin:22px 0 8px; border:1px solid #dce8f2; border-radius:18px; background:repeating-conic-gradient(#f5f8fb 0 25%,#fff 0 50%) 50%/18px 18px; overflow:hidden; min-height:170px; display:grid; place-items:center; padding:14px; }
.image-preview { display:block; max-width:100%; max-height:560px; width:auto; height:auto; border-radius:8px; box-shadow:0 8px 24px rgba(26,65,102,.12); }
.image-info { color:#8194a7; font-size:.82rem; margin:8px 0 20px; }
.inline-check { display:flex; align-items:center; gap:8px; color:#526b83; font-size:.87rem; margin:10px 0 20px; }
.range-field { margin-top:16px; }
.range-field input[type=range],label.field-label input[type=range] { width:100%; margin-top:8px; }
.field-help { display:block; color:#92a1af; font-weight:500; font-size:.76rem; margin-top:5px; }
.subheading { margin:28px 0 14px; color:#234d75; font-size:1.02rem; }
.metadata-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin:20px 0 4px; border:1px solid #dce8f2; background:#f8fbfe; border-radius:13px; padding:12px 14px; color:#60778d; font-size:.84rem; }
.metadata-table { border:1px solid #dfe8f0; border-radius:14px; overflow:hidden; }
.metadata-row { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr); gap:14px; padding:10px 12px; border-bottom:1px solid #e8eef4; background:#fff; font-size:.79rem; }
.metadata-row:last-child { border-bottom:0; }
.metadata-key { color:#5f7488; font-weight:700; overflow-wrap:anywhere; }
.metadata-value { color:#253f5c; overflow-wrap:anywhere; }
.danger-button { border:0; border-radius:11px; padding:11px 15px; font:inherit; font-weight:750; cursor:pointer; color:#a63f3f; background:#fff0f0; }
.danger-button:hover { background:#ffe4e4; }

@media (max-width:640px) {
  .section-heading-row { align-items:flex-start; }
  .section-heading-row .text-link { display:none; }
  .category-chips { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; margin-right:-12px; }
  .category-chip { white-space:nowrap; }
  .metadata-row { grid-template-columns:1fr; gap:4px; }
  .image-preview-wrap { min-height:130px; padding:8px; }
}

/* Image tool controls v1.8 */
.image-preview-wrap.zoomable {
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  max-height: 68vh;
  scroll-behavior: smooth;
}
.image-preview-wrap.zoomable .image-preview {
  flex: 0 0 auto;
  margin: auto;
}
.zoom-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 16px;
  flex-wrap: wrap;
}
.zoom-label {
  color: #526a82;
  font-size: .82rem;
  font-weight: 750;
  margin-right: 2px;
}
.zoom-button,
.zoom-fit {
  border: 1px solid #cbdbe8;
  background: #fff;
  color: #244d71;
  border-radius: 9px;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-weight: 800;
  cursor: pointer;
}
.zoom-button:hover,
.zoom-fit:hover { background: #f3f8fc; }
.zoom-range { width: min(240px, 42vw); }
.zoom-value {
  min-width: 46px;
  color: #526a82;
  font-size: .82rem;
  font-weight: 750;
}
.download-name-box {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid #dce8f2;
  border-radius: 14px;
  background: #fbfdff;
}
.download-name-box .inline-check { margin-bottom: 12px; }
.download-name-box .field-label { margin-bottom: 0; }

@media (max-width: 640px) {
  .zoom-controls { gap: 6px; }
  .zoom-range { flex: 1 1 140px; width: auto; }
  .image-preview-wrap.zoomable { max-height: 60vh; justify-content: flex-start; }
}

/* Unified image editor v1.9 */
.image-editor-card{max-width:1240px}.editor-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:24px;align-items:start}.editor-stage{min-width:0}.editor-preview-wrap{min-height:420px;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,#f4f6f8 25%,transparent 25%),linear-gradient(-45deg,#f4f6f8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f4f6f8 75%),linear-gradient(-45deg,transparent 75%,#f4f6f8 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;overflow:auto}.editor-controls{border:1px solid #e5e9ee;border-radius:18px;padding:16px;background:#fff;position:sticky;top:16px}.editor-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.editor-tabs button{border:1px solid #dfe5ea;background:#f7f9fa;border-radius:999px;padding:8px 11px;cursor:pointer}.editor-tabs button.active{background:#111;color:#fff;border-color:#111}.editor-panel h2{margin:4px 0 14px;font-size:1.15rem}.editor-panel .primary-button{margin-top:12px;width:100%}.editor-history{border-top:1px solid #edf0f2;margin-top:18px;padding-top:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:850px){.editor-layout{grid-template-columns:1fr}.editor-controls{position:static}.editor-preview-wrap{min-height:280px}}

.metadata-editor-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:22px;align-items:start}.metadata-editor-layout .image-preview-wrap{min-height:260px;display:flex;align-items:center;justify-content:center}@media(max-width:760px){.metadata-editor-layout{grid-template-columns:1fr}}

/* Image preview zoom correction v2.0 */
.image-preview-wrap.zoomable .image-preview,
.editor-preview-wrap .image-preview {
  max-height: none !important;
  height: auto;
  object-fit: contain;
}
.image-preview-wrap.zoomable {
  align-items: flex-start;
  justify-content: flex-start;
}
.editor-preview-wrap {
  align-items: flex-start;
  justify-content: flex-start;
}

/* v2.1 unified image editor */
.editor-filebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:18px;align-items:end;margin:18px 0;padding:16px 18px;border:1px solid #dbe7f3;border-radius:16px;background:#f8fbfe}.editor-file-summary{display:flex;flex-direction:column;gap:5px;min-width:0}.compact-field{margin:0}.editor-export-bar{position:sticky;bottom:14px;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:14px 16px;border:1px solid #cfe0ef;border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(25,55,85,.14);backdrop-filter:blur(8px)}.editor-export-bar>div{display:flex;flex-direction:column;gap:3px}.editor-export-bar span{color:#637b91;font-size:.92rem}.editor-export-bar.is-ready{border-color:#7fb6ef;box-shadow:0 10px 34px rgba(22,115,210,.18)}.editor-preview-wrap{overflow:auto;min-height:320px;display:flex;align-items:flex-start;justify-content:center;padding:12px}.editor-preview-wrap canvas{flex:0 0 auto;display:block}.image-editor-card .drop-zone{margin-bottom:12px}@media(max-width:760px){.editor-filebar{grid-template-columns:1fr}.editor-export-bar{bottom:8px;align-items:stretch;flex-direction:column}.editor-export-bar .primary-button{width:100%}.editor-preview-wrap{min-height:220px}}
.compression-summary{display:flex;flex-direction:column;gap:.25rem;padding:14px 16px;margin:10px 0 14px;border:1px solid #dbe7f3;border-radius:14px;background:#f8fbff}.compression-summary span{color:#607b96;font-size:.92rem}.editor-panel #compressionResult{display:block;margin-top:10px;font-weight:700}

.compression-preview-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.compression-preview-actions .field-help{margin:0;flex:1;min-width:220px}.file-preview-panel{margin-top:16px;padding:14px;border:1px solid #dbe7f3;border-radius:16px;background:#f8fbff}.file-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.file-preview-head span{color:#607b96;font-size:.88rem}.file-preview-stage{display:flex;align-items:center;justify-content:center;min-height:240px;max-height:520px;overflow:auto;border-radius:12px;background:linear-gradient(45deg,#f1f4f7 25%,transparent 25%),linear-gradient(-45deg,#f1f4f7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f4f7 75%),linear-gradient(-45deg,transparent 75%,#f1f4f7 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.file-preview-stage img{display:block;max-width:100%;max-height:500px;object-fit:contain}.file-preview-panel .secondary-button{margin-top:12px}@media(max-width:760px){.file-preview-head{align-items:flex-start;flex-direction:column}.compression-preview-actions{align-items:stretch}.compression-preview-actions .secondary-button{width:100%}}
\n/* Image crop direct-manipulation preview — v1.26 */\n.editor-preview-wrap{position:relative}\n.crop-overlay{position:absolute;z-index:8;overflow:hidden;pointer-events:none}\n.crop-box{position:absolute;box-sizing:border-box;border:2px solid rgba(255,255,255,.98);outline:1px solid rgba(19,42,65,.78);box-shadow:0 0 0 9999px rgba(11,20,30,.48);cursor:move;pointer-events:auto;touch-action:none;user-select:none}\n.crop-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,transparent 33.15%,rgba(255,255,255,.58) 33.15%,rgba(255,255,255,.58) 33.55%,transparent 33.55%,transparent 66.45%,rgba(255,255,255,.58) 66.45%,rgba(255,255,255,.58) 66.85%,transparent 66.85%),linear-gradient(to bottom,transparent 33.15%,rgba(255,255,255,.58) 33.15%,rgba(255,255,255,.58) 33.55%,transparent 33.55%,transparent 66.45%,rgba(255,255,255,.58) 66.45%,rgba(255,255,255,.58) 66.85%,transparent 66.85%)}\n.crop-handle{position:absolute;width:18px;height:18px;padding:0;border:2px solid #fff;border-radius:50%;background:#1478dc;box-shadow:0 1px 4px rgba(0,0,0,.28);z-index:2;touch-action:none}\n.crop-handle-nw{left:4px;top:4px;cursor:nwse-resize}.crop-handle-n{left:50%;top:4px;transform:translateX(-50%);cursor:ns-resize}.crop-handle-ne{right:4px;top:4px;cursor:nesw-resize}.crop-handle-e{right:4px;top:50%;transform:translateY(-50%);cursor:ew-resize}.crop-handle-se{right:4px;bottom:4px;cursor:nwse-resize}.crop-handle-s{left:50%;bottom:4px;transform:translateX(-50%);cursor:ns-resize}.crop-handle-sw{left:4px;bottom:4px;cursor:nesw-resize}.crop-handle-w{left:4px;top:50%;transform:translateY(-50%);cursor:ew-resize}\n.crop-box.fixed-ratio .crop-handle{display:none}\n.crop-help{margin:-4px 0 14px;line-height:1.45}\n.editor-panel input[type=range]:disabled{opacity:.38;cursor:not-allowed}\n@media(max-width:760px){.crop-handle{width:24px;height:24px}.crop-handle-nw,.crop-handle-n,.crop-handle-ne{top:5px}.crop-handle-se,.crop-handle-s,.crop-handle-sw{bottom:5px}.crop-handle-nw,.crop-handle-w,.crop-handle-sw{left:5px}.crop-handle-ne,.crop-handle-e,.crop-handle-se{right:5px}}\n
/* Home + Services polish — v1.27 */
.home-page .page-shell{padding-top:34px;padding-bottom:24px}
.home-page .hero{transform:translateY(-1.5vh)}
.home-page .brand{margin-bottom:10px}
.home-page .brand-logo{width:clamp(340px,58vw,610px)}
.home-page .hero h1{margin-bottom:28px;font-size:clamp(1.28rem,2.55vw,1.9rem)}
.home-page .search-box{height:68px;max-width:780px}
.home-page .quick-actions{margin-top:20px;gap:4px 8px}
.home-page .quick-action{font-weight:600;color:#60758d;padding:8px 10px}
.home-page .coming-soon{margin-top:10px}
.services-main{width:min(1120px,calc(100% - 36px));margin:0 auto;padding:54px 0 84px}
.services-hero{max-width:860px;margin-bottom:52px}
.services-hero h1{margin:9px 0 14px;font-size:clamp(2.25rem,5.2vw,4rem);line-height:1.03;letter-spacing:-.045em;color:#12355d}
.services-hero p{margin:0;max-width:760px;color:#667b91;font-size:1.08rem;line-height:1.7}
.services-section{margin-top:58px}
.services-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,520px);gap:28px;align-items:end;margin-bottom:22px}
.services-section-heading h2{margin:5px 0 0;font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.03em;color:#173a61}
.services-section-heading>p{margin:0;color:#71869a;line-height:1.65}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.service-card{position:relative;background:#fff;border:1px solid #dfe9f2;border-radius:22px;padding:26px;box-shadow:0 10px 30px rgba(27,74,119,.055)}
.service-card.featured-service{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(300px,.9fr);column-gap:18px;align-items:start}
.featured-service .service-icon{grid-row:1/5}
.featured-service h3{grid-column:2}
.featured-service>p:first-of-type{grid-column:2}
.featured-service ul{grid-column:3;grid-row:1/4;margin-top:0}
.featured-service .service-note{grid-column:2/4}
.service-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eef6ff;color:var(--blue);font-weight:850;font-size:1.05rem;margin-bottom:17px}
.service-card h3{margin:0 0 9px;color:#173a61;font-size:1.16rem;line-height:1.3}
.service-card>p{margin:0;color:#6c8195;line-height:1.6}
.service-card ul{margin:16px 0 0;padding-left:19px;color:#587189;line-height:1.65;font-size:.92rem}
.service-card li+li{margin-top:4px}
.service-note{margin-top:18px!important;padding-top:16px;border-top:1px solid #e9eff5;font-size:.87rem}
.service-prompt{margin-top:18px!important;padding:13px 14px;border-radius:12px;background:#f3f8fd;color:#365d83!important;font-weight:650;font-size:.9rem}
.coming-services{padding-top:8px}
.coming-partner-note{display:flex;gap:9px 14px;align-items:baseline;flex-wrap:wrap;margin:0 0 20px;padding:15px 17px;border:1px solid #dbe8f3;border-radius:14px;background:#f7fbff;color:#607991;font-size:.9rem;line-height:1.55}
.coming-partner-note strong{color:#315a82}
.coming-services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.coming-card{padding-top:25px}
.coming-card .service-icon{margin-top:5px}
.status-pill{display:inline-flex;align-items:center;border-radius:999px;background:#eef6ff;color:#2872b7;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:6px 9px;margin-bottom:14px}
.service-detail{margin-top:13px!important;font-size:.9rem}
.services-vision{margin-top:24px;padding:34px;border-radius:24px;background:linear-gradient(135deg,#11395f,#0d65ad);color:#fff;box-shadow:0 18px 45px rgba(16,68,112,.18)}
.services-vision .eyebrow{color:#9fd2ff}
.services-vision h2{margin:7px 0 10px;max-width:760px;font-size:clamp(1.6rem,3vw,2.25rem);letter-spacing:-.03em}
.services-vision p{margin:0;max-width:850px;color:rgba(255,255,255,.82);line-height:1.7}
.services-footer{padding-bottom:32px}
@media(max-width:900px){.coming-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card.featured-service{grid-template-columns:auto minmax(0,1fr)}.featured-service .service-icon{grid-row:1/3}.featured-service ul,.featured-service .service-note{grid-column:1/-1;grid-row:auto}.featured-service ul{margin-top:18px}}
@media(max-width:640px){.home-page .page-shell{padding:22px 14px 18px}.home-page .hero{transform:translateY(-1vh)}.home-page .brand-logo{width:min(88vw,480px)}.home-page .hero h1{margin-bottom:21px;font-size:1.2rem}.home-page .search-box{min-height:60px}.home-page .quick-actions{margin-top:15px;gap:1px 3px}.home-page .quick-action{font-size:.84rem;padding:7px 8px}.home-page .quick-action svg{width:16px;height:16px}.home-page .coming-soon{font-size:.8rem;margin-top:8px}.services-main{width:min(100% - 24px,1120px);padding:32px 0 58px}.services-hero{margin-bottom:38px}.services-hero h1{font-size:2.22rem}.services-hero p{font-size:1rem}.services-section{margin-top:42px}.services-section-heading{grid-template-columns:1fr;gap:10px;margin-bottom:17px}.services-section-heading>p{font-size:.92rem}.service-grid,.coming-services-grid{grid-template-columns:1fr}.service-card.featured-service{display:block}.service-card{padding:21px}.service-card.featured-service .service-icon{margin-bottom:17px}.service-card.featured-service ul{margin-top:16px}.services-vision{padding:25px 22px}.site-header .header-nav{gap:2px}.site-header .header-link{padding:9px 8px;font-size:.84rem}}


/* Site + legal refinement — v1.28 */
:focus-visible{outline:3px solid rgba(8,119,233,.42);outline-offset:3px}
.home-page .footer{padding:0}
.site-footer{margin-top:auto;border-top:1px solid #e6edf4;background:rgba(255,255,255,.76);color:#8191a1;font-size:.78rem}
.footer-inner{width:min(1120px,calc(100% - 36px));min-height:58px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
.footer-inner nav{display:flex;align-items:center;justify-content:flex-end;gap:6px 16px;flex-wrap:wrap}
.footer-inner a{text-decoration:none;color:#708399}.footer-inner a:hover{color:var(--blue)}
.compact-coming-grid .coming-card{padding:22px}.compact-coming-grid .status-pill{margin-bottom:11px}.compact-coming-grid .service-icon{margin-bottom:13px}.compact-coming-grid .coming-card p{font-size:.91rem;line-height:1.58}
.legal-main{width:min(920px,calc(100% - 32px));margin:0 auto;padding:46px 0 70px}.legal-card{background:#fff;border:1px solid #dfe9f2;border-radius:24px;padding:clamp(24px,4vw,44px);box-shadow:0 15px 45px rgba(27,74,119,.07)}
.legal-card h1{margin:8px 0 4px;color:#12355d;font-size:clamp(2rem,5vw,3.35rem);letter-spacing:-.04em}.legal-updated{margin:0 0 28px;color:#91a1b0;font-size:.86rem}.legal-lead{font-size:1.08rem!important;color:#566f87!important;line-height:1.72!important}
.legal-card h2{margin:30px 0 8px;color:#193f67;font-size:1.2rem}.legal-card p{color:#667d92;line-height:1.7}.legal-card strong{color:#304f6d}.legal-callout{margin-top:28px;padding:16px 18px;border:1px solid #d5e6f4;border-radius:14px;background:#f6fbff;color:#55728d;line-height:1.6}
@media(max-width:640px){.footer-inner{width:min(100% - 28px,1120px);align-items:flex-start;flex-direction:column;gap:8px;padding:16px 0 18px}.footer-inner nav{justify-content:flex-start}.legal-main{padding:28px 0 50px}.legal-card{border-radius:20px}.home-page .footer-inner{align-items:center;text-align:center}.home-page .footer-inner nav{justify-content:center}.home-page .quick-action{min-height:40px}}


/* Discover information hub - v1.29 */
.discover-main{width:min(1120px,calc(100% - 36px));margin:0 auto;padding:54px 0 84px}
.discover-hero,.topic-hero{max-width:900px;margin-bottom:46px}
.discover-hero h1,.topic-hero h1{margin:9px 0 15px;font-size:clamp(2.35rem,5.4vw,4.2rem);line-height:1.02;letter-spacing:-.047em;color:#12355d}
.discover-hero>p,.topic-hero>p{margin:0;max-width:820px;color:#667b91;font-size:1.08rem;line-height:1.72}
.discover-principle{margin-top:25px;max-width:860px;padding:16px 18px;border:1px solid #d7e8f7;border-radius:16px;background:#f4faff;color:#4f6e89;line-height:1.6}
.discover-principle strong{color:#1f4e78}
.discover-section{margin-top:58px}
.discover-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,520px);gap:28px;align-items:end;margin-bottom:22px}
.discover-section-heading h2{margin:5px 0 0;font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.03em;color:#173a61}
.discover-section-heading>p{margin:0;color:#71869a;line-height:1.65}
.discover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.discover-card{display:flex;flex-direction:column;min-height:270px;padding:27px;background:#fff;border:1px solid #dfe9f2;border-radius:22px;text-decoration:none;box-shadow:0 10px 30px rgba(27,74,119,.055);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.discover-card:hover{transform:translateY(-3px);border-color:#b7d7f7;box-shadow:0 15px 36px rgba(27,74,119,.11)}
.discover-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#eef6ff;color:var(--blue);font-size:.8rem;font-weight:900;letter-spacing:.03em;margin-bottom:18px}
.discover-card h3{margin:0 0 9px;color:#173a61;font-size:1.2rem}
.discover-card p{margin:0;color:#6c8195;line-height:1.65}
.discover-link{margin-top:auto;padding-top:22px;color:var(--blue);font-size:.86rem;font-weight:800}
.methodology-card{background:linear-gradient(145deg,#f8fbff,#fff)}
.flow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.flow-grid article{background:#fff;border:1px solid #dfe9f2;border-radius:18px;padding:22px}
.flow-grid article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eef6ff;color:var(--blue);font-weight:850;font-size:.78rem;margin-bottom:15px}
.flow-grid h3{margin:0 0 7px;color:#173a61;font-size:1rem}
.flow-grid p{margin:0;color:#71869a;line-height:1.55;font-size:.9rem}
.discover-note{margin-top:62px;padding:30px;border:1px solid #cfe2f4;border-radius:24px;background:linear-gradient(145deg,#f3f9ff,#fff)}
.discover-note h2{margin:7px 0 10px;color:#173a61;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.025em}
.discover-note p{margin:0;max-width:900px;color:#60798f;line-height:1.7}
.topic-main{max-width:1060px}
.topic-hero{margin-bottom:30px}
.topic-hero h1{font-size:clamp(2.2rem,5vw,3.75rem)}
.topic-section{margin-top:24px;padding:28px;background:#fff;border:1px solid #dfe9f2;border-radius:22px;box-shadow:0 9px 28px rgba(27,74,119,.045)}
.topic-section h2{margin:0 0 12px;color:#173a61;font-size:clamp(1.4rem,2.7vw,2rem);letter-spacing:-.025em}
.topic-section>p{margin:0;color:#61798e;line-height:1.72}
.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.decision-grid article{padding:18px;border:1px solid #e3ebf2;border-radius:16px;background:#fbfdff}
.decision-grid h3{margin:0 0 7px;color:#234d74;font-size:1rem}
.decision-grid p{margin:0;color:#71869a;line-height:1.55;font-size:.91rem}
.topic-list{margin:16px 0 0;padding-left:21px;color:#5c768d;line-height:1.72}
.topic-list li+li{margin-top:7px}
.two-topic-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr);gap:24px;align-items:center}
.topic-callout{padding:18px;border:1px solid #cfe2f4;border-radius:16px;background:#f4faff;color:#52708a;line-height:1.6}
.topic-callout strong{color:#204f79}
.principles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.principles-grid article{position:relative;padding:20px 20px 20px 58px;border:1px solid #e3ebf2;border-radius:16px;background:#fbfdff}
.principles-grid article>span{position:absolute;left:18px;top:20px;color:#7ca8cf;font-size:.72rem;font-weight:900;letter-spacing:.06em}
.principles-grid h3{margin:0 0 7px;color:#234d74;font-size:1rem}
.principles-grid p{margin:0;color:#71869a;line-height:1.55;font-size:.91rem}
@media(max-width:900px){.flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.discover-main{width:min(100% - 24px,1120px);padding:32px 0 58px}.discover-hero,.topic-hero{margin-bottom:30px}.discover-hero h1,.topic-hero h1{font-size:2.25rem}.discover-hero>p,.topic-hero>p{font-size:1rem}.discover-section{margin-top:42px}.discover-section-heading{grid-template-columns:1fr;gap:10px}.discover-grid,.decision-grid,.principles-grid,.flow-grid,.two-topic-columns{grid-template-columns:1fr}.discover-card{min-height:225px;padding:22px}.topic-section{padding:21px}.discover-note{padding:24px 21px}.site-header img{width:158px}.site-header .header-nav{gap:0}.site-header .header-link{padding:9px 7px;font-size:.8rem}}
