.login-container{min-height:100vh;display:flex}.login-left{background:#0f172a;flex-direction:column;justify-content:center;align-items:flex-start;width:45%;padding:64px 56px;display:flex;position:relative;overflow:hidden}.login-left:before{content:"";pointer-events:none;background:#2563eb1f;border-radius:50%;width:360px;height:360px;position:absolute;top:-120px;right:-120px}.login-left:after{content:"";pointer-events:none;background:#1e3a5f80;border-radius:50%;width:280px;height:280px;position:absolute;bottom:-80px;left:-80px}.brand-logo{color:#fff;letter-spacing:-.03em;z-index:1;background:#2563eb;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:32px;font-size:22px;font-weight:700;display:flex;position:relative}.login-left h1{color:#f8fafc;letter-spacing:-.03em;z-index:1;font-size:30px;font-weight:700;line-height:1.2;position:relative}.login-left .brand-tagline{color:#64748b;z-index:1;margin-top:12px;font-size:14px;line-height:1.6;position:relative}.login-left .brand-version{color:#334155;text-transform:uppercase;letter-spacing:.12em;z-index:1;margin-top:48px;font-size:11px;position:relative}.login-right{background:#f8fafc;flex:1;justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-box{background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 4px 24px #0f172a14}.login-box-header{margin-bottom:28px}.login-box-header h2{color:#0f172a;letter-spacing:-.02em;font-size:20px;font-weight:700}.login-box-header p{color:#64748b;margin-top:4px;font-size:13.5px}.login-box .form-group{margin-bottom:16px}.login-box .form-group label{color:#374151;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.login-box .form-group input{border:1px solid #e2e8f0;border-radius:7px;width:100%;padding:10px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-box .form-group input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.btn-login{color:#fff;cursor:pointer;background:#1e3a5f;border:none;border-radius:7px;width:100%;margin-top:6px;padding:11px;font-size:14px;font-weight:600;transition:background .15s,box-shadow .15s;box-shadow:0 2px 8px #1e3a5f33}.btn-login:hover{background:#2563eb;box-shadow:0 4px 12px #2563eb4d}.toggle-auth{text-align:center;color:#94a3b8;border-top:1px solid #f1f5f9;margin-top:20px;padding-top:20px;font-size:13px}.toggle-auth button{color:#2563eb;cursor:pointer;box-shadow:none;background:0 0;border:none;border-radius:0;margin-left:4px;padding:0;font-size:13px;font-weight:600;transform:none}.toggle-auth button:hover{text-decoration:underline}.toggle-auth button:active{transform:none}@media (width<=768px){.login-left{display:none}.login-container{background:#f1f5f9;justify-content:center;align-items:center}}.dash-filter-bar{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 16px;display:flex}.dash-filter-label{color:#64748b;margin-right:4px;font-size:12px;font-weight:600}.dash-filter-input{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;padding:5px 10px;font-size:13px}.dash-filter-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:7px;padding:5px 12px;font-size:12px;font-weight:600;transition:background .15s}.dash-filter-btn:hover{background:#e2e8f0}.dash-count-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}@media (width<=700px){.dash-count-row{grid-template-columns:1fr}}.dash-count-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 20px;box-shadow:0 1px 4px #0f172a0d}.dash-count-title{text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;font-size:11px;font-weight:700}.dash-count-items{grid-template-columns:repeat(3,1fr);gap:0;display:grid}.dash-count-item{text-align:center;border-right:1px solid #f1f5f9;padding:0 8px}.dash-count-item:last-child{border-right:none}.dash-count-value{color:#0f172a;letter-spacing:-.03em;font-size:30px;font-weight:700;line-height:1}.dash-count-label{color:#94a3b8;margin-top:4px;font-size:11px;font-weight:500}.dash-finance-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}@media (width<=900px){.dash-finance-row{grid-template-columns:1fr}}.dash-finance-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 18px;box-shadow:0 1px 4px #0f172a0d}.dash-finance-title{text-transform:uppercase;letter-spacing:.1em;color:#475569;border-left:3px solid #2563eb;margin-bottom:12px;padding-left:8px;font-size:11px;font-weight:700}.dash-finance-items{flex-direction:column;gap:0;display:flex}.dash-finance-item{justify-content:space-between;align-items:center;padding:5px 0;display:flex}.dash-finance-sep{background:#f1f5f9;height:1px;margin:0}.dash-finance-label{color:#64748b;font-size:12px}.dash-finance-value{color:#0f172a;font-size:14px;font-weight:700}.dash-row{grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px;display:grid}@media (width<=900px){.dash-row{grid-template-columns:1fr}}.dash-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 20px;box-shadow:0 1px 4px #0f172a0d}.chart-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.chart-title{color:#0f172a;letter-spacing:-.01em;font-size:15px;font-weight:700}.chart-subtitle{color:#94a3b8;font-size:12px}.chart-empty{color:#cbd5e1;justify-content:center;align-items:center;height:180px;font-size:13px;display:flex}.chart-legend{color:#64748b;align-items:center;gap:6px;margin-top:10px;padding-left:4px;font-size:12px;display:flex}.chart-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.pie-legend{flex-direction:column;gap:8px;margin-top:12px;display:flex}.pie-legend-item{align-items:center;gap:8px;font-size:13px;display:flex}.pie-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.pie-legend-label{color:#475569;flex:1}.pie-legend-value{color:#0f172a;font-weight:700}.dash-lists-row{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;margin-bottom:20px;display:grid}@media (width<=1100px){.dash-lists-row{grid-template-columns:1fr 1fr}}@media (width<=700px){.dash-lists-row{grid-template-columns:1fr}}.dash-list-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 4px #0f172a0d}.dash-list-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.dash-list-title{color:#0f172a;font-size:13px;font-weight:700}.dash-list-badge{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.dash-list-body{flex:1;max-height:260px;overflow-y:auto}.dash-list-item{border-bottom:1px solid #f8fafc;justify-content:space-between;align-items:flex-start;gap:8px;padding:9px 16px;transition:background .15s;display:flex}.dash-list-item:hover{background:#f8fafc}.dash-list-item:last-child{border-bottom:none}.dash-list-item-left{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-list-item-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:12.5px;font-weight:600;overflow:hidden}.dash-list-item-sub{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;overflow:hidden}.dash-list-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.dash-list-item-amount{color:#0f172a;font-size:12.5px;font-weight:700}.dash-list-item-date{color:#94a3b8;font-size:11px}.dash-list-empty{text-align:center;color:#cbd5e1;padding:28px 16px;font-size:13px}.dash-skeleton{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.skel-card{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:12px;height:110px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2000;background:#0f172a8c;justify-content:center;align-items:center;padding:20px;animation:.15s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:520px;max-height:92vh;animation:.18s cubic-bezier(.34,1.56,.64,1) modalIn;display:flex;box-shadow:0 16px 48px #0f172a33,0 4px 12px #0f172a1a}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-lg{max-width:640px}.modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title{color:#0f172a;letter-spacing:-.01em;font-size:15.5px;font-weight:700}.modal-close{color:#64748b;cursor:pointer;width:30px;height:30px;box-shadow:none;background:#f1f5f9;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:14px;transition:background .15s,color .15s;display:flex}.modal-close:hover{color:#0f172a;background:#e2e8f0}.modal-close:active{transform:none}.modal-body{flex:1;padding:24px;overflow-y:auto}.modal-footer{background:#fafafa;border-top:1px solid #f1f5f9;border-radius:0 0 12px 12px;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.cert-overlay{z-index:2000;background:#000000b3;flex-direction:column;justify-content:flex-start;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.cert-modal-wrapper{background:#f8fafc;border-radius:14px;width:100%;max-width:960px;overflow:hidden;box-shadow:0 24px 64px #00000059}.cert-modal-toolbar{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.cert-scroll{justify-content:center;padding:24px;display:flex}.certificate{background:#fffef7;width:794px;height:562px;font-family:Georgia,Times New Roman,serif;position:relative;overflow:hidden}.certificate:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 20% 20%,#d4af370f 0%,#0000 50%),radial-gradient(circle at 80% 80%,#d4af370f 0%,#0000 50%),radial-gradient(circle,#d4af3708 0%,#0000 60%);position:absolute;inset:0}.cert-outer-border{border:2.5px solid #b8922a;position:absolute;inset:12px}.cert-inner-border{border:1px solid #d4af37;align-items:stretch;display:flex;position:absolute;inset:8px}.cert-corner{z-index:2;position:absolute}.cert-corner--tl{top:-1px;left:-1px}.cert-corner--tr{top:-1px;right:-1px;transform:scaleX(-1)}.cert-corner--bl{bottom:-1px;left:-1px;transform:scaleY(-1)}.cert-corner--br{bottom:-1px;right:-1px;transform:scale(-1)}.cert-content{text-align:center;flex-direction:column;flex:1;align-items:center;padding:22px 48px 18px;display:flex}.cert-header{align-items:center;gap:14px;margin-bottom:10px;display:flex}.cert-logo{object-fit:contain;background:#fff;border:2px solid #d4af37;border-radius:50%;width:56px;height:56px}.cert-org{text-align:left}.cert-org-name{color:#1a1a2e;letter-spacing:.03em;text-transform:uppercase;font-size:18px;font-weight:700}.cert-org-sub{color:#b8922a;letter-spacing:.15em;text-transform:uppercase;margin-top:2px;font-size:11px}.cert-divider{align-items:center;gap:10px;width:100%;margin-bottom:10px;display:flex}.cert-divider-line{background:linear-gradient(90deg,#0000,#d4af37,#0000);flex:1;height:1px}.cert-title{color:#1a1a2e;letter-spacing:.18em;text-transform:uppercase;margin-bottom:2px;font-size:34px;font-weight:700;line-height:1}.cert-subtitle{color:#b8922a;letter-spacing:.3em;text-transform:uppercase;margin-bottom:12px;font-size:9.5px}.cert-given-to{color:#64748b;letter-spacing:.08em;margin-bottom:4px;font-size:12px;font-style:italic}.cert-name{color:#1e3a5f;letter-spacing:.04em;border-bottom:1.5px solid #d4af37;min-width:280px;margin-bottom:8px;padding-bottom:6px;font-size:28px;font-weight:700}.cert-completed-text{color:#475569;max-width:480px;margin-bottom:10px;font-size:11.5px;line-height:1.5}.cert-courses{flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-bottom:6px;display:flex}.cert-course-item{color:#1e3a5f;align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:flex}.cert-course-instructor{color:#64748b;font-style:italic;font-weight:400}.cert-footer{justify-content:space-between;align-items:flex-end;gap:24px;width:100%;margin-top:6px;display:flex}.cert-footer-col{flex-direction:column;align-items:center;gap:4px;min-width:150px;display:flex}.cert-footer-value{color:#1e3a5f;font-size:12px;font-weight:600}.cert-footer-line{background:#94a3b8;width:100%;height:1px}.cert-footer-label{color:#94a3b8;letter-spacing:.1em;text-transform:uppercase;font-size:9.5px}.cert-seal{background:radial-gradient(circle,#fffdf0,#fef9e7);border:3px solid #d4af37;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:70px;height:70px;display:flex;box-shadow:0 0 0 2px #b8922a,inset 0 0 0 2px #f0d060}.cert-seal-inner{text-align:center}.cert-seal-text{color:#b8922a;letter-spacing:.05em;font-size:14px;font-weight:700}.cert-seal-sub{color:#b8922a;letter-spacing:.15em;text-transform:uppercase;font-size:7px}.canteen-filter-bar{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;padding:16px;display:flex}.canteen-filter-inputs{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.canteen-filter-inputs label{color:#475569;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.canteen-filter-inputs input[type=date]{color:#0f172a;border:1px solid #cbd5e1;border-radius:7px;padding:7px 10px;font-size:13.5px}.canteen-summary{flex-wrap:wrap;gap:12px;display:flex}.canteen-sum-card{border-radius:10px;flex-direction:column;gap:4px;min-width:140px;padding:12px 18px;display:flex}.canteen-sum-income{background:#f0fdf4;border:1px solid #bbf7d0}.canteen-sum-expense{background:#fff1f2;border:1px solid #fecdd3}.canteen-sum-profit{background:#eff6ff;border:1px solid #bfdbfe}.canteen-sum-loss{background:#fff7ed;border:1px solid #fed7aa}.canteen-sum-label{text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-size:11px;font-weight:600}.canteen-sum-income .canteen-sum-value{color:#15803d}.canteen-sum-expense .canteen-sum-value{color:#dc2626}.canteen-sum-profit .canteen-sum-value{color:#1d4ed8}.canteen-sum-loss .canteen-sum-value{color:#ea580c}.canteen-sum-value{letter-spacing:-.02em;font-size:20px;font-weight:700}.canteen-days{flex-direction:column;gap:14px;display:flex}.canteen-day-group{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #0f172a0d}.canteen-day-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.canteen-day-date{color:#0f172a;font-size:13px;font-weight:700}.canteen-day-totals{gap:12px;font-size:12.5px;font-weight:700;display:flex}.canteen-day-income{color:#15803d}.canteen-day-expense{color:#dc2626}.canteen-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;transition:background .12s;display:flex}.canteen-row:last-child{border-bottom:none}.canteen-row:hover{background:#f8fafc}.canteen-row-left{align-items:center;gap:10px;display:flex}.canteen-type-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.canteen-type-dot--income{background:#22c55e}.canteen-type-dot--expense{background:#ef4444}.canteen-row-desc{color:#334155;font-size:13.5px}.canteen-row-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.canteen-row-amount{text-align:right;min-width:90px;font-size:14px;font-weight:700}.canteen-row-amount--income{color:#15803d}.canteen-row-amount--expense{color:#dc2626}.canteen-type-toggle{border:1px solid #e2e8f0;border-radius:8px;display:flex;overflow:hidden}.canteen-type-btn{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;flex:1;padding:8px 0;font-size:13.5px;font-weight:600;transition:background .15s,color .15s}.canteen-type-btn.active-income{color:#15803d;background:#dcfce7}.canteen-type-btn.active-expense{color:#dc2626;background:#fee2e2}.canteen-loading{text-align:center;color:#94a3b8;padding:60px 0;font-size:14px}.messages-wrap{flex-direction:column;height:100vh;display:flex;overflow:hidden}.messages-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 28px 14px;display:flex}.messages-header-title{color:#0f172a;font-size:20px;font-weight:700}.messages-header-sub{color:#94a3b8;margin-top:2px;font-size:12.5px}.messages-layout{flex:1;grid-template-columns:300px 1fr;display:grid;overflow:hidden}.conv-panel{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;display:flex;overflow:hidden}.conv-search{border-bottom:1px solid #f1f5f9;flex-shrink:0;padding:10px 12px}.conv-search input{width:100%;height:34px;font-size:13px}.conv-list{flex:1;overflow-y:auto}.conv-item{cursor:pointer;text-align:left;background:#fff;border-bottom:1px solid #f8fafc;border-left:3px solid #0000;align-items:flex-start;gap:10px;width:100%;padding:12px 14px;transition:background .12s;display:flex}.conv-item:hover{background:#f8fafc}.conv-item.active{background:#eff6ff;border-left-color:#2563eb}.conv-item.unread{background:#fafbff}.conv-avatar{color:#fff;background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:flex}.conv-info{flex:1;min-width:0}.conv-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.conv-name.has-customer{color:#1d4ed8}.conv-preview{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.conv-item.unread .conv-preview{color:#475569;font-weight:500}.conv-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.conv-time{color:#cbd5e1;font-size:11px}.conv-badge{color:#fff;text-align:center;background:#ef4444;border-radius:99px;min-width:18px;padding:1px 6px;font-size:10.5px;font-weight:700}.thread-panel{background:#f8fafc;flex-direction:column;display:flex;overflow:hidden}.thread-empty{color:#94a3b8;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.thread-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.thread-header-left{align-items:center;gap:10px;display:flex}.thread-header-name{color:#0f172a;font-size:14px;font-weight:700}.thread-header-sub{color:#94a3b8;margin-top:1px;font-size:12px}.thread-messages{flex-direction:column;flex:1;gap:8px;padding:16px 18px;display:flex;overflow-y:auto}.msg-row{display:flex}.msg-row.out{justify-content:flex-end}.msg-row.in{justify-content:flex-start}.msg-bubble{word-break:break-word;border-radius:16px;max-width:68%;padding:8px 12px;font-size:13.5px;line-height:1.45}.msg-row.in .msg-bubble{color:#1e293b;background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000000f}.msg-row.out .msg-bubble{color:#fff;background:#1e3a5f;border-bottom-right-radius:4px}.msg-time{color:#94a3b8;text-align:right;margin-top:3px;font-size:10.5px}.msg-row.in .msg-time{text-align:left}.thread-input{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.thread-input textarea{resize:none;border:1px solid #e2e8f0;border-radius:20px;flex:1;min-height:38px;max-height:100px;padding:8px 12px;font-size:13.5px;line-height:1.4}.thread-input textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.ig-setup{background:#fff;border:1px solid #e2e8f0;border-radius:12px;max-width:560px;margin:40px auto;padding:28px 32px;box-shadow:0 2px 8px #0f172a0f}.ig-setup h3{margin-bottom:14px;font-size:16px;font-weight:700}.ig-setup ol{color:#374151;padding-left:18px;font-size:13.5px;line-height:2}.ig-setup code{color:#1e3a5f;background:#f1f5f9;border-radius:4px;padding:1px 6px;font-family:monospace;font-size:12.5px}.link-customer-list{border:1px solid #e2e8f0;border-radius:8px;max-height:320px;overflow-y:auto}.link-customer-item{cursor:pointer;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .12s;display:flex}.link-customer-item:last-child{border-bottom:none}.link-customer-item:hover{background:#f8fafc}.link-customer-item.selected{background:#eff6ff}.sidebar{color:#cbd5e1;z-index:1000;background:#0f172a;border-right:1px solid #ffffff0a;flex-direction:column;width:240px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;padding:22px 20px 18px;display:flex}.sidebar-logo{color:#fff;background:#2563eb;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.sidebar-brand-text .brand-name{color:#f1f5f9;letter-spacing:-.01em;font-size:14px;font-weight:700}.sidebar-brand-text .brand-sub{color:#475569;text-transform:uppercase;letter-spacing:.07em;margin-top:1px;font-size:10.5px}.sidebar-menu{flex:1;padding:14px 10px;overflow-y:auto}.menu-section-label{color:#334155;text-transform:uppercase;letter-spacing:.1em;padding:8px 10px 6px;font-size:10px;font-weight:600}.menu-item{color:#64748b;cursor:pointer;text-align:left;width:100%;box-shadow:none;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;margin-bottom:2px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s;display:flex}.menu-item:active{transform:none}.menu-item:hover{color:#cbd5e1;background:#ffffff0d}.menu-item.active{color:#f1f5f9;background:#1e3a5f;font-weight:600}.menu-item .menu-dot{background:#334155;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .15s}.menu-item.active .menu-dot{background:#60a5fa}.menu-item:hover .menu-dot{background:#475569}.menu-badge{color:#fff;text-align:center;background:#ef4444;border-radius:99px;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:700}.sidebar-footer{border-top:1px solid #ffffff0f;padding:14px 10px}.sidebar-user-card{background:#ffffff0a;border-radius:8px;margin-bottom:8px;padding:10px 12px}.sidebar-user-label{color:#334155;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:600}.sidebar-user-name{color:#94a3b8;margin-top:2px;font-size:13.5px;font-weight:500}.btn-change-pw{color:#475569;cursor:pointer;background:0 0;border:1px solid #ffffff12;border-radius:8px;width:100%;margin-bottom:6px;padding:7px;font-size:12px;transition:background .15s,color .15s}.btn-change-pw:hover{color:#94a3b8;background:#ffffff0f}.btn-logout{color:#475569;cursor:pointer;width:100%;box-shadow:none;background:0 0;border:1px solid #ffffff12;border-radius:7px;padding:8px;font-size:12.5px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.btn-logout:hover{color:#fca5a5;background:#7f1d1d;border-color:#0000}.btn-logout:active{transform:none}.app-layout{min-height:100vh}.app-main{background:#f1f5f9;min-height:100vh;margin-left:240px}@media (width<=768px){.app-main{margin-left:0}}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;overflow-x:hidden}body{color:#0f172a;-webkit-font-smoothing:antialiased;background:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;font-size:14px;line-height:1.5}button{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:13.5px;font-weight:500;transition:background .15s,box-shadow .15s,transform .1s}button:active{transform:scale(.98)}.btn-primary{color:#fff;background:#1e3a5f;box-shadow:0 1px 3px #1e3a5f40}.btn-primary:hover{background:#2563eb}.btn-secondary{color:#374151;background:#fff;border:1px solid #e2e8f0}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.btn-success{color:#fff;background:#15803d;box-shadow:0 1px 3px #15803d40}.btn-success:hover{background:#166534}.btn-danger{color:#fff;background:#dc2626;box-shadow:0 1px 3px #dc262640}.btn-danger:hover{background:#b91c1c}.btn-cert{color:#1a1a2e;background:#d4af37;font-weight:600;box-shadow:0 1px 3px #d4af374d}.btn-cert:hover{color:#fff;background:#b8922a}.btn-warning{color:#fff;background:#d97706}.btn-warning:hover{background:#b45309}.btn-sm{border-radius:5px;padding:5px 12px;font-size:12px}input,textarea,select{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}input::placeholder{color:#94a3b8}table{border-collapse:collapse;background:#fff;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:11px 16px;font-size:11.5px;font-weight:600}td{color:#1e293b;border-bottom:1px solid #f1f5f9;padding:13px 16px;font-size:13.5px}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f8fafc}.badge{letter-spacing:.03em;border-radius:99px;align-items:center;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-success{color:#15803d;background:#dcfce7}.badge-warning{color:#b45309;background:#fef3c7}.badge-danger{color:#dc2626;background:#fee2e2}.badge-info{color:#1d4ed8;background:#dbeafe}.badge-neutral{color:#64748b;background:#f1f5f9}.badge-blue{color:#1e40af;background:#dbeafe}.badge-purple{color:#7c3aed;background:#f3e8ff}.badge-yellow{color:#d97706;background:#fef3c7}.badge-indigo{color:#4f46e5;background:#e0e7ff}.form-group{margin-bottom:16px}.form-group label{color:#374151;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{width:100%}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.error-msg{color:#dc2626;background:#fff5f5;border:1px solid #fecaca;border-radius:6px;margin-top:4px;padding:10px 14px;font-size:13px}.success-msg{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin-top:4px;padding:10px 14px;font-size:13px}.page-wrapper{padding:28px 32px}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.page-title{color:#0f172a;letter-spacing:-.02em;font-size:22px;font-weight:700}.page-subtitle{color:#94a3b8;margin-top:3px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar input,.toolbar select{height:38px;font-size:13.5px}.toolbar input{min-width:240px}.table-container{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0f172a0f}.table-empty{text-align:center;color:#94a3b8;padding:56px;font-size:14px}.action-btns{gap:6px;display:flex}.loading{text-align:center;color:#94a3b8;padding:56px}.avatar{color:#1d4ed8;background:#dbeafe;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.avatar--purple{color:#6d28d9;background:#ede9fe}.avatar--amber{color:#b45309;background:#fef3c7}.avatar--green{color:#15803d;background:#dcfce7}.avatar-img{object-fit:cover}.summary-bar{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:0;margin-bottom:16px;padding:14px 24px;display:flex;box-shadow:0 1px 4px #0f172a0d}.summary-item{flex-direction:column;flex:1;align-items:flex-start;gap:2px;display:flex}.summary-num{letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1}.summary-lbl{color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:500}.summary-divider{background:#e2e8f0;width:1px;height:36px;margin:0 24px}.payment-summary{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.pay-sum-card{border:1px solid #0000;border-radius:10px;flex:1;min-width:160px;padding:16px 20px}.pay-sum-green{background:#f0fdf4;border-color:#bbf7d0}.pay-sum-amber{background:#fffbeb;border-color:#fde68a}.pay-sum-blue{background:#eff6ff;border-color:#bfdbfe}.pay-sum-label{text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:6px;font-size:11px;font-weight:700}.pay-sum-amount{color:#0f172a;letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1}.pay-sum-count{color:#94a3b8;margin-top:4px;font-size:12px}.empty-state{text-align:center;color:#94a3b8;padding:56px 24px}.empty-icon{background:#f1f5f9;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 12px;display:flex}.empty-state p{color:#94a3b8;font-size:14px}.inline-confirm{white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.inline-confirm span{color:#dc2626;font-weight:500}.tab-btn{color:#64748b;cursor:pointer;box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:7px 18px;font-size:13.5px;font-weight:500;transition:all .15s}.tab-btn:hover{color:#1e3a5f;background:#f8fafc}.tab-btn--active{color:#fff;background:#1e3a5f;border-color:#1e3a5f}.tab-btn--active:hover{background:#2563eb;border-color:#2563eb}.cal-layout{grid-template-columns:1fr 300px;align-items:start;gap:16px;display:grid}@media (width<=900px){.cal-layout{grid-template-columns:1fr}}.cal-panel{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0f172a0d}.cal-nav{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.cal-nav-title{color:#0f172a;font-size:15px;font-weight:700}.cal-nav-btn{color:#64748b;cursor:pointer;width:30px;height:30px;box-shadow:none;background:0 0;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:background .15s,color .15s;display:flex}.cal-nav-btn:hover{color:#0f172a;background:#f1f5f9}.cal-nav-btn:active{transform:none}.cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-day-header{text-align:center;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;background:#fafafa;border-bottom:1px solid #f1f5f9;padding:8px 4px;font-size:11px;font-weight:600}.cal-cell{cursor:pointer;vertical-align:top;border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;min-height:80px;padding:6px 6px 4px;transition:background .1s}.cal-cell:nth-child(7n){border-right:none}.cal-cell:hover{background:#f8fafc}.cal-cell--empty{cursor:default;background:#fafafa}.cal-cell--empty:hover{background:#fafafa}.cal-cell--today .cal-day-num{color:#fff;background:#1e3a5f;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.cal-cell--selected{background:#eff6ff}.cal-cell--selected:hover{background:#dbeafe}.cal-day-num{color:#374151;text-align:center;width:22px;height:22px;margin-bottom:2px;font-size:12.5px;font-weight:600;line-height:22px;display:inline-block}.cal-events{flex-direction:column;gap:2px;margin-top:2px;display:flex}.cal-event-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:1px 5px;font-size:10.5px;font-weight:500;overflow:hidden}.cal-event--scheduled{color:#b45309;background:#fef3c7}.cal-event--completed{color:#15803d;background:#dcfce7}.cal-event--cancelled{color:#94a3b8;background:#f1f5f9}.cal-event-more{color:#94a3b8;padding-left:5px;font-size:10px}.cal-detail{background:#fff;border:1px solid #e2e8f0;border-radius:10px;min-height:400px;overflow:hidden;box-shadow:0 1px 4px #0f172a0d}.cal-detail-empty{justify-content:center;align-items:center;height:400px;display:flex}.cal-detail-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.day-rental-list{flex-direction:column;gap:8px;padding:10px;display:flex}.day-rental-card{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;transition:box-shadow .15s}.day-rental-card:hover{box-shadow:0 2px 8px #0f172a14}.day-rental-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.day-rental-time{color:#64748b;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.day-rental-name{color:#0f172a;font-size:14px;font-weight:600}.day-rental-stage{color:#2563eb;margin-top:2px;font-size:12px;font-weight:500}.day-rental-purpose{color:#94a3b8;margin-top:1px;font-size:12px}.day-rental-actions{border-top:1px solid #f1f5f9;gap:6px;margin-top:8px;padding-top:8px;display:flex}.stages-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.stage-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:14px;padding:18px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 1px 4px #0f172a0d}.stage-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0f172a1a}.stage-card-icon{color:#fff;background:#1e3a5f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.stage-card-body{flex:1}.stage-card-name{color:#0f172a;margin-bottom:4px;font-size:15px;font-weight:700}.stage-card-desc{color:#64748b;margin-bottom:8px;font-size:12.5px}.stage-card-meta{color:#94a3b8;gap:12px;font-size:12px;display:flex}.stage-card-meta b{color:#374151}.stage-card-actions{flex-direction:column;gap:6px;display:flex}.enroll-course-banner{color:#fff;background:#1e3a5f;border-radius:10px;align-items:center;gap:14px;margin-bottom:20px;padding:14px 16px;display:flex}.enroll-course-avatar{letter-spacing:-.5px;background:#ffffff26;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:20px;font-weight:800;display:flex}.enroll-course-info{flex:1}.enroll-course-name{font-size:15px;font-weight:700}.enroll-course-meta{color:#ffffffa6;gap:12px;margin-top:3px;font-size:12.5px;display:flex}.enroll-section{margin-bottom:18px}.enroll-section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:11px;font-weight:700}.pay-type-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pay-type-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:10px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.pay-type-card:hover:not(.pay-type-card--active){background:#f8fafc;border-color:#cbd5e1}.pay-type-card--active{background:#eff6ff;border-color:#1e3a5f}.pay-type-icon{color:#64748b;background:#f1f5f9;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,color .15s;display:flex}.pay-type-card--active .pay-type-icon{color:#fff;background:#1e3a5f}.pay-type-body{flex:1}.pay-type-title{color:#0f172a;font-size:13px;font-weight:600}.pay-type-sub{color:#94a3b8;margin-top:2px;font-size:11.5px}.pay-type-check{color:#fff;opacity:0;background:#1e3a5f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s;display:flex}.pay-type-card--active .pay-type-check{opacity:1}.enroll-fields-row{gap:12px;display:flex}.enroll-field{flex-direction:column;flex:1;gap:5px;display:flex}.enroll-field label{color:#374151;font-size:12px;font-weight:500}.enroll-field input{width:100%}.enroll-toggle-row{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 14px;display:flex}.enroll-toggle-title{color:#0f172a;font-size:13.5px;font-weight:600}.enroll-toggle-sub{color:#94a3b8;margin-top:2px;font-size:12px}.toggle-switch{cursor:pointer;flex-shrink:0;display:inline-flex;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:#e2e8f0;border-radius:12px;align-items:center;width:44px;height:24px;padding:2px;transition:background .2s;display:flex}.toggle-switch input:checked+.toggle-track{background:#15803d}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-track .toggle-thumb{transform:translate(20px)}.enroll-receipt{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;margin-top:4px;overflow:hidden}.enroll-receipt-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:7px 16px;font-size:10.5px;font-weight:700}.enroll-receipt-row{color:#64748b;justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;display:flex}.enroll-receipt-row strong{color:#0f172a;font-weight:600}.enroll-receipt-divider{background:#e2e8f0;height:1px;margin:0 16px}.enroll-receipt-total{padding-top:10px;padding-bottom:10px;font-size:14px}.enroll-receipt-total strong{color:#1e3a5f;font-size:15px;font-weight:800}.enroll-status-paid{color:#15803d!important}.enroll-status-pending{color:#b45309!important}
