:root { --sorion-ink:#193a32; --sorion-muted:#526e64; --sorion-surface:#ffffffd9; --sorion-accent:#226651; }
body.sorion-v2 { display:block; width:100%; min-width:0; height:auto; min-height:100svh; margin:0; overflow:visible; color:var(--sorion-ink); background:radial-gradient(ellipse at 8% 0%,#deeee7,transparent 52%),radial-gradient(ellipse at 98% 40%,#e4edf7,transparent 45%),#eff4f2; }
.sorion-v2 *, .sorion-v2 *::before,.sorion-v2 *::after { box-sizing:border-box; }
.sorion-v2 button,.sorion-v2 input,.sorion-v2 select { font:inherit; }
.sorion-v2 button:focus-visible,.sorion-v2 a:focus-visible { outline:3px solid var(--sorion-accent); outline-offset:3px; }
.sorion-public-header { display:flex; width:100%; max-width:1280px; margin:0 auto; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; min-height:90px; padding:20px 24px; }
.sorion-public-brand { display:flex; align-items:baseline; gap:12px; color:#194d3e; text-decoration:none; font-size:25px; font-weight:800; letter-spacing:-.035em; }
.sorion-public-brand span { color:#57736a; font-size:13px; font-weight:600; letter-spacing:0; }
.sorion-public-header nav { display:flex; flex-wrap:wrap; gap:8px; }
.sorion-public-header nav a { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; border-radius:10px; background:#ffffff90; color:#34584a; font-size:14px; font-weight:650; text-decoration:none; }
.sorion-v2 .auth-page { display:grid; grid-template-columns:minmax(0,1fr); width:calc(100% - 48px); max-width:760px; min-height:0; margin:24px auto 64px; border:1px solid white; border-radius:18px; background:var(--sorion-surface); overflow:visible; }
.sorion-v2 .auth-visual { display:none; }
.sorion-v2 .auth-form-zone { min-width:0; width:100%; padding:clamp(24px,5vw,56px); background:transparent; }
.sorion-v2 .form-container { max-width:560px; width:100%; margin:0 auto; }
.sorion-v2 .form-brand { display:none; }
.sorion-v2 .form-title { color:#173f32; font-size:30px; letter-spacing:-.035em; }
.sorion-v2 .form-desc { color:#557268; font-size:14px; line-height:1.7; }
.sorion-v2 .field-input { min-width:0; min-height:48px; border-radius:10px; background:#fff; border-color:#d3e1da; font-size:15px; }
.sorion-v2 .field-label { color:#355749; font-size:14px; }
.sorion-v2 .submit-btn { min-height:48px; border:0; border-radius:10px; background:#226651; color:white; }
.sorion-v2 .wrap { width:100%; max-width:1152px; margin:0 auto; padding:24px 24px 72px; }
.sorion-v2 .wrap .doc { min-width:0; padding:clamp(22px,5vw,56px); border:1px solid white; border-radius:16px; background:var(--sorion-surface); }
.sorion-v2 .doc p,.sorion-v2 .doc li { max-width:80ch; overflow-wrap:anywhere; }
.sorion-v2 .doc .eyebrow { display:none; }
.sorion-v2 .doc .title { margin-top:0; color:#1d4738; }
.sorion-v2 .billing-shell { width:100%; max-width:1280px; min-width:0; margin:0 auto; padding:24px; }
.sorion-v2 .billing-shell-header { position:relative; top:auto; border:1px solid white; border-radius:16px; background:#ffffffbd; }
.sorion-v2 .billing-shell-header-inner { max-width:1152px; flex-wrap:wrap; min-height:80px; padding:18px 22px; }
.sorion-v2 .billing-shell-main { max-width:1152px; width:100%; margin:0 auto; padding:24px 0; }
.sorion-section-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:20px 0 0; }
.sorion-section-nav a { display:inline-flex; min-height:44px; align-items:center; padding:10px 16px; border-radius:10px; color:#265a45; background:#ffffffc9; text-decoration:none; font-size:14px; }
.sorion-v2 .app-layout { display:grid; grid-template-columns:200px minmax(0,1280px); justify-content:center; align-items:start; gap:24px; width:calc(100% - 48px); max-width:1504px; margin:0 auto 40px; }
.sorion-v2 .side-panel { position:sticky; top:16px; bottom:auto; left:auto; width:100%; min-width:0; max-height:calc(100svh - 32px); overflow:auto; padding:18px 12px; border:1px solid #ffffffd9; border-radius:16px; background:#ffffff90; box-shadow:none; }
.sorion-v2 .main-canvas { width:100%; min-width:0; margin:0; padding:0; background:transparent; }
.sorion-v2 .article-container { max-width:1280px; min-width:0; width:100%; margin:0 auto; }
.sorion-v2 .article-header-section { flex-wrap:wrap; }
.sorion-v2 .side-nav .nav-link { min-height:44px; }
.sorion-v2 .ops-shell { display:grid; grid-template-columns:210px minmax(0,1280px); align-items:start; justify-content:center; gap:24px; width:calc(100% - 48px); max-width:1514px; margin:24px auto; }
.sorion-v2 .ops-rail { position:sticky; inset:auto; top:16px; width:100%; min-width:0; max-height:calc(100svh - 32px); border:1px solid #ffffffd9; border-radius:16px; background:#ffffffb8; }
.sorion-v2 .ops-workspace { min-width:0; width:100%; margin:0; }
.sorion-v2 .ops-main { width:100%; max-width:1280px; margin:0 auto; padding:28px 0; }
.sorion-v2 .ops-topbar { position:relative; border-radius:12px; background:#ffffffc9; }
.sorion-v2 .ops-header { gap:20px; flex-wrap:wrap; }
.sorion-v2 .ops-eyebrow { display:none; }
.sorion-v2 .feature-detail-shell { width:100%; max-width:1280px; margin:0 auto; }
@media(max-width:900px) {
  .sorion-v2 .app-layout,.sorion-v2 .ops-shell { grid-template-columns:minmax(0,1fr); gap:16px; }
  .sorion-v2 .side-panel { position:relative; top:auto; display:block; max-height:none; }
  .sorion-v2 .side-header { display:none; }
  .sorion-v2 .side-nav { display:flex; flex-wrap:wrap; gap:6px; }
  .sorion-v2 .side-nav .nav-label { width:100%; }
  .sorion-v2 .ops-rail { position:relative; top:auto; transform:none; max-height:none; }
  .sorion-v2 .ops-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}
@media(max-width:600px) {
  .sorion-public-header { padding:18px 16px; }
  .sorion-public-header nav a { padding-inline:10px; font-size:13px; }
  .sorion-v2 .auth-page { width:calc(100% - 32px); margin-top:8px; }
  .sorion-v2 .auth-form-zone { padding:24px 18px; }
  .sorion-v2 .wrap,.sorion-v2 .billing-shell { padding-inline:16px; }
  .sorion-v2 .app-layout,.sorion-v2 .ops-shell { width:calc(100% - 32px); }
  .sorion-v2 .billing-shell-actions { flex-wrap:wrap; }
}

body.sorion-v2:not(.page-dashboard):not(.page-dashboard_filter) .side-panel { width:100%; min-width:0; }
body.sorion-v2:not(.page-dashboard):not(.page-dashboard_filter) .article-container { width:100%; min-width:0; max-width:1280px; margin-inline:auto; }
body.sorion-v2.sorion-error { display:grid; place-items:center; padding:24px; }
.sorion-v2.sorion-error main { width:100%; max-width:560px; margin:auto; border-radius:16px; }

body.sorion-v2:not(.page-dashboard):not(.page-dashboard_filter) .side-panel { transform:none; height:auto; }
body.sorion-v2 .mobile-menu-toggle, body.sorion-v2 .mobile-menu-backdrop { display:none; }
@media(max-width:1100px) {
  .sorion-v2 .app-layout { grid-template-columns:minmax(0,1fr); }
  body.sorion-v2:not(.page-dashboard):not(.page-dashboard_filter) .side-panel { position:relative; top:auto; max-height:none; }
  .sorion-v2 .side-nav { display:flex; flex-wrap:wrap; }
  .sorion-v2 .side-header { display:none; }
}

.sorion-public { font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif; }
.sorion-public [hidden] { display:none !important; }
.public-workspace { width:100%; max-width:1280px; padding:24px 24px 48px; margin:0 auto; }
.public-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; padding:64px 0 72px; }
.public-kicker { color:#527366; font-size:14px; font-weight:650; }
.public-hero h1 { margin:24px 0; color:#183f31; font-size:clamp(36px,4.4vw,60px); line-height:1.17; letter-spacing:-.06em; word-break:keep-all; }
.public-hero p:not(.public-kicker) { color:#587266; font-size:17px; line-height:1.9; word-break:keep-all; }
.public-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px; }
.public-actions a,.sorion-public .header-cta { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:12px 20px; border:1px solid #d6e3dc; border-radius:10px; background:#ffffffa6; color:#345c48; text-decoration:none; font-size:14px; font-weight:650; }
.public-actions .primary { color:white; background:#24684f; border-color:#24684f; }
.sorion-public .header-cta { margin-top:20px; border:0; padding:8px 0; background:transparent; cursor:pointer; min-height:44px; }
.public-flow { padding:24px; min-width:0; border:1px solid white; border-radius:22px; background:#ffffffa8; box-shadow:0 22px 50px #345c4010; backdrop-filter:blur(24px) saturate(125%); }
.public-flow-head { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; padding:6px 0 24px; font-size:15px; }
.public-flow-head span { font-size:12px; color:#658073; }
.public-flow>a { display:grid; grid-template-columns:30px minmax(0,1fr) 16px; gap:16px; align-items:center; padding:22px 12px; border-top:1px solid #dce7df; color:#204b38; text-decoration:none; }
.public-flow>a>span { font-size:13px; color:#7c9688; }
.public-flow strong { font-size:17px; }
.public-flow small { display:block; margin-top:8px; color:#5b7668; font-size:13px; line-height:1.6; }
.public-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0 0 72px; padding:32px 0; border-block:1px solid #d5e1d8; }
.public-principles span { color:#668474; font-size:13px; }.public-principles h2 { font-size:21px; margin:14px 0; }.public-principles p { font-size:14px; line-height:1.7; color:#577566; }
.sorion-public .feature-directory { width:100%; max-width:1280px; padding:0; margin:0 auto 64px; }
.sorion-public .feature-directory-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:end; margin-bottom:28px; }
.sorion-public .feature-directory-heading h2 { color:#234835; font-size:32px; line-height:1.35; letter-spacing:-.04em; }
.sorion-public .feature-directory-heading p { color:#5f786a; font-size:15px; line-height:1.8; }
.sorion-public .feature-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; border:0; }
.sorion-public .feature-link-card { min-width:0; padding:26px; border:1px solid white; border-radius:14px; background:#ffffffad; text-decoration:none; }
.sorion-public .feature-link-card h3 { color:#264c38; font-size:18px; }.sorion-public .feature-link-card p { color:#60796d; font-size:14px; line-height:1.8; }.sorion-public .feature-link-card span { color:#2b6750; font-size:13px; }
.public-closing { display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; padding:36px; background:#dfece4; border-radius:16px; }.public-closing h2 { font-size:26px; }.public-closing p { font-size:14px; color:#536f5f; }.public-closing .public-actions { margin:0; }
.sorion-public footer { display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; margin-top:60px; padding:24px 0; border-top:1px solid #d2dfd7; font-size:12px; color:#678071; }.sorion-public footer img { width:120px; }.sorion-public footer p { line-height:1.8; }.sorion-public footer nav { display:flex; flex-wrap:wrap; gap:16px; }.sorion-public footer a { color:inherit; }
.sorion-public .pwa-modal-overlay { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:#152e3480; }.sorion-public .pwa-modal { width:100%; max-width:560px; max-height:calc(100svh - 48px); overflow:auto; padding:32px; border-radius:16px; background:#f9fcfa; }.sorion-public .pwa-modal-head { display:flex; justify-content:space-between; gap:16px; }.sorion-public .pwa-modal-head h2 { font-size:24px; margin:0; }.sorion-public .pwa-modal-close { width:44px; height:44px; border:0; background:#e3ece5; border-radius:8px; }.sorion-public .pwa-browser-item { display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; padding:16px 0; border-bottom:1px solid #d5e1d8; font-size:14px; }.sorion-public .pwa-modal-desc,.sorion-public .pwa-guide { color:#526e5d; font-size:14px; line-height:1.8; }
@media(max-width:900px) { .public-hero { grid-template-columns:minmax(0,1fr); gap:32px; padding-top:32px; }.public-principles { grid-template-columns:minmax(0,1fr); gap:12px; }.sorion-public .feature-directory-heading { grid-template-columns:minmax(0,1fr); gap:8px; }.sorion-public .feature-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .public-workspace { padding-inline:16px; }.public-flow { padding:18px; }.public-flow>a { padding-inline:0; gap:10px; }.sorion-public .feature-link-grid { grid-template-columns:minmax(0,1fr); }.public-closing { padding:24px; } }

.sorion-v2.auth-setup-page .card { width:100%; max-width:560px; }
.sorion-v2.auth-setup-page .wrap { min-height:0; }

body.sorion-v2.page-dashboard .side-panel,body.sorion-v2.page-dashboard_filter .side-panel { position:sticky; top:16px; bottom:auto; left:auto; width:100%; height:auto; transform:none; max-height:calc(100svh - 32px); box-shadow:none; }
body.sorion-v2.page-dashboard .app-layout,body.sorion-v2.page-dashboard_filter .app-layout { background:transparent; }
body.sorion-v2.page-dashboard .main-canvas,body.sorion-v2.page-dashboard_filter .main-canvas { min-width:0; margin:0; width:100%; }
@media(max-width:1100px) {
 body.sorion-v2.page-dashboard .side-panel,body.sorion-v2.page-dashboard_filter .side-panel { position:relative; top:auto; max-height:none; }
 body.sorion-v2.page-dashboard .meta-bar,body.sorion-v2.page-dashboard_filter .meta-bar { padding-inline:16px; }
}
