:root{--paper: #f3eddd;--card: #faf6ea;--ink: #272117;--ink-soft: #6d6350;--line: #c3b697;--line-soft: #dcd3bc;--seal: #b3282d;--navy: #24344d;--navy-deep: #17202f;--gold: #c9a95c;--pine: #3c5a4b;--serif: "Noto Serif KR", "Apple Myungjo", "AppleMyungjo", serif;--sans: "Noto Sans KR", -apple-system, "Apple SD Gothic Neo", sans-serif;--noise: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='linear' slope='0.05'/></feComponentTransfer></filter><rect width='140' height='140' filter='url(%23n)'/></svg>")}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background-color:var(--paper);background-image:var(--noise);line-height:1.6}button{font-family:inherit;-webkit-tap-highlight-color:transparent}.app{max-width:560px;margin:0 auto;padding:0 18px calc(72px + env(safe-area-inset-bottom))}main{animation:fade-in .25s ease}.court-header{text-align:center;padding:30px 0 18px;border-bottom:5px double var(--ink)}.court-emblem{width:46px;height:46px;margin:0 auto 10px;border:2.5px solid var(--seal);border-radius:50%;color:var(--seal);font-family:var(--serif);font-weight:900;font-size:23px;line-height:43px}.court-header h1{font-family:var(--serif);font-weight:900;font-size:22px;letter-spacing:.2em;text-indent:.2em;margin:0}.court-sub{font-size:9.5px;letter-spacing:.34em;text-indent:.34em;color:var(--ink-soft);margin:7px 0 0}.tabs{display:flex;gap:8px;margin-top:16px}.tab{flex:1;text-align:center;padding:11px 0 10px;font-family:var(--serif);font-weight:600;font-size:14px;letter-spacing:.14em;text-indent:.14em;white-space:nowrap;text-decoration:none;color:var(--ink-soft);border:1px solid var(--line);background:transparent;transition:background .15s ease,color .15s ease}.tab.active{background:var(--navy);border-color:var(--navy);color:#f3eddd}.docform{margin-top:24px;background:var(--card);background-image:var(--noise);border:1px solid var(--line);box-shadow:0 14px 34px -20px #27211773;padding:30px 22px;position:relative}.docform:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid var(--line-soft);pointer-events:none}.doc-title{text-align:center;font-family:var(--serif);font-weight:900;font-size:30px;letter-spacing:.6em;text-indent:.6em;margin:2px 0 8px}.doc-subtitle{text-align:center;font-size:12px;color:var(--ink-soft);letter-spacing:.04em;margin:0 0 26px;word-break:keep-all}.field{margin-bottom:22px;position:relative}.field-label{display:block;font-family:var(--serif);font-weight:600;font-size:13px;letter-spacing:.32em;color:var(--navy);margin-bottom:6px}input[type=text],textarea{width:100%;border:none;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-family:var(--sans);font-size:16px;color:var(--ink);padding:8px 2px;outline:none}input[type=text]:focus,textarea:focus{border-color:var(--navy);box-shadow:0 1.5px 0 var(--navy)}input::placeholder,textarea::placeholder{color:#a89c83}textarea{border:1px solid var(--line);padding:6px 12px;line-height:2em;resize:vertical;background-image:repeating-linear-gradient(transparent,transparent calc(2em - 1px),var(--line-soft) calc(2em - 1px),var(--line-soft) 2em);background-attachment:local}.field-hint{font-size:12px;color:var(--ink-soft);margin:7px 0 0;line-height:1.7}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:transparent;padding:9px 15px;font-size:15px;color:var(--ink-soft);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.chip.selected{background:var(--navy);border-color:var(--navy);color:#f3eddd;font-weight:500}.chip.spouse.selected{background:var(--seal);border-color:var(--seal)}.spouse-note{font-size:12.5px;color:var(--seal);margin:9px 0 0;line-height:1.7}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.evidence-item{position:relative;aspect-ratio:1;border:1px solid var(--line);overflow:hidden;background:#fff}.evidence-item img{width:100%;height:100%;object-fit:cover;display:block}.evidence-tag{position:absolute;left:0;bottom:0;right:0;font-size:10px;letter-spacing:.06em;text-align:center;padding:2px 0;color:#f3eddd;background:#272117a6;font-family:var(--serif)}.evidence-remove{position:absolute;top:3px;right:3px;width:22px;height:22px;border:none;border-radius:50%;background:#272117bf;color:#f3eddd;font-size:14px;line-height:22px;padding:0;cursor:pointer}.evidence-add{aspect-ratio:1;border:1.5px dashed var(--line);background:transparent;color:var(--ink-soft);font-size:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.evidence-add-plus{font-size:20px;line-height:1}.submit-btn{width:100%;margin-top:6px;background:var(--navy);color:#f3eddd;border:none;padding:17px 0;font-family:var(--serif);font-size:17px;font-weight:700;letter-spacing:.3em;text-indent:.3em;cursor:pointer}.submit-btn:active{background:var(--navy-deep)}.submit-btn:disabled{opacity:.55}.form-error{color:var(--seal);font-size:13.5px;text-align:center;margin:0 0 12px}.receipt-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#120f0abd;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .25s ease}.receipt{background:var(--card);background-image:var(--noise);border:5px double var(--ink);max-width:400px;width:100%;max-height:calc(100dvh - 40px);overflow-y:auto;padding:30px 24px 24px;text-align:center;animation:rise .4s cubic-bezier(.2,.9,.3,1.1)}.receipt-court{font-size:11px;letter-spacing:.42em;text-indent:.42em;color:var(--ink-soft);margin:0 0 14px}.receipt-title{font-family:var(--serif);font-weight:900;font-size:32px;letter-spacing:.7em;text-indent:.7em;margin:0 0 22px}.receipt-caseno-wrap{position:relative;padding:16px 0 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px}.receipt-caseno-label{font-size:11px;letter-spacing:.3em;text-indent:.3em;color:var(--ink-soft);margin:0 0 4px}.receipt-caseno{font-family:var(--serif);font-size:27px;font-weight:700;letter-spacing:.05em;margin:0}.stamp{position:absolute;right:4px;top:50%;margin-top:-36px;width:72px;height:72px;border:3px solid var(--seal);border-radius:50%;box-shadow:inset 0 0 0 2px var(--card),inset 0 0 0 3px var(--seal);color:var(--seal);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);mix-blend-mode:multiply;opacity:.92;font-family:var(--serif);animation:stamp-in .45s cubic-bezier(.25,1.5,.5,1) .35s backwards}.stamp-word{font-weight:900;font-size:18px;letter-spacing:.16em;text-indent:.16em;line-height:1.15}.stamp-date{font-size:8px;letter-spacing:0;margin-top:1px}.receipt-rows{text-align:left;margin:0 0 18px;font-size:14.5px}.receipt-rows>div{display:flex;gap:10px;padding:8px 2px;border-bottom:1px dashed var(--line-soft)}.receipt-rows dt{flex:0 0 72px;color:var(--ink-soft);font-family:var(--serif);letter-spacing:.2em}.receipt-rows dd{margin:0;font-weight:500;word-break:keep-all}.receipt-def-type{color:var(--ink-soft);font-weight:400}.receipt-note{font-family:var(--serif);font-size:13.5px;line-height:2;margin:0 0 12px;word-break:keep-all}.receipt-date{font-family:var(--serif);font-size:14px;margin:0 0 22px}.receipt-actions{display:flex;gap:8px}.btn-primary,.btn-secondary{flex:1;padding:13px 0;font-family:var(--serif);font-size:15px;font-weight:600;letter-spacing:.14em;text-indent:.14em;cursor:pointer;text-decoration:none;text-align:center}.btn-primary{background:var(--navy);color:#f3eddd;border:1px solid var(--navy)}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.case-list{padding-top:4px}.month-head{display:flex;justify-content:space-between;align-items:baseline;margin:28px 2px 12px}.month-title{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.12em;margin:0}.month-count{font-size:12px;color:var(--ink-soft)}.case-card{background:var(--card);border:1px solid var(--line);padding:14px 16px 15px;margin-bottom:10px;position:relative}.case-card.withdrawn{opacity:.55}.case-card.withdrawn .case-title{text-decoration:line-through;text-decoration-thickness:1px}.badge{position:absolute;top:14px;right:14px;font-family:var(--serif);font-size:11px;letter-spacing:.18em;text-indent:.18em;border:1px solid;padding:3px 8px}.badge-접수{color:var(--navy);border-color:var(--navy)}.badge-심리중{color:var(--gold);border-color:var(--gold)}.badge-판결완료{color:#f3eddd;background:var(--seal);border-color:var(--seal)}.badge-취하{color:var(--ink-soft);border-color:var(--line)}.case-no{font-family:var(--serif);font-size:12px;letter-spacing:.08em;color:var(--ink-soft);margin:0}.case-title{font-family:var(--serif);font-size:17.5px;font-weight:700;margin:4px 0 6px;padding-right:76px;word-break:keep-all}.case-meta{font-size:12.5px;color:var(--ink-soft);margin:0}.withdraw-btn{margin-top:11px;font-size:12.5px;background:none;border:1px solid var(--line);padding:6px 13px;color:var(--ink-soft);cursor:pointer}.empty{text-align:center;padding:64px 12px;color:var(--ink-soft);font-family:var(--serif);line-height:2.1}.empty-main{font-size:18px;font-weight:700;color:var(--ink);margin:0}.empty-sub{font-size:13.5px;margin:4px 0 28px;word-break:keep-all}.empty-cta{display:inline-block;flex:none;padding:13px 34px}.gate{min-height:100dvh;background-color:var(--navy-deep);background-image:var(--noise);color:#e9e2d0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.gate-emblem{width:66px;height:66px;border:4px double var(--gold);border-radius:50%;color:var(--gold);font-family:var(--serif);font-size:30px;font-weight:900;line-height:60px;margin-bottom:24px}.gate-title{font-family:var(--serif);font-weight:700;font-size:22px;letter-spacing:.24em;text-indent:.24em;margin:0 0 10px}.gate-sub{font-size:11.5px;letter-spacing:.3em;text-indent:.3em;color:#8d97a8;margin:0 0 40px}.gate-input{background:transparent;border:none;border-bottom:2px solid #4c5a72;border-radius:0;color:#f0ead8;font-size:30px;letter-spacing:.8em;text-indent:.4em;width:208px;text-align:center;outline:none;padding:0 0 8px}.gate-input:focus{border-color:var(--gold)}.gate-input.shake{animation:shake .4s ease}.gate-error{color:#dd8b8b;margin-top:20px;font-size:13px;letter-spacing:.1em;min-height:1.5em}.courtroom{padding-top:4px}.case-head{position:relative;margin:22px 0 14px;padding-right:78px}.case-head .badge{top:2px;right:0}.case-head-title{font-family:var(--serif);font-size:20px;font-weight:900;margin:3px 0 5px;word-break:keep-all}.spouse-flag{color:var(--seal)}.mode-toggle{display:flex;gap:6px;margin-bottom:16px}.mode-toggle button{flex:1;padding:9px 0;font-family:var(--serif);font-size:13.5px;font-weight:600;letter-spacing:.14em;text-indent:.14em;border:1px solid var(--line);background:transparent;color:var(--ink-soft);cursor:pointer}.mode-toggle button.on{background:var(--ink);border-color:var(--ink);color:#f3eddd}.mode-toggle button.judge.on{background:var(--navy-deep);border-color:var(--gold);color:var(--gold)}.sect-label{font-family:var(--serif);font-weight:600;font-size:12px;letter-spacing:.3em;color:var(--navy);margin:0 0 8px}.charges{background:var(--card);border:1px solid var(--line);padding:16px 16px 14px}.charges-text{margin:0;font-size:14.5px;line-height:1.9;white-space:pre-wrap}.charges-demand{margin:10px 0 0;font-size:13px;color:var(--ink-soft);border-top:1px dashed var(--line-soft);padding-top:9px}.charges-evidence{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.charges-evidence img{width:62px;height:62px;object-fit:cover;border:1px solid var(--line)}.transcript{margin-top:6px}.say{margin:16px 0;padding-left:13px;border-left:3px solid var(--line)}.say-변호인{border-left-color:var(--navy)}.say-원고{border-left-color:var(--ink)}.say-법정모독{border-left-color:var(--seal)}.say-role{display:block;font-family:var(--serif);font-size:11.5px;font-weight:600;letter-spacing:.24em;color:var(--ink-soft);margin-bottom:4px}.say-변호인 .say-role{color:var(--navy)}.say-법정모독 .say-role{color:var(--seal)}.say p{margin:0;font-size:15px;line-height:1.9;white-space:pre-wrap;word-break:keep-all}.say-법정모독 p{color:var(--seal)}.thinking{color:var(--ink-soft);animation:pulse 1.4s ease-in-out infinite}.caret{display:inline-block;color:var(--navy);animation:blink .9s step-end infinite}.plaintiff-box{margin-top:20px;background:var(--card);border:1px solid var(--line);padding:16px}.open-note{margin:0 0 12px;font-size:13px;color:var(--ink-soft);text-align:center}.plaintiff-box .submit-btn{margin-top:12px}.verdict-strip{margin-top:20px;border:1px solid var(--line);background:var(--card);padding:16px;text-align:center}.verdict-strip p{margin:0 0 12px;font-family:var(--serif);font-size:15px}.verdict-strip .btn-primary{display:block}.bench{margin-top:20px;background-color:var(--navy-deep);background-image:var(--noise);border:4px double var(--gold);padding:20px 16px 18px;color:#e9e2d0}.bench-label{text-align:center;font-family:var(--serif);font-size:12px;letter-spacing:.34em;text-indent:.34em;color:var(--gold);margin:0}.bench-summary-note{text-align:center;font-size:12px;color:var(--gold);opacity:.85;margin:10px 0 0}.ruling-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 0}.ruling-btn{padding:24px 0;font-family:var(--serif);font-weight:900;font-size:23px;letter-spacing:.28em;text-indent:.28em;background:transparent;border:2px solid #4c5a72;color:#e2dbc7;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .06s ease}.ruling-btn:active{transform:scale(.97)}.ruling-유죄.on{background:var(--seal);border-color:var(--seal);color:#f6efdf}.ruling-기각.on{background:var(--pine);border-color:var(--pine);color:#f6efdf}.ruling-사면.on{background:var(--gold);border-color:var(--gold);color:#1e1a10}.sentencing{margin-top:18px}.bench-field-label{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.22em;color:#b9c0cd;margin-bottom:7px}.bench input[type=text]{border:1px solid #4c5a72;border-bottom-color:#4c5a72;background:#ffffff0d;color:#f0ead8;padding:11px 12px}.bench input[type=text]:focus{border-color:var(--gold);box-shadow:none}.bench input::placeholder{color:#71809a}.ai-suggest{font-size:11.5px;color:#8b93a1;margin:7px 0 0;line-height:1.7}.pronounce-btn{width:100%;margin-top:16px;padding:17px 0;background:#7e1e23;border:1px solid var(--seal);color:#f6efdf;font-family:var(--serif);font-size:17px;font-weight:900;letter-spacing:.3em;text-indent:.3em;cursor:pointer}.pronounce-btn:active{background:#641419}.pronounce-btn:disabled{opacity:.8}.contempt{margin-top:18px;border-top:1px dashed #3c4a62;padding-top:14px}.contempt-btn{width:100%;background:none;border:1px dashed #7d5252;color:#d99a9a;font-size:13px;padding:11px 0;cursor:pointer}.contempt-form{display:flex;gap:8px}.contempt-form input{flex:1;min-width:0}.contempt-impose,.contempt-cancel{border:1px solid #4c5a72;background:transparent;color:#e2dbc7;padding:0 14px;font-family:var(--serif);font-size:14px;cursor:pointer}.contempt-impose{border-color:var(--seal);color:#e8a0a0}.bench-error{color:#e08585;margin-top:12px}.verdict-card{margin-top:22px;position:relative;background:var(--card);background-image:var(--noise);border:5px double var(--ink);padding:30px 24px 22px;text-align:center;animation:rise .4s cubic-bezier(.2,.9,.3,1.1)}.vc-court{font-size:11px;letter-spacing:.42em;text-indent:.42em;color:var(--ink-soft);margin:0 0 14px}.vc-title{font-family:var(--serif);font-weight:900;font-size:34px;letter-spacing:.85em;text-indent:.85em;margin:0 0 8px}.vc-caseno{font-family:var(--serif);font-size:15px;letter-spacing:.06em;margin:0 0 18px;color:var(--ink)}.vc-ruling-stamp{position:absolute;top:66px;right:16px;width:76px;height:76px;border:3.5px solid;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;font-size:25px;letter-spacing:.14em;text-indent:.14em;transform:rotate(8deg);mix-blend-mode:multiply;opacity:.9;animation:stamp-in .45s cubic-bezier(.25,1.5,.5,1) .25s backwards}.stamp-유죄{color:var(--seal);border-color:var(--seal)}.stamp-기각{color:var(--pine);border-color:var(--pine)}.stamp-사면{color:#a3843c;border-color:#a3843c}.vc-rows{text-align:left;margin:0 0 6px;font-size:14px;border-top:1px solid var(--line)}.vc-rows>div{display:flex;gap:10px;padding:8px 2px;border-bottom:1px dashed var(--line-soft)}.vc-rows dt{flex:0 0 64px;color:var(--ink-soft);font-family:var(--serif);letter-spacing:.2em}.vc-rows dd{margin:0;font-weight:500;word-break:keep-all}.vc-opinion{text-align:left;margin:16px 2px 20px;min-height:3em}.op-head{text-align:center;font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.7em;text-indent:.7em;margin:20px 0 10px}.vc-opinion>p{font-family:var(--serif);font-size:14.5px;line-height:2.05;margin:0 0 8px;word-break:keep-all}.vc-date{font-family:var(--serif);font-size:14px;margin:0 0 6px}.vc-judge{font-family:var(--serif);font-size:15.5px;font-weight:600;letter-spacing:.2em;margin:0 0 18px}.vc-seal{display:inline-block;width:30px;height:30px;line-height:27px;border:2px solid var(--seal);border-radius:50%;color:var(--seal);font-weight:900;font-size:15px;letter-spacing:0;text-indent:0;margin-left:8px;transform:rotate(-8deg) translateY(4px);mix-blend-mode:multiply}.vc-final{font-size:11px;color:var(--ink-soft);letter-spacing:.12em;border-top:1px solid var(--line);padding-top:12px;margin:0}.vc-hint{text-align:center;font-size:12px;color:var(--ink-soft);margin:14px 0 0}.vc-actions{display:flex;gap:8px;margin-top:12px}.case-card.clickable{cursor:pointer}.precedents{padding-top:4px}.stats{margin-top:22px;background-color:var(--navy-deep);background-image:var(--noise);border:4px double var(--gold);padding:18px 16px 16px;color:#e9e2d0}.stats-label{text-align:center;font-family:var(--serif);font-size:12px;letter-spacing:.34em;text-indent:.34em;color:var(--gold);margin:0 0 16px}.stats-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tile{border:1px solid #3c4a62;padding:12px 0 10px;text-align:center;display:flex;flex-direction:column}.tile-num{font-family:var(--serif);font-size:28px;font-weight:700;line-height:1.1;color:#f0ead8}.tile-cap{font-size:11px;letter-spacing:.16em;text-indent:.16em;color:#9aa3b3;margin-top:4px}.ratio{display:flex;height:10px;margin:18px 0 8px;background:#2b3648;overflow:hidden}.ratio-seg{display:block;flex-basis:0}.seg-유죄{background:var(--seal)}.seg-기각{background:#6f9a85}.seg-사면{background:var(--gold)}.ratio-legend{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;font-size:12.5px;color:#d5cdb9}.ratio-legend em{font-style:normal;color:#8b93a1;margin-left:3px}.dot{display:inline-block;width:9px;height:9px;margin-right:5px;vertical-align:-1px}.type-dist{list-style:none;margin:16px 0 0;padding:12px 0 0;border-top:1px dashed #3c4a62}.type-dist li{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:3px 0}.type-name{flex:0 0 44px;font-family:var(--serif);letter-spacing:.1em;color:#d5cdb9}.type-bar{flex:1;height:6px;background:#2b3648}.type-bar>span{display:block;height:100%;background:#8b93a1}.type-num{flex:0 0 34px;text-align:right;color:#9aa3b3}.prec-list{list-style:none;margin:18px 0 0;padding:0}.prec-item{display:flex;gap:12px;align-items:flex-start;position:relative;background:var(--card);border:1px solid var(--line);padding:14px 14px 14px 12px;margin-bottom:10px;text-decoration:none;color:inherit}.prec-item:active{background:#f1ebda}.prec-ruling{flex:0 0 auto;writing-mode:vertical-rl;font-family:var(--serif);font-weight:900;font-size:15px;letter-spacing:.3em;padding:6px 4px;border-left:3px solid;line-height:1}.ruling-tag-유죄{color:var(--seal);border-color:var(--seal)}.ruling-tag-기각{color:var(--pine);border-color:var(--pine)}.ruling-tag-사면{color:#a3843c;border-color:#a3843c}.prec-body{flex:1;min-width:0;display:flex;flex-direction:column;padding-right:64px}.prec-title{font-family:var(--serif);font-size:16.5px;font-weight:700;margin:3px 0 4px;word-break:keep-all}.prec-meta{font-size:12px;color:var(--ink-soft)}.prec-sentence{font-size:12.5px;color:var(--ink);margin-top:6px;padding-top:6px;border-top:1px dashed var(--line-soft);word-break:keep-all}.repeat-badge{position:absolute;top:12px;right:12px;font-family:var(--serif);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--seal);border:1.5px solid var(--seal);padding:2px 7px;transform:rotate(-4deg)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}@keyframes stamp-in{0%{transform:rotate(-30deg) scale(2.4);opacity:0}55%{opacity:1}to{transform:rotate(-12deg) scale(1);opacity:.92}}@keyframes blink{50%{opacity:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important}}
