:root{--ink:#17231e;--muted:#7b8580;--line:#e7eae7;--paper:#fff;--canvas:#f6f7f5;--green:#245d48;--green-dark:#183d30;--mint:#eaf3ee;--gold:#c9903e;--red:#bc594b;--blue:#54799a;--shadow:0 10px 34px rgba(19,39,29,.055);font-family:'DM Sans',sans-serif;color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #92b7a4;outline-offset:2px}a{color:inherit}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:none}.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,44%) 1fr;background:#fff}.auth-visual{background:#173d30;color:#f7f7f0;padding:54px clamp(28px,7vw,104px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-visual:after{content:'';position:absolute;inset:auto -20% -28% 17%;height:54%;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 52px rgba(255,255,255,.025),0 0 0 104px rgba(255,255,255,.025),0 0 0 156px rgba(255,255,255,.025)}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.5px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:#d3aa6d;color:#173d30;border-radius:11px}.brand-mark .icon{width:21px;height:21px}.auth-copy{max-width:480px;position:relative;z-index:1;margin:50px 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#b8c9bc;font-weight:700}.auth-copy h1{font:700 clamp(36px,4.7vw,62px)/1.05 Manrope,sans-serif;letter-spacing:-2.9px;margin:18px 0 20px}.auth-copy p{font-size:16px;line-height:1.7;color:#c6d4ca;max-width:390px}.auth-quote{position:relative;z-index:1;color:#c6d4ca;font-size:12px}.auth-main{display:grid;place-items:center;padding:32px}.auth-card{width:min(420px,100%)}.auth-card h2{font:700 28px Manrope,sans-serif;letter-spacing:-1px;margin:0 0 8px}.auth-card>p{color:var(--muted);margin:0 0 30px;line-height:1.55}.auth-toggle{margin-top:18px;color:var(--muted);text-align:center}.text-button{border:0;background:none;color:var(--green);font-weight:700;padding:4px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:12px;font-weight:700;color:#39443f}.field input,.field select,.field textarea,.search-box input{width:100%;border:1px solid #dfe4e0;background:white;border-radius:8px;padding:11px 12px;color:var(--ink);transition:.18s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#75a48c;outline:none;box-shadow:0 0 0 3px #e8f1eb}.field textarea{resize:vertical;min-height:90px}.field small{font-size:11px;color:var(--muted)}.button{border:1px solid transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:700;transition:.16s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-secondary{background:#fff;border-color:var(--line);color:#3b4942}.button-secondary:hover{background:#f7f8f6;border-color:#cfd7d1}.button-quiet{background:transparent;color:#65716a;border-color:transparent}.button-danger{background:#fff2ef;color:#ac5144}.button-block{width:100%;padding:12px}.button-sm{padding:7px 10px;font-size:11px}.app-shell{min-height:100vh}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 15px 18px;z-index:10}.sidebar .brand{padding:0 10px 29px}.sidebar .brand-mark{width:32px;height:32px;border-radius:9px}.firm-switch{margin:0 5px 25px;background:#f7f8f6;border:1px solid #eef0ed;border-radius:9px;padding:10px;display:flex;align-items:center;gap:9px}.firm-avatar{height:29px;width:29px;background:#dce9df;border-radius:8px;display:grid;place-items:center;color:var(--green);font-weight:800;font-size:11px}.firm-meta{min-width:0;flex:1}.firm-meta b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.firm-meta span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.nav-label{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;font-weight:700;color:#a2aaa4;padding:0 12px 9px}.nav-list{display:flex;flex-direction:column;gap:3px}.nav-link{border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;border-radius:8px;padding:10px 12px;color:#68736c;font-size:12px;font-weight:600;width:100%;transition:.15s}.nav-link:hover{background:#f7f8f6;color:var(--ink)}.nav-link.active{background:#eaf2ed;color:#245d48}.nav-link .icon{width:17px;height:17px}.nav-badge{margin-left:auto;background:#f4eadd;color:#986e34;border-radius:20px;min-width:20px;text-align:center;padding:2px 6px;font-size:10px}.sidebar-bottom{margin-top:auto}.sidebar-help{padding:13px;background:#f4f7f4;border-radius:10px;margin:0 5px 14px}.sidebar-help b{font-size:11px}.sidebar-help p{font-size:10px;color:var(--muted);line-height:1.5;margin:6px 0 8px}.user-menu{padding:13px 8px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:9px}.user-avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#e9e2d6;color:#705c3e;font-size:10px;font-weight:700}.user-meta{flex:1;min-width:0}.user-meta b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.icon-button{border:0;background:transparent;color:#778179;padding:6px;border-radius:7px;display:inline-grid;place-items:center}.icon-button:hover{background:#f0f3f0;color:#23352c}.main-area{margin-left:238px;min-height:100vh}.topbar{height:70px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3.5vw,48px);position:sticky;top:0;z-index:8;backdrop-filter:blur(14px)}.breadcrumbs{font-size:11px;color:var(--muted)}.breadcrumbs b{color:#34443b}.top-actions{display:flex;align-items:center;gap:14px}.search-box{position:relative;width:220px}.search-box .icon{position:absolute;left:11px;top:10px;color:#99a29c;width:15px;height:15px}.search-box input{padding:9px 10px 9px 34px;font-size:11px;background:#fafbfa;border-color:#eef0ed}.notification-button{position:relative}.notification-dot{width:6px;height:6px;background:#cb765a;position:absolute;right:5px;top:5px;border:1px solid #fff;border-radius:50%}.page-content{max-width:1450px;margin:0 auto;padding:34px clamp(20px,3.5vw,48px) 56px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:25px}.page-heading h1{font:700 26px Manrope,sans-serif;letter-spacing:-1.1px;margin:0 0 6px}.page-heading p{font-size:12px;color:var(--muted);margin:0}.heading-actions{display:flex;gap:8px;align-items:center}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}.stat-card,.panel,.case-card,.judgment-card{background:var(--paper);border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 5px rgba(31,49,37,.015)}.stat-card{padding:17px 18px;position:relative;overflow:hidden}.stat-label{font-size:10px;color:var(--muted);font-weight:600}.stat-value{font:700 25px Manrope,sans-serif;letter-spacing:-1px;margin:8px 0 5px}.stat-foot{font-size:10px;color:#86918a}.stat-icon{position:absolute;right:16px;top:15px;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#edf4ef;color:var(--green)}.stat-icon.gold{background:#f7f0e5;color:#ab7e40}.stat-icon.blue{background:#edf3f7;color:#66819a}.stat-icon.rose{background:#f8eeee;color:#a9675e}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.9fr);gap:17px}.stack{display:flex;flex-direction:column;gap:17px}.panel{padding:18px 19px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:10px}.panel-title{font:700 13px Manrope,sans-serif;letter-spacing:-.15px}.panel-subtitle{font-size:10px;color:var(--muted);margin-top:4px}.link-button{border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;padding:4px}.matter-row{padding:13px 0;border-top:1px solid #f0f2ef;display:flex;align-items:center;gap:12px}.matter-row:first-child{border-top:0;padding-top:2px}.matter-avatar{width:34px;height:34px;border-radius:9px;background:#edf2ed;display:grid;place-items:center;color:#53765f;font-size:10px;font-weight:700;flex:none}.matter-name{font-size:11px;font-weight:700}.matter-client{font-size:10px;color:var(--muted);margin-top:4px}.matter-info{min-width:0;flex:1}.matter-case-no{font-size:9px;color:#9aa39d}.status-pill{display:inline-flex;align-items:center;gap:5px;background:#eef5ef;color:#497457;padding:5px 8px;border-radius:30px;font-size:9px;font-weight:700;white-space:nowrap}.status-pill:before{content:'';width:5px;height:5px;background:currentColor;border-radius:50%}.status-pill.pending{background:#fbf2e6;color:#aa7a38}.status-pill.closed{background:#f0f1f1;color:#78827b}.status-pill.review{background:#edf2f7;color:#66809a}.matter-deadline{font-size:10px;color:#7c8780;white-space:nowrap}.event-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #f0f2ef}.event-row:first-child{border-top:0}.date-box{width:38px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:#f7f3eb;flex:none;color:#8f7142}.date-box strong{font:700 14px Manrope,sans-serif;line-height:1}.date-box span{font-size:8px;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.event-info{flex:1;min-width:0}.event-info b{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-info span{font-size:9px;color:var(--muted);display:block;margin-top:4px}.event-tag{font-size:9px;color:#909a93}.deadline-overdue .date-box{background:#f9ece9;color:#ad6258}.empty-state{padding:26px 16px;text-align:center;color:var(--muted);font-size:11px}.empty-state .icon{width:25px;height:25px;color:#9eaaa2;margin-bottom:8px}.toolbar{display:flex;align-items:center;gap:10px;margin:0 0 16px}.toolbar-spacer{flex:1}.select-control{border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:#526057;background:white;font-size:10px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.case-card{padding:17px;transition:.18s;cursor:pointer}.case-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d2ddd4}.case-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.case-card h3{font:700 13px Manrope,sans-serif;margin:13px 0 5px;line-height:1.35}.case-card-client{font-size:10px;color:var(--muted)}.case-card-meta{border-top:1px solid #eff1ef;margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;color:#808b83;font-size:9px}.case-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:13px}.avatar-stack{display:flex;align-items:center}.mini-avatar{width:23px;height:23px;border-radius:50%;border:2px solid #fff;margin-right:-6px;background:#ece3d8;color:#6d5c46;display:grid;place-items:center;font-size:8px;font-weight:700}.case-detail-heading{display:flex;align-items:flex-start;gap:12px}.back-button{margin-top:2px}.case-detail-title{flex:1}.case-detail-title h1{margin:0 0 5px;font:700 24px Manrope,sans-serif;letter-spacing:-.8px}.case-detail-title p{margin:0;color:var(--muted);font-size:11px}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:23px 0 19px;overflow:auto}.tab-button{border:0;background:transparent;padding:0 0 12px;color:#89928c;font-size:11px;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent}.tab-button.active{color:var(--green);border-color:var(--green)}.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(255px,.8fr);gap:16px}.detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.fact label{display:block;color:#89928c;font-size:9px;margin-bottom:5px}.fact strong{font-size:11px;font-weight:600}.document-row{display:flex;align-items:center;gap:10px;border-top:1px solid #eff1ef;padding:11px 0}.doc-icon{width:32px;height:36px;background:#fbefed;color:#ae675e;border-radius:7px;display:grid;place-items:center;font-size:8px;font-weight:800}.document-meta{min-width:0;flex:1}.document-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.document-meta span{display:block;color:#8a948d;font-size:9px;margin-top:4px}.analysis-box{white-space:pre-wrap;line-height:1.65;color:#526057;font-size:11px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px;max-height:330px;overflow:auto}.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:17px}.finance-cell{background:#f8faf8;border-radius:8px;padding:13px}.finance-cell span{font-size:9px;color:var(--muted)}.finance-cell strong{display:block;font:700 17px Manrope,sans-serif;margin-top:6px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:540px}.data-table th{text-align:left;color:#939c95;text-transform:uppercase;font-size:8px;letter-spacing:.7px;font-weight:700;padding:9px 9px;border-bottom:1px solid var(--line)}.data-table td{font-size:10px;padding:12px 9px;border-bottom:1px solid #f1f3f0}.data-table tr:last-child td{border:0}.kind-chip{font-size:9px;border-radius:14px;padding:4px 7px;background:#f2f4f2;color:#66736b}.kind-chip.Payment{background:#edf5ee;color:#54805e}.kind-chip.Expense{background:#fbefed;color:#ac645b}.kind-chip.Invoice{background:#eef2f6;color:#617b94}.calendar-list{max-width:880px}.knowledge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.judgment-card{padding:17px;display:flex;flex-direction:column;min-height:188px}.judgment-court{font-size:9px;color:var(--green);font-weight:700;text-transform:uppercase;letter-spacing:.6px}.judgment-card h3{font:700 13px/1.4 Manrope,sans-serif;margin:9px 0 5px}.judgment-citation{font-size:10px;color:#7e8881}.judgment-card p{font-size:10px;color:#707c74;line-height:1.55;margin:12px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.judgment-footer{margin-top:auto;padding-top:12px;border-top:1px solid #eff1ef;display:flex;justify-content:space-between;align-items:center;color:#89928c;font-size:9px}.tag-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.tag{background:#f2f4f1;padding:4px 7px;border-radius:4px;color:#727d74;font-size:8px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.report-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px}.report-icon{width:37px;height:37px;background:#edf4ef;color:var(--green);display:grid;place-items:center;border-radius:9px}.report-card h3{font:700 13px Manrope,sans-serif;margin:15px 0 6px}.report-card p{font-size:10px;line-height:1.55;color:var(--muted);min-height:32px}.report-card .button{margin-top:10px}.modal-backdrop{position:fixed;inset:0;background:rgba(17,31,23,.4);z-index:30;display:grid;place-items:center;padding:18px;backdrop-filter:blur(3px)}.modal{width:min(520px,100%);max-height:min(90vh,820px);overflow:auto;background:white;border-radius:13px;box-shadow:0 28px 80px rgba(15,34,23,.22);padding:22px}.modal-wide{width:min(720px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.modal-head h2{font:700 18px Manrope,sans-serif;letter-spacing:-.4px;margin:0}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.form-grid .span-2{grid-column:span 2}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast-region{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:8px}.toast{background:#1e3327;color:#fff;border-radius:8px;padding:12px 15px;font-size:11px;box-shadow:0 8px 25px #17231e33;animation:toast-in .2s ease}.toast.error{background:#943f37}@keyframes toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mobile-menu{display:none}.loading{padding:55px;text-align:center;color:var(--muted);font-size:12px}.spinner{display:inline-block;width:17px;height:17px;border:2px solid #dce5de;border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.empty-panel{padding:55px 20px;text-align:center;background:#fff;border:1px dashed #dce3dd;border-radius:11px}.empty-panel .icon{width:32px;height:32px;color:#8aa192}.empty-panel h3{font:700 14px Manrope,sans-serif;margin:12px 0 6px}.empty-panel p{font-size:10px;color:var(--muted);margin:0 auto 15px;max-width:320px;line-height:1.5}.modal-notice{border-radius:8px;background:#f8f4e9;color:#866c3d;padding:10px;font-size:10px;line-height:1.5;margin-bottom:15px}.mobile-overlay{display:none}

@media(max-width:1100px){.case-grid,.knowledge-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-box{width:180px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.mobile-overlay.show{display:block;position:fixed;inset:0;background:#16251d66;z-index:9}.main-area{margin-left:0}.mobile-menu{display:inline-grid}.topbar{padding:0 16px;height:62px}.page-content{padding:25px 16px 40px}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-main{min-height:100vh}.search-box{display:none}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.case-detail-title h1{font-size:20px}}
@media(max-width:520px){.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:13px}.stat-value{font-size:20px}.stat-icon{width:28px;height:28px;right:10px;top:10px}.stat-icon .icon{width:15px;height:15px}.case-grid,.knowledge-grid,.report-grid{grid-template-columns:1fr}.page-heading{display:block}.page-heading .heading-actions{justify-content:flex-start;margin-top:15px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.finance-summary{grid-template-columns:1fr}.top-actions{gap:6px}.page-heading h1{font-size:23px}.panel{padding:15px}.auth-main{padding:24px}.case-detail-heading{align-items:flex-start}.case-detail-title h1{font-size:18px}}

@media print{.sidebar,.topbar,.heading-actions,.tabs,.button,.icon-button{display:none!important}.main-area{margin:0}.page-content{padding:0}.panel,.stat-card{box-shadow:none;break-inside:avoid}}

.admin-login-shell{min-height:100vh;background:#f3f6f4;display:grid;place-items:center;padding:24px}.admin-login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px;box-shadow:0 16px 48px rgba(31,49,37,.08)}.admin-login-card .brand{display:flex;align-items:center;gap:10px;font-weight:800;margin-bottom:34px}.admin-login-card .brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--green);color:#fff}.admin-login-card .eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--green);font-weight:800}.admin-login-card h1{font:700 25px Manrope,sans-serif;margin:8px 0}.admin-login-card>p{font-size:12px;color:var(--muted);margin:0 0 24px}.admin-back-link{display:block;text-align:center;margin-top:20px;font-size:11px;color:var(--green);font-weight:700}.admin-shell{min-height:100vh;background:#f6f7f5}.admin-topbar{height:68px;padding:0 clamp(20px,4vw,54px);background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.admin-topbar .brand{display:flex;align-items:center;gap:10px;font-weight:800}.admin-topbar .brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--green);color:#fff}.admin-label{margin-left:8px;padding:5px 8px;border-radius:20px;background:#edf3ee;color:var(--green);font-size:9px;font-weight:700}.admin-content{max-width:1450px;margin:auto;padding:34px clamp(20px,4vw,54px) 60px}.admin-session{font-size:10px;color:var(--muted)}.admin-stats{margin:22px 0}.admin-firms-panel{padding:19px}.admin-firms-table{min-width:790px}.admin-firms-table td strong{font-size:10px}.admin-firms-table td small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.admin-privacy-note{font-size:10px;color:var(--muted);margin:14px 2px}@media(max-width:520px){.admin-login-card{padding:24px}.admin-label{display:none}.admin-content{padding-top:24px}.admin-content .page-heading{display:flex}.admin-session{display:block;text-align:right}}
