@layer t2.module {
.t2-nsfw-dialog {
    width: min(460px, calc(100vw - 32px)); box-sizing: border-box; padding: var(--t2-s6) var(--t2-s6) var(--t2-s5);
 border-top-color: rgba(255,255,255,.45);
 color: #fff;
    font-family: -apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR','Apple SD Gothic Neo',sans-serif;
    -webkit-user-select: none; user-select: none;
}
.t2-nsfw-dialog-header { display:flex; align-items:center; margin-bottom:14px; }
.t2-nsfw-dialog-icon { flex:0 0 44px; width:44px; height:44px; border-radius: var(--t2-radius-island); display:grid; place-items:center; background:rgba(255,149,0,.22); border: 1px solid rgba(255,149,0,.55); color:var(--t2-warning); }
.t2-nsfw-dialog-blocked .t2-nsfw-dialog-icon { background:rgba(255,60,60,.22); border-color:rgba(255,80,80,.55); color:var(--t2-danger); }
.t2-nsfw-dialog-icon .material-icons { font-size:23px; }
.t2-nsfw-dialog-title { line-height:1.3; }
.t2-nsfw-dialog-subtitle { margin-top:2px; color:rgba(255,200,100,.85); font-size:11px; font-weight:500; }
.t2-nsfw-dialog-blocked .t2-nsfw-dialog-subtitle { color:rgba(255,160,140,.85); }
.t2-nsfw-dialog-body { margin-bottom:var(--t2-s4); color:rgba(255,255,255,.88); font-size:13px; line-height:1.75; word-break:keep-all; overflow-wrap:anywhere; }
.t2-nsfw-dialog-body em { color:rgba(255,220,100,.98); font-style:normal; font-weight:700; }
.t2-nsfw-dialog-separator { margin-bottom:var(--t2-s4); }
.t2-nsfw-dialog-footer { display:grid; }
.t2-nsfw-timer-label { display:flex; justify-content:space-between; gap:var(--t2-s3); margin-bottom:var(--t2-s2); color:rgba(255,255,255,.55); font-size:11px; }
.t2-nsfw-timer-seconds { color:rgba(255,200,80,.8); font-variant-numeric:tabular-nums; }
.t2-nsfw-progress { overflow:hidden; }
.t2-nsfw-progress-fill { width:100%; height:100%; border-radius:inherit; transform-origin:left center; }
.t2-nsfw-progress-fill.is-running { animation-name:t2NsfwProgressShrink; animation-timing-function:linear; animation-fill-mode:forwards; }
@keyframes t2NsfwProgressShrink { from { transform:scaleX(1); } to { transform:scaleX(0); } }
.t2-nsfw-dialog-actions { display:flex; gap:var(--t2-s2); }
.t2-nsfw-dialog-button { min-height:42px; flex:1; padding:var(--t2-s2) 14px; border-radius: var(--t2-radius-island); border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.9); background:rgba(255,255,255,.1); font:600 13px/1 inherit; cursor:pointer; }
.t2-nsfw-dialog-button-warning { border-color:rgba(255,180,60,.58); background:rgba(255,149,0,.3); color:var(--t2-warning); }
.t2-nsfw-dialog-button-full { width:100%; }
.t2-nsfw-dialog-button:hover { filter:brightness(1.12); }
.t2-nsfw-dialog-button:focus-visible { outline:1px solid rgba(255,204,92,.55); outline-offset:2px; }

.t2-nsfw-status-bar-simple { display:flex; flex-direction:column; flex-shrink:0; margin-top:var(--t2-s2); padding:var(--t2-s1) var(--t2-s2); overflow:hidden; border:1px solid rgba(0,0,0,.07); border-radius: var(--t2-radius-control); }
html[data-t2editor-theme="dark"] .t2-nsfw-status-bar-simple { border-color:rgba(255,255,255,.08); }
.t2-nsfw-sb-main-row { display:flex; align-items:center; gap:var(--t2-s2); }
.t2-nsfw-status-icon-simple { flex-shrink:0; color:var(--t2-product); font-size:13px; transition:color .2s ease; }
.t2-nsfw-status-icon-simple.t2-nsfw-sb-spinning { color:var(--t2-product); animation:t2NsfwIconSpin .9s linear infinite; }
.t2-nsfw-status-icon-simple.t2-nsfw-sb-ready { color:var(--t2-success); }
@keyframes t2NsfwIconSpin { to { transform:rotate(360deg); } }
.t2-nsfw-status-text-simple { flex:1; color:var(--t2-ink-faint); font-size:11px; }
.t2-nsfw-status-badge-simple { flex-shrink:0; font-weight:700; }
.t2-nsfw-status-badge-simple.safe { background:var(--t2-success-soft); color:var(--t2-success); }
.t2-nsfw-status-badge-simple.warning { background:var(--t2-warning-soft); color:var(--t2-warning); }
.t2-nsfw-status-badge-simple.error { background:var(--t2-danger-soft); color:var(--t2-danger); }
.t2-nsfw-status-badge-simple.loading,.t2-nsfw-sb-badge--loading { background:var(--t2-product-wash); color:var(--t2-product-ink); }
.t2-nsfw-browser-resource-note { display:block; margin:var(--t2-s1) 0 0 var(--t2-s5); color:var(--t2-ink-faint); font-size:9.5px; line-height:1.35; font-weight:500; }
.t2-nsfw-model-bar { margin-top:0; overflow:hidden; opacity:0; transition:height .2s ease,margin-top .2s ease,opacity .2s ease; }
.t2-nsfw-model-bar--active { height:3px; margin-top:var(--t2-s1); opacity:1; }
.t2-nsfw-model-bar-fill { width:0; height:100%; transition:width .18s linear,background .2s ease; }
.t2-nsfw-model-bar--done .t2-nsfw-model-bar-fill { background:var(--t2-success); }
.t2-nsfw-model-bar--complete { opacity:0; }

.t2-nsfw-preview-status { position:absolute; top:0; right:0; z-index:3; display:flex; align-items:center; gap:var(--t2-s1); min-width:42px; padding:var(--t2-s1) var(--t2-s2); border-radius: var(--t2-radius-structural); color:#fff; font-size:10px; font-weight:700; }
.t2-nsfw-preview-status.safe { background:rgba(39,174,96,.94); }
.t2-nsfw-preview-status.warning { background:rgba(192,57,43,.94); }
.t2-nsfw-preview-status.loading { background:rgba(0,0,0,.78); color:var(--t2-warning); }
.t2-nsfw-preview-status.error { background:rgba(211,84,0,.95); }
.t2-nsfw-preview-status .material-icons { font-size:11px; }

.t2-safeai-notice-btn { display:inline-flex; align-items:center; gap:var(--t2-s1); min-height:34px; padding:var(--t2-s2) var(--t2-s3); border:1px solid rgba(53,111,192,.22); border-radius:999px; background:rgba(255,255,255,.96); color:var(--t2-product-ink); box-shadow:0 8px 24px rgba(0,0,0,.12); font-size:11px; font-weight:700; cursor:pointer; }
.t2-safeai-notice-btn .material-icons { font-size:15px; color:var(--t2-product); }
.t2-safeai-notice-btn:hover { background:var(--t2-product-wash); }
html[data-t2editor-theme="dark"] .t2-safeai-notice-btn { background:var(--t2-product-ink); color:var(--t2-product-tone); border-color:rgba(120,180,255,.28); }

.t2-safeai-legal-modal { width:min(660px,calc(100vw - 32px)); max-height:min(760px,calc(100dvh - 32px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; color:var(--t2-product-ink); }
html[data-t2editor-theme="dark"] .t2-safeai-legal-modal { border-color:var(--t2-product-ink); background:var(--t2-product-ink); color:var(--t2-product-wash); }
.t2-safeai-legal-header,.t2-safeai-legal-footer { display:flex; align-items:center; justify-content:space-between; }
html[data-t2editor-theme="dark"] .t2-safeai-legal-header,html[data-t2editor-theme="dark"] .t2-safeai-legal-footer { border-color:var(--t2-product-ink); }
.t2-safeai-legal-header-left { display:flex; align-items:center; gap:var(--t2-s3); min-width:0; }
.t2-safeai-legal-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius: var(--t2-radius-island); background:var(--t2-product-wash); color:var(--t2-product); }
.t2-safeai-legal-title { line-height:1.35; }
.t2-safeai-legal-version,.t2-safeai-legal-footer-note { margin-top:2px; color:var(--t2-ink-faint); font-size:11px; }
.t2-safeai-legal-close { width:36px; height:36px; display:grid; place-items:center; border:0; border-radius: var(--t2-radius-island); background:transparent; color:inherit; cursor:pointer; }
.t2-safeai-legal-close:hover { background:rgba(127,127,127,.12); }
.t2-safeai-legal-body { min-height:0; overflow:auto; -webkit-overflow-scrolling:touch; line-height:1.7; }
.t2-safeai-legal-section-title { margin:0 0 var(--t2-s2); color:var(--t2-product-ink); font-size:14px; font-weight:800; }
html[data-t2editor-theme="dark"] .t2-safeai-legal-section-title { color:var(--t2-product); }
.t2-safeai-legal-section p,.t2-safeai-legal-section ul { margin:0 0 var(--t2-s2); font-size:12.5px; }
.t2-safeai-legal-section ul { padding-left:var(--t2-s5); }
.t2-safeai-legal-divider { margin:var(--t2-s4) 0; }
html[data-t2editor-theme="dark"] .t2-safeai-legal-divider { background:var(--t2-product-ink); }
.t2-safeai-legal-chip-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--t2-s2); margin-top:var(--t2-s2); }
.t2-safeai-legal-chip { display:grid; gap:var(--t2-s1); }
html[data-t2editor-theme="dark"] .t2-safeai-legal-chip { border-color:var(--t2-product-ink); background:var(--t2-product-ink); }
.t2-safeai-legal-chip-name { font-size:12px; font-weight:800; }
.t2-safeai-legal-chip-meta { color:var(--t2-ink-faint); font-size:10px; }
.t2-safeai-legal-confirm-btn { min-height:38px; padding:var(--t2-s2) var(--t2-s4); border:0; border-radius: var(--t2-radius-island); background:var(--t2-product); color:#fff; font-weight:800; cursor:pointer; }

@media (max-width:520px) {
    .t2-nsfw-dialog { padding:var(--t2-s5) var(--t2-s5) var(--t2-s4); }
    .t2-safeai-legal-modal { width:calc(100vw - 20px); max-height:calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom))); }
    .t2-safeai-legal-chip-row { grid-template-columns:1fr; }
    .t2-safeai-legal-footer { align-items:stretch; flex-direction:column; }
    .t2-safeai-legal-confirm-btn { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
    .t2-nsfw-progress-fill,.t2-nsfw-status-icon-simple { animation:none; transition:none; }
}

/* Companion placement and aliases are owned by the shared NSFW UI module. */
.t2-safeai-notice-btn[data-t2-modal-companion] {
    position: fixed;
    right: max(14px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 999995;
}
.t2-nsfw-preview-status.suspect { background:rgba(243,156,18,.94); color:#fff; }
.t2-nsfw-preview-status.unsafe { background:rgba(231,76,60,.96); color:#fff; }
.t2-nsfw-status-badge-simple.suspect { background:var(--t2-warning-soft); color:var(--t2-warning); }
.t2-nsfw-status-badge-simple.unsafe { background:var(--t2-danger-soft); color:var(--t2-danger); }
html[data-t2editor-theme="dark"] .t2-nsfw-status-badge-simple.suspect { background:var(--t2-warning); color:var(--t2-warning); }
html[data-t2editor-theme="dark"] .t2-nsfw-status-badge-simple.unsafe { background:var(--t2-danger); color:var(--t2-danger); }
@supports (padding: env(safe-area-inset-top)) {
    .t2-safeai-legal-modal {
        padding-top:max(env(safe-area-inset-top),14px);
        padding-right:max(env(safe-area-inset-right),14px);
        padding-left:max(env(safe-area-inset-left),14px);
    }
}
@media print {
    .t2-safeai-notice-btn,
    .t2-safeai-legal-overlay,
    .t2-safeai-legal-modal { display:none !important; }
}

/* ========================================================================
   T2Editor Law-Aligned Design System — 2026-08 / NSFW status module
   ======================================================================== */
.t2-nsfw-dialog-overlay,
.t2-nsfw-dialog,
.t2-nsfw-dialog-overlay :where(h1,h2,h3,strong),
.t2-nsfw-dialog :where(h1,h2,h3,strong) { font-weight:800; }
.t2-nsfw-dialog-overlay button,
.t2-nsfw-dialog button,
html[data-t2editor-theme="dark"] .t2-nsfw-dialog-overlay,
html[data-t2editor-theme="dark"] .t2-nsfw-dialog,
/* T2Editor /law 706 — owned vertical scroll surface */
.t2-safeai-legal-body {
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
  overscroll-behavior-y: contain;
  touch-action: pan-y pinch-zoom;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.t2-safeai-legal-body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

}
