:root{--py-font:14px;--py-ink:#e4eaf5;--py-bg:#0d1527;--py-card:#142039;--py-border:#2a3b58;--py-accent:#5ce0cb}
[data-theme=light]{--py-ink:#17263c;--py-bg:#f2f5fa;--py-card:#fff;--py-border:#d5dfeb;--py-accent:#087f78}
body{font-family:Tahoma,'Segoe UI',sans-serif!important;font-size:var(--py-font);text-rendering:optimizeLegibility}
input,textarea,select{font-family:inherit!important;unicode-bidi:plaintext}input[dir=ltr]{unicode-bidi:isolate}textarea{resize:vertical!important;min-height:70px}td,th,p,small{overflow-wrap:anywhere} .case-app{background:var(--py-bg)}
.py-workspace{padding-bottom:45px}.py-panel{background:var(--py-card);color:var(--py-ink);border:1px solid var(--py-border);border-radius:18px;padding:24px;margin:18px 0;box-shadow:0 10px 35px #0000000c}
.py-section-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.py-section-head h2{font-size:21px;font-weight:700;margin:0 0 8px}.py-section-head p,.py-note{opacity:.75;line-height:1.9;margin:0}
.py-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:16px 0}.py-field{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:13px;color:var(--py-ink)}
.py-field input,.py-field select,.py-field textarea,.py-login input{border:1px solid var(--py-border);border-radius:9px;background:var(--py-bg);color:var(--py-ink);padding:11px;width:100%;min-width:0}.py-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--py-accent)}
.py-panel button,.py-tabs button,.py-followup button,.py-preview button,.py-save-status button,.py-compare button{font:inherit;cursor:pointer;border:1px solid var(--py-border);background:var(--py-bg);color:var(--py-ink);border-radius:9px;padding:9px 13px;line-height:1.6}.py-panel button:hover,.py-tabs .active,.py-preview button:hover{border-color:var(--py-accent);color:var(--py-accent)}button:disabled{opacity:.45;cursor:not-allowed!important}.py-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.py-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.py-tabs .active{background:var(--py-card)}
.py-table-scroll{overflow:auto;max-height:65vh;resize:vertical;min-height:180px;margin-top:18px}.py-table{width:100%;border-collapse:collapse;min-width:640px;font-size:13px}.py-table th{position:sticky;top:0;background:var(--py-bg);z-index:1;text-align:right;resize:horizontal;overflow:auto;min-width:100px}.py-table th,.py-table td{padding:12px 10px;border-bottom:1px solid var(--py-border)}.py-table tr:hover{background:#7188aa0c}.py-table td button{border:0;background:transparent;text-align:right;padding:0;color:var(--py-accent)}.py-chip{display:inline-flex;align-items:center}
.py-board{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;overflow:auto}.py-lane{background:var(--py-bg);padding:15px;border-radius:12px;min-height:140px}.py-lane h3{font-size:14px;margin:0 0 15px}.py-task{display:flex;flex-direction:column;gap:10px;width:100%;text-align:right;margin-bottom:12px;background:var(--py-card)!important;box-shadow:0 3px 8px #0000000d}.py-task strong{font-size:14px}.py-task small{opacity:.65}.py-task em{font-style:normal;font-size:11px;color:var(--py-accent)}
.py-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.py-calendar>b{text-align:center;font-size:12px;padding:10px}.py-day{min-height:105px;text-align:right;display:flex;flex-direction:column;align-items:flex-start;gap:6px;overflow:hidden}.py-day strong{font-size:16px}.py-day small{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%}.py-day.today{border-color:var(--py-accent)}.py-day.selected{background:#249d9826}.py-event-list{display:flex;flex-direction:column;gap:10px;padding:20px 0}
.py-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:16px;margin:20px 0}.py-stats article{display:flex;flex-direction:column;gap:10px;background:var(--py-bg);border-radius:12px;padding:22px}.py-stats strong{font-size:30px;color:var(--py-accent)}
.py-followup,.py-compare{background:var(--py-card);color:var(--py-ink);border:1px solid var(--py-border);border-radius:10px;padding:12px 18px;margin:10px 16px}.py-followup summary{cursor:pointer;font-size:13px}.py-compare{max-height:280px;overflow:auto}.py-warning,.py-error{color:#efac6b}.py-snapshot-list{max-height:300px;overflow:auto}.py-snapshot-list article{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--py-border)}.py-panel hr{border:0;border-top:1px solid var(--py-border);margin:24px 0}
.py-save-status{position:fixed;bottom:12px;left:16px;max-width:70vw;z-index:2147483000;display:flex;gap:10px;align-items:center;padding:8px 13px;background:var(--py-card);color:var(--py-ink);border:1px solid var(--py-border);border-radius:10px;box-shadow:0 3px 18px #0003;font-size:11px}.py-save-status.error{border-color:#e28d63;max-width:90vw}.py-save-status button{padding:3px 8px;font-size:11px}
.py-modal-backdrop{position:fixed;inset:0;background:#050a15d9;z-index:2147483100;display:grid;place-items:center;padding:24px;direction:rtl}.py-preview{display:flex;flex-direction:column;background:var(--py-card);color:var(--py-ink);border:1px solid var(--py-border);border-radius:16px;resize:both;overflow:auto;width:85vw;height:85vh;max-width:95vw;max-height:95vh;min-width:320px;min-height:300px}.py-preview>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 20px;border-bottom:1px solid var(--py-border)}.py-preview-body{flex:1;min-height:0;overflow:auto;display:grid;place-items:center;padding:12px}.py-preview-body img{max-width:95%;max-height:65vh;object-fit:contain}.py-preview iframe{width:100%;height:100%;border:0;min-height:400px}.py-preview pre{white-space:pre-wrap;padding:20px;font-family:inherit}.py-preview details{max-height:30%;overflow:auto;padding:15px}
.py-login{min-height:100vh;display:grid;place-items:center;direction:rtl;background:radial-gradient(at 20% 20%,#123d49,#0c1427 65%);color:#e4eaf5}.py-login-card{width:400px;max-width:90vw;padding:38px;background:#142039;border:1px solid #2a3b58;border-radius:22px;box-shadow:0 20px 80px #0003}.py-login-card h1{font-size:28px;margin:18px 0 8px}.py-login-card p{opacity:.8;line-height:1.8}.py-login-card label{display:flex;flex-direction:column;gap:12px;margin:24px 0 16px}.py-login-card button{width:100%;padding:13px;background:#5ce0cb;color:#102d35;border:0;border-radius:10px;cursor:pointer;font-weight:700}.py-login-card small{font-size:11px;opacity:.65}.py-emblem{display:grid;place-items:center;width:48px;height:48px;background:#5ce0cb;color:#102d35;font-size:26px;border-radius:14px}
[data-density=فشرده] .py-panel{padding:16px}[data-density=فشرده] .py-table td{padding:7px}[data-density=راحت] .py-table td{padding:18px}.case-editor{max-width:96vw!important;max-height:95vh!important} .editor-tabs{min-height:0}.editor-header{flex-shrink:0}.py-followup{flex-shrink:0}.case-editor .py-followup[open]{max-height:240px;overflow:auto}
@media(max-width:1000px){.py-board{grid-template-columns:repeat(2,minmax(200px,1fr))}.py-day{min-height:80px;padding:7px!important}.py-calendar>b{font-size:10px}.py-panel{padding:15px}}@media(max-width:600px){.py-board{grid-template-columns:1fr}.py-grid{grid-template-columns:1fr}.py-day small{display:none}.py-day{min-height:55px}.py-preview>header{flex-wrap:wrap}.py-save-status{max-width:95vw;bottom:4px;left:4px}.py-snapshot-list article{flex-direction:column}}
.settings-grid .settings-card:has(input[type="password"]){display:none}.sidebar{background:var(--py-card)!important;border-left:1px solid var(--py-border)!important}.sidebar .brand{padding-bottom:24px}.sidebar nav button{border-radius:10px!important;margin-bottom:5px}.sidebar nav button.active{box-shadow:inset -3px 0 var(--py-accent)}.main-shell .topbar{background:var(--py-bg)!important;border-bottom:1px solid var(--py-border);padding-top:16px;padding-bottom:16px}.panel{border-radius:16px!important}.workspace{padding-bottom:65px!important}.editor-header .editor-title{min-width:0}.editor-title h2{unicode-bidi:plaintext}.py-panel .py-grid input:focus,.py-panel select:focus{outline:2px solid var(--py-accent);outline-offset:2px}
.case-app input,.case-app textarea,.case-app select,.case-editor input,.case-editor textarea,.case-editor select{font-size:var(--py-font)!important}.py-field,.py-table{font-size:calc(var(--py-font) - 1px)}.py-section-head h2{font-size:calc(var(--py-font) + 7px)}.py-task strong{font-size:var(--py-font)}
.py-draft-close{position:absolute;inset:0;z-index:100;background:rgba(3,8,25,.94);display:flex;align-items:center;justify-content:center;padding:20px}
.py-draft-close>section{max-width:540px;background:#101b37;border:1px solid #435374;border-radius:16px;padding:24px;color:#edf5ff}
.py-draft-close button{border:1px solid #557087;border-radius:8px;padding:10px;background:#142a43;color:#fff}
.py-bulk-tools{display:flex;align-items:center;gap:10px;padding:16px;margin:12px 0;border:1px solid #304260;border-radius:12px;background:#101b37;flex-wrap:wrap}
.py-bulk-tools button{padding:9px 12px;border:1px solid #557087;border-radius:8px;background:#142a43;color:#edf5ff;cursor:pointer}
.py-bulk-tools button:hover:not(:disabled){background:#214261}
.py-bulk-tools button:disabled{opacity:.4;cursor:not-allowed}
.py-bulk-tools .py-bulk-danger{border-color:#c77980;background:#391e31}
.py-bulk-tools span{font-weight:600}
.py-bulk-tools small{flex-basis:100%}
.cases-table-panel input[type=checkbox]{width:20px;height:20px;accent-color:#11c7d9;cursor:pointer}
.cases-table-panel input[type=checkbox]:disabled{cursor:not-allowed;opacity:.4}
.py-request.py-backup-dialog{position:fixed;inset:0;margin:auto;width:min(560px,calc(100vw - 24px));height:fit-content;max-height:calc(100dvh - 24px);overflow:auto;background:#101b37;color:#edf5ff;border:1px solid #435374;border-radius:16px;padding:24px}
.py-backup-dialog::backdrop{background:rgba(3,8,25,.8)}
.py-request.py-backup-dialog label{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:14px 0}
.py-request.py-backup-dialog label.py-check{flex-direction:row;align-items:center}
.py-backup-dialog input,.py-backup-dialog select{padding:9px;border:1px solid #557087;border-radius:8px;background:#0b1730;color:#fff;max-width:100%}
.py-backup-dialog select{width:100%}
.py-backup-dialog footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.py-backup-dialog button{padding:10px 16px;background:#142a43;color:#fff;border:1px solid #557087;border-radius:8px}
.py-backup-dialog .primary{background:#11c7d9;color:#061329}
.py-backup-dialog [role=alert]{color:#ffb1ba}
