.demo-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px 24px;background:var(--paper)}.demo-shell .app-window{min-width:0;width:100%;max-width:1200px;border-radius:13px}.demo-shell .app-body{grid-template-columns:250px 1fr;height:clamp(540px,78vh,760px);overflow:hidden}.demo-shell .rules-panel{width:250px;background:#fbfaf6;min-height:0;overflow-y:auto}.demo-shell .canvas{background:#fbfaf6;min-height:0;overflow:hidden}.btn-primary{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:8px 14px;min-height:40px;border:none;border-radius:3px;background:var(--orange);color:#fff;font-size:.62rem;font-weight:700;cursor:pointer;transition:background .15s ease,box-shadow .15s ease;box-shadow:0 2px 8px #d7543433;font-family:var(--font-sans)}.btn-primary:hover:not(:disabled){background:var(--orange-dark)}.btn-primary:focus-visible{outline:2px solid var(--orange-dark);outline-offset:2px}.btn-ghost{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:7px 13px;min-height:40px;border:1px solid #cfc8ba;border-radius:3px;background:var(--white);color:var(--ink);font-size:.62rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;font-family:var(--font-sans)}.btn-ghost:hover:not(:disabled){background:#f5f2ea;border-color:#b8b0a0}.btn-ghost:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.btn-ghost.danger{color:#b03a23}.btn-ghost.danger:hover{border-color:#e0554a;background:#fbeeea}.app-bar .btn-primary,.app-bar .btn-ghost{min-height:44px}.btn-primary svg,.btn-ghost svg{width:13px;height:13px}.rs-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:0;border-radius:6px;cursor:pointer;color:#4f4b44;background:transparent;text-align:left;transition:background .15s ease;font-family:var(--font-sans);min-height:44px}.rs-item:hover{background:#eee9df}.rs-item.active{background:#eee9df;color:var(--ink);box-shadow:inset 2px 0 0 var(--orange)}.rs-item .rs-name{flex:1;font-size:.72rem;font-weight:600}.rs-item .rs-count{font-size:.58rem;font-family:var(--font-mono);color:#918d83}.rs-divider{height:1px;background:#e2ddd2;margin:10px 4px}.panel-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px;border:1px solid #cfc8ba;border-radius:3px;background:var(--white);color:var(--ink);font-size:.62rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;font-family:var(--font-sans);min-height:40px}.panel-btn:hover{background:#f5f2ea;border-color:#b8b0a0}.panel-btn svg{width:13px;height:13px}.panel-foot{margin-top:auto;padding-top:14px}.rules-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2ddd2;background:var(--white)}.rules-head h2{margin:0;font-size:1rem;letter-spacing:-.02em}.rules-head p{margin:2px 0 0;font-size:.62rem;color:var(--muted)}.rules-head .head-actions{display:flex;gap:8px}.rules-scroll{height:calc(100% - 70px);overflow-y:auto;padding:14px 18px}.rule-row{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:12px 14px;margin-bottom:8px;border:1px solid #e6e1d6;border-radius:8px;background:var(--white);transition:border-color .15s ease,box-shadow .15s ease}.rule-row:hover{border-color:#d5cfc3;box-shadow:0 2px 10px #312c230f}.rule-row.disabled{opacity:.5}.rule-check{width:18px;height:18px;cursor:pointer;accent-color:var(--orange)}.rule-main{min-width:0}.rule-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-title strong{font-size:.78rem;letter-spacing:-.01em}.rule-id{font-family:var(--font-mono);font-size:.56rem;color:#b0ab9b}.rule-desc{font-size:.64rem;color:var(--muted);margin-top:3px;line-height:1.45}.rule-tags{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}.tag{font-size:.54rem;font-family:var(--font-mono);padding:2px 7px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em}.tag-cat{background:#ece7db;color:#6d6a62}.tag-sev-non_overridable{background:#f7dcd5;color:#b03a23}.tag-sev-hard{background:#f6e7c9;color:#9a6b16}.tag-sev-soft{background:#dcefe2;color:#2f7a52}.tag-num{background:#ece9e1;color:#6d6a62}.rule-actions{display:flex;gap:6px}.icon-btn{width:36px;height:36px;border:1px solid #cfc8ba;border-radius:3px;background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6d6a62;transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-btn svg{width:16px;height:16px}.icon-btn:hover{background:#f5f2ea;border-color:var(--orange);color:var(--orange-dark)}.icon-btn.danger:hover{background:#fbeeea;border-color:#e0554a;color:#e0554a}.icon-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--muted);gap:8px;text-align:center;padding:40px}.empty-state strong{font-size:.9rem;color:var(--ink)}.empty-state span{font-size:.7rem}.modal-backdrop{position:fixed;inset:0;background:#17171461;backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:100;padding:24px}.modal-backdrop.open{display:flex}.modal{width:min(540px,100%);max-height:88vh;overflow-y:auto;background:var(--white);border-radius:12px;padding:26px;box-shadow:0 30px 80px #342f2547}.modal h3{margin:0 0 18px;font-size:1.1rem;letter-spacing:-.02em}.field{margin-bottom:14px}.field label{display:block;font-size:.6rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.field input,.field textarea,.field select{width:100%;padding:9px 11px;border:1px solid #cfc8ba;border-radius:6px;font-family:var(--font-sans);font-size:.78rem;background:var(--white);color:var(--ink)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 2px #f06a4726}.field textarea{resize:vertical;min-height:64px}.field-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-actions button{padding:10px 18px;border-radius:6px;font-size:.72rem;font-weight:700;cursor:pointer;border:1px solid transparent;min-height:44px}.btn-cancel{background:var(--white);border-color:#cfc8ba;color:var(--ink)}.btn-cancel:hover{background:#f5f2ea}.btn-save{background:var(--orange);color:#fff}.btn-save:hover{background:var(--orange-dark)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--white);padding:11px 18px;border-radius:100px;font-size:.7rem;font-weight:600;opacity:0;transition:all .25s ease;z-index:200;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(prefers-color-scheme:dark){.demo-shell{background:#1c1a18}.demo-shell .app-window{background:#242220;border-color:#3a3732}.demo-shell .app-bar{background:#2a2825;border-color:#3a3732}.demo-shell .rules-panel{background:#1f1e1c;border-color:#3a3732}.demo-shell .canvas{background:#1f1e1c}.rules-head{background:#242220;border-color:#3a3732}.rs-item{color:#b0ab9b}.rs-item:hover,.rs-item.active{background:#2a2825;color:#dedad0}.rule-row{background:#242220;border-color:#3a3732}.rule-row:hover{border-color:#4a463f}.icon-btn,.panel-btn,.btn-ghost{background:#2a2825;border-color:#3a3732;color:#b0ab9b}.btn-ghost:hover:not(:disabled),.panel-btn:hover,.icon-btn:hover{background:#34312c}.modal{background:#242220}.field input,.field textarea,.field select{background:#2a2825;border-color:#3a3732;color:#dedad0}.tag-cat,.tag-num{background:#34312c;color:#b0ab9b}.empty-state strong{color:#dedad0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important}}@media(max-width:760px){.demo-shell .app-body{flex-direction:column;height:auto}.demo-shell .rules-panel{width:100%}.field-row{grid-template-columns:1fr}}
