@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap");:root{--color-bg:#e8e3dc;--color-bg-card:#f0ece5;--color-bg-dark:#2e2723;--color-bg-sidebar:#1e1a17;--color-primary:#2e2723;--color-accent:#c5a059;--color-accent-dark:#a8863d;--color-accent-light:#d9b878;--color-text:#2e2723;--color-text-muted:#7a6a5e;--color-text-light:#b0a090;--color-border:#d4cdc4;--color-border-dark:#c0b8ae;--color-success:#4a7c59;--color-warning:#c5843a;--color-danger:#9e3a2f;--color-info:#3a6a8a;--color-success-bg:#e8f2eb;--color-warning-bg:#fdf0e0;--color-danger-bg:#fbeae8;--color-info-bg:#e4eef5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--font-display:"Montserrat",sans-serif;--font-body:"Montserrat",sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.5rem;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(46,39,35,0.08),0 1px 2px rgba(46,39,35,0.05);--shadow:0 4px 12px rgba(46,39,35,0.10),0 2px 6px rgba(46,39,35,0.06);--shadow-lg:0 8px 24px rgba(46,39,35,0.14),0 4px 10px rgba(46,39,35,0.08);--shadow-xl:0 20px 48px rgba(46,39,35,0.20);--transition:all 0.2s ease;--transition-slow:all 0.35s ease;--sidebar-width:240px;--header-height:64px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}ol,ul{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:800;line-height:1.25;color:var(--color-primary);letter-spacing:-.3px}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}.app-shell{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-width:0}.page-body{flex:1 1;padding:var(--space-6);margin-top:var(--header-height)}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--color-bg-sidebar);display:flex;flex-direction:column;z-index:100;overflow-y:auto;border-right:1px solid rgba(197,160,89,.15)}.sidebar-logo{padding:var(--space-6) var(--space-5);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;color:var(--color-accent);letter-spacing:3px;text-transform:uppercase}.sidebar-logo-sub{font-size:var(--text-xs);color:var(--color-text-light);letter-spacing:1px;text-transform:uppercase;margin-top:2px}.sidebar-nav{flex:1 1;padding:var(--space-4) 0}.sidebar-section-label{font-size:10px;font-weight:600;color:var(--color-text-light);text-transform:uppercase;letter-spacing:1.5px;padding:var(--space-3) var(--space-5) var(--space-2);opacity:.7}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);color:rgba(255,255,255,.65);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:var(--transition);border-left:3px solid transparent;text-decoration:none}.sidebar-item:hover{color:#fff;background:rgba(197,160,89,.1);border-left-color:rgba(197,160,89,.5)}.sidebar-item.active{color:var(--color-accent);background:rgba(197,160,89,.15);border-left-color:var(--color-accent)}.sidebar-item .icon{width:18px;height:18px;flex-shrink:0;opacity:.85}.sidebar-footer{padding:var(--space-4) var(--space-5);border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{gap:var(--space-3)}.sidebar-avatar,.sidebar-user{display:flex;align-items:center}.sidebar-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-accent);justify-content:center;font-weight:700;font-size:var(--text-sm);color:var(--color-bg-dark);flex-shrink:0}.sidebar-user-name{font-size:var(--text-sm);color:#fff;font-weight:500}.sidebar-user-role{font-size:10px;color:var(--color-text-light);text-transform:uppercase;letter-spacing:1px}.app-header{position:fixed;top:0;right:0;left:var(--sidebar-width);height:var(--header-height);background:var(--color-bg-card);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);z-index:90;box-shadow:var(--shadow-sm)}.header-title{font-size:var(--text-xl);font-weight:600}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:var(--transition)}.card:hover{box-shadow:var(--shadow)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.card-title{font-size:var(--text-lg);font-weight:600}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:rgba(0,0,0,.01)}.kpi-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:var(--transition)}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.kpi-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--color-accent);border-radius:var(--radius) 0 0 var(--radius)}.kpi-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-muted)}.kpi-value{font-size:var(--text-3xl);font-family:var(--font-display);font-weight:800;color:var(--color-primary);margin:var(--space-1) 0;line-height:1}.kpi-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.5rem 1.125rem;border-radius:var(--radius);font-size:var(--text-sm);font-weight:600;cursor:pointer;border:1px solid transparent;transition:var(--transition);white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(197,160,89,.35)}.btn-secondary{background:var(--color-bg);color:var(--color-primary);border-color:var(--color-border-dark)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.btn-dark{background:var(--color-bg-dark);color:#fff}.btn-dark:hover:not(:disabled){opacity:.85}.btn-sm{padding:.3rem .75rem;font-size:var(--text-xs)}.btn-lg{padding:.75rem 1.5rem;font-size:var(--text-base)}.btn-icon{padding:.5rem;border-radius:var(--radius);background:transparent;border:1px solid transparent;cursor:pointer;transition:var(--transition);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--color-border);color:var(--color-text)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.form-label.required:after{content:" *";color:var(--color-danger)}.form-control{width:100%;padding:.55rem .875rem;background:#fff;border:1px solid var(--color-border-dark);border-radius:var(--radius);font-size:var(--text-sm);color:var(--color-text);transition:var(--transition);outline:none}.form-control:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(197,160,89,.15)}.form-control::placeholder{color:var(--color-text-light)}.form-control:disabled{background:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed}.form-hint{color:var(--color-text-muted)}.form-error,.form-hint{font-size:var(--text-xs)}.form-error{color:var(--color-danger)}.form-grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:repeat(3,1fr)}.table-wrapper{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{background:var(--color-bg);border-bottom:2px solid var(--color-border);text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--color-text-muted);white-space:nowrap}.table td,.table th{padding:var(--space-3) var(--space-4)}.table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:rgba(197,160,89,.05)}.table-actions{display:flex;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.3px}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.badge-neutral{background:var(--color-border);color:var(--color-text-muted)}.badge-accent{background:rgba(197,160,89,.15);color:var(--color-accent-dark)}.modal-backdrop{position:fixed;inset:0;background:rgba(30,26,23,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .15s ease}.modal{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-lg{max-width:720px}.modal-xl{max-width:900px}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--text-xl);font-weight:700;font-family:var(--font-display);letter-spacing:-.2px}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-3)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4)}.page-header-title{font-size:var(--text-3xl);line-height:1}.page-header-sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1);font-family:var(--font-body);font-weight:400}.page-actions{gap:var(--space-3);flex-shrink:0}.empty-state,.page-actions{display:flex;align-items:center}.empty-state{flex-direction:column;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.4}.empty-state-title{font-size:var(--text-xl);font-family:var(--font-display);font-weight:700;margin-bottom:var(--space-2)}.alert,.empty-state-desc{font-size:var(--text-sm)}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);border:1px solid}.alert-success{background:var(--color-success-bg);border-color:rgba(74,124,89,.25);color:var(--color-success)}.alert-warning{background:var(--color-warning-bg);border-color:rgba(197,132,58,.25);color:var(--color-warning)}.alert-danger{background:var(--color-danger-bg);border-color:rgba(158,58,47,.25);color:var(--color-danger)}.alert-info{background:var(--color-info-bg);border-color:rgba(58,106,138,.25);color:var(--color-info)}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.loading-center{display:flex;align-items:center;justify-content:center;padding:var(--space-12)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.anim-fade-in{animation:fadeIn .25s ease}.flex,.flex-col{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.w-full{width:100%}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.font-bold{font-weight:700}.font-medium{font-weight:500}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mt-4{margin-top:var(--space-4)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.rounded{border-radius:var(--radius)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.search-bar{display:flex;align-items:center;gap:var(--space-2);padding:.5rem .875rem;background:#fff;border:1px solid var(--color-border-dark);border-radius:var(--radius);flex:1 1;max-width:360px}.search-bar input{border:none;outline:none;background:transparent;flex:1 1;font-size:var(--text-sm);color:var(--color-text)}.search-bar input::placeholder{color:var(--color-text-light)}.filter-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}