/* Shared UI layer: local assets only, progressive enhancement. */
:root{--bg:#f3f5f9;--white:#fff;--ink:#202939;--muted:#647087;--line:#e4e8f0;--red:#c8233a;--blue:#b71f35;--shadow:0 8px 30px #15274408;--radius:16px}
html{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;scroll-behavior:smooth}body{line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #b71f3566;outline-offset:3px}[hidden]{display:none!important}
.shell{grid-template-columns:264px minmax(0,1fr)}.sidebar{background:linear-gradient(170deg,#182131,#111722);border-right:1px solid #ffffff0c;padding:30px 20px;display:flex;flex-direction:column;overflow-y:auto}.brand-sidebar{padding:0 12px;margin-bottom:30px}.brand-sidebar img{width:185px;margin-bottom:22px}.brand strong{font-size:16px;letter-spacing:-.3px}.brand small{font-size:12px;color:#9ca9bd}.nav{display:grid;gap:4px}.nav a{padding:12px 14px;margin:0;border:0;border-radius:11px;font-weight:500;color:#bac5d6;transition:background .15s,color .15s}.nav a:hover{background:#ffffff0a}.nav a.active{background:linear-gradient(110deg,#ce2b42,#ad1930);color:white;box-shadow:0 5px 16px #920d2940}.nav-icon{flex:0 0 18px}.nav a>span{flex:1;min-width:0}.sidebar-user{position:static;margin-top:auto;padding:24px 12px 0;border-color:#ffffff14}.sidebar-user strong{font-size:13px}.sidebar-user small{font-size:11px;color:#9ca9bd}.sidebar-user button{min-height:36px!important}.topbar{height:82px;background:#ffffffeb;position:sticky;top:0;z-index:10;padding:0 36px;backdrop-filter:blur(16px)}.topbar h1{font-size:17px;letter-spacing:-.3px}.topbar .badge{background:#f3f5f9;color:#59677c;padding:8px 13px}.content{padding:32px 36px 70px;max-width:1580px}.page-head{margin-bottom:28px}.page-head h2{font-size:clamp(25px,2.3vw,34px);font-weight:750;letter-spacing:-1px}.page-head p{max-width:760px;font-size:13px}.eyebrow{font-size:10px;letter-spacing:.16em}.panel,.card{border-radius:var(--radius);border-color:var(--line);background:#fff;box-shadow:var(--shadow)}.panel-head{padding:21px 24px;background:#fff}.panel-head h3{font-size:15px;letter-spacing:-.2px}.panel-body{padding:25px}.cards{gap:18px}.metric{position:relative;border-top:1px solid var(--line);overflow:hidden;padding:24px}.metric:after{content:"";position:absolute;right:-18px;top:-18px;width:85px;height:85px;border-radius:50%;background:#c8233a08;pointer-events:none}.metric .label{font-size:12px;font-weight:650}.metric .number{letter-spacing:-1px;font-size:34px}.metric .trend{background:#eaf8f0;padding:3px 8px;border-radius:6px;display:inline-block;margin-top:10px}.btn{min-height:40px;border-radius:9px;padding:10px 16px;border:1px solid transparent;line-height:1.3;transition:transform .15s,box-shadow .15s,background .15s;white-space:normal}.btn:hover{transform:translateY(-1px);filter:none}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(130deg,#d02b43,#b51b32);box-shadow:0 3px 8px #b71f3524}.btn-primary:hover{box-shadow:0 5px 14px #b71f3538;background:#ad1930}.btn-secondary{background:#fff;border-color:#dce2eb;color:#40506a}.btn-secondary:hover{background:#f4f6fa}.btn-success{background:#087e5b;color:#fff;box-shadow:0 3px 8px #087e5b20}.btn-danger{background:#fff1f2;color:#b91d38;border-color:#ffd8de}.btn-sm{min-height:33px;font-size:11px;padding:7px 10px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.actions{gap:10px}.badge{padding:5px 10px;font-size:10px;letter-spacing:.02em}.badge.approved{background:#e4f7ed;color:#146744}.badge.pending{background:#fff4d9;color:#8b6009}.badge.rejected,.badge.cancelled{background:#ffebef;color:#b02a45}
.table-wrap{border-radius:0 0 var(--radius) var(--radius)}table{font-size:12px}th{background:#f8f9fc;color:#68768b;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:14px 18px}td{padding:16px 18px;border-color:#edf0f5;color:#46536a}td strong{color:#26344a}tr:hover td{background:#fafbfe}td .btn{margin:2px}.table-toolbar,.table-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line);background:#fff}.table-footer{border-top:1px solid var(--line);border-bottom:0;flex-wrap:wrap}.table-search{max-width:320px;width:100%;position:relative}.table-search input{width:100%;background:#f8f9fc!important}.table-count{color:var(--muted);font-size:12px;white-space:nowrap}.table-pagination{display:flex;gap:7px;align-items:center}.sort-button{background:none;border:0;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer;display:flex;align-items:center;gap:8px;text-align:left}.sort-button:after{content:'↕';opacity:.5}th[aria-sort=ascending] .sort-button:after{content:'↑';opacity:1}th[aria-sort=descending] .sort-button:after{content:'↓';opacity:1}.table-empty{text-align:center;color:var(--muted);padding:35px}.table-footer select{width:auto!important;min-width:78px}
.field{gap:8px}.field label{font-size:12px;color:#43516a}.field small,small.help{font-size:11px;color:var(--muted)}.field input,.field select,.field textarea,.panel-body>select,.table-toolbar input,.table-footer select{border:1px solid #dce2eb;border-radius:10px;padding:11px 13px;min-height:43px;background-color:#fff;color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.table-toolbar input:focus{outline:none;border-color:#bf3449;box-shadow:0 0 0 3px #c8233a12}.field select,.panel-body>select,.table-footer select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23647087' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.field select:disabled{background-color:#f1f3f7}.field textarea{min-height:105px;resize:vertical}.field input[type=checkbox],.field input[type=radio]{min-height:0;width:auto;accent-color:var(--red)}.form-grid{gap:21px}.check{border-radius:10px;font-size:12px}.check:has(input:checked){background:#fff5f6;border-color:#e8a5b0}.password-control{position:relative}.password-control input{padding-right:68px;width:100%}.password-toggle{position:absolute;right:5px;top:5px;bottom:5px;background:#f3f5f9;border:0;border-radius:7px;padding:0 10px;color:#56647a;font-size:11px;cursor:pointer}.select-filter{font-size:12px!important;min-height:35px!important;background:#f8f9fc!important}.alert{border-radius:12px;padding:15px 18px;font-size:13px}.alert-error{background:#fff3f5;border-color:#f4d6dd}.alert-success{background:#edf9f3;border-color:#cfeadb}.alert-info{background:#eff5ff;border-color:#dae6f9}.definition{padding:5px}.definition div{padding:12px;background:#f8f9fc;border-radius:10px}.definition div strong{font-size:13px}.timeline-item{padding-bottom:25px}.timeline-item.current strong{color:var(--red)}.signature-choice{background:#f8f9fc;border-radius:12px}.signature-option{border-radius:12px}.signature-canvas{border-color:#cbd3e1}.login-page{background:radial-gradient(ellipse at 20% 20%,#323b50 0,transparent 50%),radial-gradient(ellipse at 95% 90%,#5c1a2d 0,transparent 40%),#131b29}.login-box{border-radius:20px;border-top:3px solid var(--red);padding:36px;box-shadow:0 28px 80px #0004}.login-box .field input{border-radius:10px}.login-box h2{font-size:29px;letter-spacing:-.8px}.login-brand small{color:#bdc6d5}.login-brand img{max-width:280px}.login-page:before,.login-page:after{border-color:#ffffff09}
.ui-dialog{border:1px solid var(--line);border-radius:20px;padding:0;width:min(760px,calc(100% - 32px));max-height:90dvh;box-shadow:0 30px 100px #121d3840;color:var(--ink);background:#fff}.ui-dialog::backdrop{background:#111b2b99;backdrop-filter:blur(4px)}.ui-dialog .panel{border:0;box-shadow:none;margin:0;border-radius:0}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.dialog-heading h2{margin:0;font-size:18px}.dialog-close{border:1px solid var(--line);border-radius:9px;background:white;font-size:22px;width:36px;height:36px;cursor:pointer;color:#647087}.dialog-body{padding:24px}.dialog-body p{margin-top:0;color:var(--muted)}.confirm-dialog{max-width:460px}.ui-dialog[open]{animation:dialog-in .18s ease-out}.editor-launch{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.editor-launch p{margin:3px 0 0;font-size:12px;color:var(--muted)}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px;border-radius:8px}.skip-link:focus{top:10px}.mobile-nav{border-radius:8px;color:var(--ink)}
@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.shell{grid-template-columns:225px minmax(0,1fr)}.sidebar{padding:25px 14px}.brand-sidebar img{width:165px}.content{padding:25px 22px 60px}.topbar{padding:0 24px}}
@media(max-width:760px){.shell{display:block}.sidebar{width:264px;left:-280px;z-index:30;box-shadow:10px 0 50px #1118}.sidebar.open{left:0}.topbar{height:68px;padding:0 16px;gap:10px}.topbar h1{font-size:15px;flex:1}.topbar .badge{font-size:9px;padding:6px}.content{padding:22px 14px 55px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{padding:18px}.metric .number{font-size:28px}.panel-body,.panel-head{padding:18px}.table-toolbar{padding:12px;flex-wrap:wrap}.table-search{max-width:none}.table-footer{padding:12px}.form-grid{gap:17px}.editor-launch{padding:18px}.login-box{padding:28px 24px}.ui-dialog{max-height:92dvh}.dialog-heading{padding:16px}.table-count{white-space:normal}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
