:root{--blue:#12345b;--blue2:#2e6fae;--blue3:#6fa6d8;--yellow:#f4c84a;--yellow2:#ffd96a;--bg:#eef4fb;--bg2:#dce9f7;--text:#17263a;--muted:#65758b;--line:#ffffff80;--white:#fff;--green:#16805a;--red:#bd3f3f;--glass:#ffffffad;--glass-strong:#ffffffd1;--shadow:0 18px 55px #16375b1f;--shadow-sm:0 8px 25px #16375b17}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:radial-gradient(circle at 15% 10%,#fff 0,transparent 30%),radial-gradient(circle at 85% 15%,#d7e8fa 0,transparent 28%),linear-gradient(135deg,var(--bg),var(--bg2));min-height:100vh;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body:before{content:"";pointer-events:none;opacity:.55;background:linear-gradient(120deg,#0000 20%,#ffffff38 50%,#0000 80%);position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:30;-webkit-backdrop-filter:blur(22px);background:linear-gradient(160deg,#0e2b4bf0,#1c4e7ae0);border-right:1px solid #ffffff29;width:255px;padding:22px 15px;position:fixed;inset:0 auto 0 0;box-shadow:18px 0 45px #0e2b4b24}.brand{letter-spacing:.01em;padding:10px 12px 25px;font-size:18px;font-weight:800;line-height:1.25}.brand small{color:#c9dcf0;margin-top:6px;font-size:12px;font-weight:500;display:block}.nav{gap:7px;display:grid}.nav a{color:#dbe8f6;border:1px solid #0000;border-radius:12px;padding:11px 12px;transition:all .2s}.nav a:hover,.nav a.active{color:#fff;background:#ffffff21;border-color:#ffffff29;box-shadow:inset 0 1px #ffffff1f}.main{flex:1;max-width:1600px;margin-left:255px;padding:30px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.title{letter-spacing:-.02em;margin:0;font-size:29px;font-weight:850}.subtitle{color:var(--muted);margin-top:6px}.card{background:var(--glass);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);border:1px solid #ffffffbf;border-radius:20px;padding:20px}.grid{gap:16px;display:grid}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{color:var(--blue);font-size:30px;font-weight:850}.label{color:var(--muted);font-size:13px;font-weight:700}.btn{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:10px 14px;font-weight:750;transition:all .18s;box-shadow:0 5px 15px #12345b14}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #12345b21}.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.accent{background:linear-gradient(135deg,var(--yellow),var(--yellow2));color:#243247}.ghost{color:var(--blue);background:#ffffff94;border-color:#ffffffbf}.danger{color:var(--red);background:#ffe8e6cc;border-color:#fff}.table{border-collapse:separate;border-spacing:0;width:100%;overflow:hidden}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid #b5c6d87a;padding:13px 10px;font-size:14px}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:#eff6fd75;font-size:12px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#ffffff4d}.badge{color:#475569;background:#edf2f7cc;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:750;display:inline-block}.badge.green{color:var(--green);background:#dcfaebcc}.badge.red{color:var(--red);background:#fbe9e7d9}.badge.yellow{color:#876600;background:#fff6d8e6}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field label{font-size:13px;font-weight:750}.field input,.field select,.field textarea{width:100%;color:var(--text);background:#ffffffa8;border:1px solid #aec2d6b8;border-radius:12px;outline:none;padding:10px 11px;transition:all .18s}.field input:focus,.field select:focus,.field textarea:focus{background:#ffffffdb;border-color:#6fa6d8;box-shadow:0 0 0 4px #6fa6d826}.field textarea{resize:vertical;min-height:90px}.actions{flex-wrap:wrap;gap:8px;display:flex}.modalback{z-index:50;-webkit-backdrop-filter:blur(8px);background:#091c306b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{-webkit-backdrop-filter:blur(22px);background:#f8fcffe0;border:1px solid #fffc;border-radius:22px;width:100%;max-width:900px;max-height:90vh;padding:24px;overflow:auto;box-shadow:0 30px 80px #071c3340}.modalhead{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.login{background:radial-gradient(circle at 20% 15%,#ffffff40,#0000 30%),radial-gradient(circle at 80% 80%,#f4c84a2e,#0000 25%),linear-gradient(135deg,#0e2e52,#2e6fae);place-items:center;min-height:100vh;display:grid}.loginbox{-webkit-backdrop-filter:blur(24px);color:#fff;background:#ffffff29;border:1px solid #ffffff4d;border-radius:26px;width:min(430px,92vw);padding:30px;box-shadow:0 30px 80px #03132347}.loginbox .field label{color:#eaf3fb}.loginbox .field input{background:#ffffffe6}.music{color:var(--yellow);font-size:32px}.calendar{box-shadow:var(--shadow-sm);background:#fff6;border:1px solid #ffffffbf;border-radius:18px;grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.calhead,.calcell{border-bottom:1px solid #b5c6d873;border-right:1px solid #b5c6d873;min-height:110px;padding:9px}.calhead{min-height:auto;color:var(--muted);background:#ecf4fbb3;font-size:12px;font-weight:800}.calcell:nth-child(7n){border-right:0}.event{border:1px solid #ffffffb8;border-left:3px solid var(--blue2);background:linear-gradient(135deg,#e6f2fddb,#ffffff94);border-radius:9px;margin-top:5px;padding:6px 7px;font-size:11px;box-shadow:0 4px 12px #12345b0f}.event strong{display:block}.pillrow{flex-wrap:wrap;gap:8px;display:flex}.singer{background:#ffffff6b;border:1px solid #b5c6d88c;border-radius:12px;align-items:center;gap:10px;padding:9px;display:flex}.avatar{object-fit:cover;width:42px;height:42px;color:var(--blue);background:#e9eef5;border-radius:50%;place-items:center;font-weight:800;display:grid}.check{margin-left:auto;transform:scale(1.2)}.empty{text-align:center;color:var(--muted);padding:30px}.printpage{background:linear-gradient(135deg,#eaf2fa,#dce9f7);min-height:100vh;padding:40px}.invoice{max-width:800px;margin:auto}.invoicehead{border-bottom:3px solid var(--blue);justify-content:space-between;margin-bottom:25px;padding-bottom:18px;display:flex}.invoice h1{color:var(--blue);margin:0}.total{font-size:24px;font-weight:800}.notice{background:#fff6d8d6;border:1px solid #f6d3658c;border-radius:12px;margin:15px 0;padding:12px}.error{color:var(--red);font-size:13px}.mobilebar{display:none}.schedule-toolbar{align-items:center;margin-bottom:14px}.view-toggle{gap:6px;display:flex}.period-label{text-align:center;min-width:190px}.event-actions{gap:5px;margin-top:6px;display:flex}.mini{cursor:pointer;color:var(--blue);background:#ffffffb8;border:1px solid #fffc;border-radius:7px;padding:4px 6px;font-size:10px;font-weight:800}.caldate{font-size:12px;font-weight:800}.today{background:#fff9dfc7}.weekgrid{background:#b5c6d88c;border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.weekcol{background:#ffffff9e;min-height:260px;padding:10px}.weekhead{border-bottom:1px solid #b5c6d873;margin-bottom:8px;padding-bottom:8px;font-size:13px;font-weight:800}.legend{flex-wrap:wrap;align-self:end;align-items:center;gap:14px;margin-left:auto;display:flex}.legend span{font-size:12px;font-weight:700}.dot{border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.dot.green{background:var(--green)}.dot.red{background:var(--red)}.dot.yellow{background:var(--yellow)}.report-filters{grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.report-summary{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px;display:grid}.report-summary>div{background:#f6f8fb8c;border:1px solid #b5c6d873;border-radius:12px;gap:4px;padding:12px;display:grid}.inner-card{padding:8px}.report-modal{max-width:1100px}.password-row{align-items:center;gap:6px;margin-top:5px;display:flex}.password-toggle{padding:5px 8px;font-size:11px}.month-report{margin-top:14px}.month-report-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.report-print-head{display:none}.report-print{max-width:1100px}.report-print .inner-card{overflow:visible}.today-schedule-list{gap:10px;display:grid}.today-schedule-item{background:#ffffff7a;border:1px solid #b5c6d880;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;display:flex;box-shadow:0 5px 15px #12345b0a}.today-schedule-item .actions{align-items:center}.invoice-v2{color:#334155;-webkit-backdrop-filter:blur(24px);background:#ffffff94;border:1px solid #fffc;border-radius:24px;max-width:1080px;margin:auto;overflow:hidden;box-shadow:0 30px 80px #12345b29}.invoice-actions{justify-content:flex-end;margin-bottom:12px}.invoice-v2-head{color:#fff;background:linear-gradient(135deg,#12345bf0,#2e6faedb);border-bottom:4px solid #f4c84af2;justify-content:space-between;align-items:flex-start;padding:25px 30px 20px;display:flex}.invoice-v2-head h1{letter-spacing:.02em;margin:0 0 6px;font-size:30px}.invoice-subtitle{color:var(--yellow);letter-spacing:.06em}.invoice-title{text-align:right}.invoice-title strong{font-size:34px;display:block}.invoice-title span{color:#d7e4f1}.invoice-info-grid{grid-template-columns:1fr 1fr;gap:20px;margin:24px 28px;display:grid}.invoice-info-grid section{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff8c;border:1px solid #ffffffc7;border-radius:16px;padding:16px 18px;box-shadow:0 8px 25px #12345b0d}.invoice-info-grid h3{color:#a85c10;border-bottom:2px solid #fde68acc;margin:0 0 10px;padding-bottom:8px;font-size:17px}.invoice-info-grid section>div{grid-template-columns:145px 1fr;gap:8px;margin:5px 0;display:grid}.invoice-items{border-collapse:separate;border-spacing:0;background:#ffffff8a;border:1px solid #ffffffc7;border-radius:15px;width:calc(100% - 56px);margin:0 28px;overflow:hidden}.invoice-items th{color:#fff;text-align:left;background:#12345bed;padding:13px 10px}.invoice-items td{vertical-align:top;border-bottom:1px solid #b5c6d861;padding:13px 10px}.invoice-items tr:last-child td{border-bottom:0}.invoice-items td:first-child,.invoice-items th:first-child{text-align:center;width:55px}.invoice-items td:nth-child(3),.invoice-items th:nth-child(3),.invoice-items td:nth-child(4),.invoice-items th:nth-child(4){text-align:right}.invoice-muted{color:#64748b;margin-top:4px}.invoice-bottom{grid-template-columns:1.15fr .85fr;gap:20px;margin:24px 28px;display:grid}.payment-box{color:#854d0e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3c4bf;border:1px solid #f6d365bf;border-radius:16px;padding:15px 18px;line-height:1.7}.payment-box h3{margin:0 0 6px}.payment-note{background:#ffffff85;border:1px solid #fffc;border-radius:16px;margin-top:12px;padding:14px 18px;line-height:1.6}.invoice-total-box{background:#ffffff94;border:1px solid #fffc;border-radius:16px;align-self:start;padding:16px 18px;box-shadow:0 8px 25px #12345b0d}.invoice-total-box>div{justify-content:space-between;gap:10px;padding:7px 0;display:flex}.invoice-total-box hr{border:0;border-top:2px solid #e2e8f0cc}.invoice-total-box .grand{font-size:19px}.invoice-total-box .grand b{color:#a85c10}.invoice-status{text-align:center;border-radius:10px;margin-top:10px;padding:9px;font-weight:800}.invoice-status.paid{color:#166534;background:#dcfce7c7}.invoice-status.unpaid{color:#92400e;background:#fef3c7d1}.invoice-sign{text-align:center;color:#64748b;grid-template-columns:1fr 1fr;gap:80px;margin:48px 28px 35px;display:grid}.invoice-sign>div{min-height:145px}.invoice-sign span{display:block}.sign-space{justify-content:center;align-items:flex-end;height:80px;display:flex}.sign-space img{object-fit:contain;max-width:180px;max-height:72px}.invoice-sign b{color:#1e293b;border-bottom:1px solid #cbd5e1;max-width:245px;margin:0 auto;padding-bottom:5px;display:block}.invoice-sign small{margin-top:5px;display:block}.mobile-menu-button{z-index:70;-webkit-backdrop-filter:blur(16px);cursor:pointer;background:#12345be6;border:1px solid #ffffff40;border-radius:13px;width:42px;height:42px;padding:9px;display:none;position:fixed;top:12px;left:12px;box-shadow:0 10px 28px #0e2b4b38}.mobile-menu-button span{background:#fff;border-radius:999px;height:2px;margin:5px 4px;transition:all .2s;display:block}.sidebar-backdrop{z-index:25;-webkit-backdrop-filter:blur(3px);background:#08182859;border:0;display:none;position:fixed;inset:0}@media (max-width:900px){.mobile-menu-button,.sidebar-backdrop{display:block}.sidebar{z-index:60;width:min(285px,86vw);padding:20px 14px;transition:transform .25s;display:block;transform:translate(-105%);box-shadow:24px 0 55px #0e2b4b47}.sidebar.sidebar-open{transform:translate(0)}.main{margin:0;padding:18px}.grid4,.grid3,.grid2{grid-template-columns:1fr}.mobilebar{color:#fff;z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#12345be0;justify-content:space-between;padding:14px;display:flex;position:sticky;top:0}.calendar{grid-template-columns:repeat(7,minmax(100px,1fr));overflow:auto}.calcell{min-width:100px}.table{min-width:720px}.card{overflow:auto}.report-filters{grid-template-columns:1fr}.legend{margin-left:0}.weekgrid{grid-template-columns:repeat(7,140px);overflow:auto}.period-label{min-width:auto}.invoice-info-grid,.invoice-bottom{grid-template-columns:1fr}.invoice-items{width:calc(100% - 28px);margin:0 14px}.invoice-info-grid,.invoice-bottom{margin-left:14px;margin-right:14px}.invoice-v2-head{padding:20px 18px}.invoice-sign{gap:20px;margin-left:14px;margin-right:14px}}@media print{body{background:#fff}.no-print{display:none!important}.printpage{background:#fff;padding:0}.invoice-v2{max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:0;border-radius:0}.invoice-v2-head{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#1e293b!important}.invoice-info-grid section,.invoice-items,.payment-box,.payment-note,.invoice-total-box{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.invoice-items th,.payment-box,.invoice-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}.invoice-actions{display:none!important}.report-print{max-width:none}.report-print .inner-card{overflow:visible}body.printing-report .sidebar,body.printing-report .mobilebar,body.printing-report .topbar,body.printing-report .main>:not(.modalback){display:none!important}body.printing-report .modalback{background:#fff;padding:0;display:block;position:static}body.printing-report .report-modal{max-width:none;max-height:none;box-shadow:none;border:0;padding:0;overflow:visible}body.printing-report .report-print-head{margin-bottom:24px;display:block}body.printing-report .report-print-head h1{color:var(--blue);margin:0}body.printing-report .no-print{display:none!important}}.login{isolation:isolate;background:radial-gradient(circle at 12% 18%,#fff3,#0000 26%),radial-gradient(circle at 88% 82%,#f4c84a29,#0000 25%),linear-gradient(135deg,#0b2848 0%,#174a79 48%,#2f74ae 100%);place-items:center;min-height:100svh;padding:32px 18px;display:grid;position:relative;overflow:hidden}.login:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(circle,#ffffff12,#0000 42%);position:absolute;inset:-20%}.login:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(120deg,#0000 0 35%,#ffffff0b 50%,#0000 65%);position:absolute;inset:0}.login-orb{filter:blur(2px);pointer-events:none;z-index:-1;border-radius:999px;position:absolute}.login-orb-one{background:radial-gradient(circle,#ffffff29,#fff0 68%);width:330px;height:330px;top:-90px;left:-120px}.login-orb-two{background:radial-gradient(circle,#f4c84a21,#f4c84a00 68%);width:420px;height:420px;bottom:-190px;right:-180px}.loginbox{-webkit-backdrop-filter:blur(28px);color:#fff;background:linear-gradient(145deg,#ffffff38,#ffffff1c);border:1px solid #ffffff4d;border-radius:30px;gap:0;width:min(440px,94vw);padding:38px 38px 28px;position:relative;box-shadow:0 30px 90px #03132359,inset 0 1px #ffffff3d}.login-brand{text-align:center;margin-bottom:30px}.login-icon{background:linear-gradient(145deg,#ffffff2e,#ffffff12);border:1px solid #ffffff57;border-radius:18px;place-items:center;width:58px;height:58px;margin:0 auto 17px;display:grid;box-shadow:inset 0 1px #ffffff40,0 10px 30px #051c342e}.login-icon span{color:#f4c84a;font-size:31px;line-height:1;transform:translateY(-1px)}.login-kicker{letter-spacing:.24em;color:#f4c84a;margin-bottom:10px;font-size:14px;font-weight:800;line-height:1}.login-brand h1{color:#fff;letter-spacing:-.025em;margin:0;font-size:30px;font-weight:800;line-height:1.15}.login-brand p{color:#eff7ffc2;max-width:330px;margin:10px auto 0;font-size:13px;line-height:1.55}.login-fields{gap:18px;display:grid}.login-field{gap:8px}.login-field label{letter-spacing:.01em;font-size:13px;font-weight:750;color:#f5f9fd!important}.loginbox .field input{color:#142c45;background:#ffffffe0;border:1px solid #ffffff4d;border-radius:14px;outline:none;height:50px;padding:0 15px;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s,transform .2s;box-shadow:inset 0 1px 1px #0000000d,0 5px 18px #051c3414}.loginbox .field input::placeholder{color:#71839a}.loginbox .field input:focus{background:#fff;border-color:#f4c84aeb;transform:translateY(-1px);box-shadow:0 0 0 4px #f4c84a26,0 8px 24px #051c341a}.login-error{color:#ffe5e5;text-align:center;background:#82181838;border:1px solid #ffaaaa59;border-radius:12px;margin-top:16px;padding:11px 13px;font-weight:650}.login-button{color:#142c45;background:linear-gradient(135deg,#f4c84a,#e5aa22);border:1px solid #ffffff24;border-radius:14px;width:100%;height:50px;margin-top:24px;font-size:15px;font-weight:850;transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 12px 28px #071f363d}.login-button:hover:not(:disabled){filter:saturate(1.05);transform:translateY(-2px);box-shadow:0 16px 32px #071f364d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:wait}.login-footer{text-align:center;color:#eff7ff80;letter-spacing:.05em;margin-top:22px;font-size:11px}@media (max-width:520px){.login{padding:20px 14px}.loginbox{border-radius:25px;padding:30px 22px 23px}.login-brand h1{font-size:26px}.login-brand{margin-bottom:26px}.login-icon{width:54px;height:54px}}
