.nc { --nc-accent:#a33d13; --nc-ink:#242424; --nc-line:#d6ccc4; color:var(--nc-ink); font:400 16px/1.45 system-ui,sans-serif; }
.nc [hidden], .nc[hidden] { display:none!important; }
.nc *, .nc *::before, .nc *::after { box-sizing:border-box; }
.nc h2 { font-size:1.35rem; font-weight:750; line-height:1.25; color:var(--nc-ink); margin:0 0 .6rem; text-transform:none; }
.nc p { color:var(--nc-ink); font-size:1rem; line-height:1.45; margin:0 0 .65rem; }
.nc a { color:#87330f; text-decoration:underline; }
.nc button { font:inherit; cursor:pointer; text-transform:none; letter-spacing:normal; }
.nc :focus-visible { outline:3px solid #1762a8; outline-offset:3px; }
.nc-banner { position:fixed; inset:auto 0 0; z-index:20000; display:flex; gap:1.5rem; align-items:center; padding:1.3rem max(1.1rem,calc((100vw - 1200px)/2)); background:#fffaf5; border-top:3px solid var(--nc-accent); box-shadow:0 -5px 25px #0002; max-height:78dvh; overflow:auto; }
.nc-banner-copy { flex:1 1 620px; min-width:0; }
.nc-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; align-items:stretch; }
.nc-banner .nc-actions { flex:0 1 390px; min-width:310px; }
.nc-button { border:2px solid var(--nc-accent); padding:.7rem .95rem; min-height:48px; border-radius:5px; line-height:1.25; overflow-wrap:anywhere; }
.nc-choice, .nc-save { background:var(--nc-accent); color:#fff; font-weight:650; }
.nc-choice:hover, .nc-save:hover { background:#812e0b; border-color:#812e0b; }
.nc-settings { background:#fffaf5; color:var(--nc-ink); border-color:#75685e; }
.nc-settings:hover { background:#f0e5dc; }
.nc-banner .nc-settings { grid-column:1/-1; }
.nc-reopen { position:fixed; left:1rem; bottom:.75rem; z-index:19990; padding:.5rem .8rem; min-height:42px; border:1px solid #75685e; border-radius:5px; background:#fffaf5; color:var(--nc-ink); box-shadow:0 2px 8px #0002; font-size:.875rem!important; }
.nc-dialog { width:min(680px,calc(100vw - 2rem)); max-width:680px; max-height:calc(100dvh - 2rem); padding:0; border:1px solid var(--nc-line); border-radius:10px; background:#fffaf5; color:var(--nc-ink); box-shadow:0 12px 50px #0005; overflow:auto; overscroll-behavior:contain; }
.nc-dialog::backdrop { background:rgb(20 15 12 / 62%); }
.nc-dialog-content { padding:1.5rem; }
.nc-purpose { border-top:1px solid var(--nc-line); padding:.9rem 0 .25rem; }
.nc-purpose label { display:flex; align-items:center; gap:.55rem; cursor:pointer; margin:0 0 .45rem; color:var(--nc-ink); }
.nc-purpose input { flex:none; width:1.2rem; height:1.2rem; margin:0; accent-color:var(--nc-accent); }
.nc-purpose strong { font-weight:700; }
.nc-purpose p { margin-left:1.75rem; font-size:.94rem; }
.nc-notice { padding:.7rem .85rem; background:#f3e7d9; border-left:3px solid var(--nc-accent); border-radius:3px; }
.nc-status:empty { display:none; }
.nc-status { margin-top:.65rem!important; font-weight:600; }
.nc-dialog .nc-actions { margin-top:1rem; }
@media(max-width:850px) { .nc-banner { flex-direction:column; align-items:stretch; gap:.6rem; padding:1rem; } .nc-banner-copy,.nc-banner .nc-actions { flex:none; min-width:0; } }
@media(max-width:420px) { .nc-banner h2 { font-size:1.15rem; } .nc-banner p { font-size:.9rem; } .nc-button { padding:.65rem .45rem; font-size:.9rem!important; } .nc-dialog { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); } .nc-dialog-content { padding:1rem; } .nc-purpose p { margin-left:0; } }
@media(prefers-reduced-motion:reduce) { .nc * { scroll-behavior:auto; } }
