.root{box-sizing:border-box}:root{--bg:#f5f7fb;--panel:#ffffff;--muted:#6b7280;--accent:#4361ee;--accent-600:#3650d6;--text:#0f172a;--rounded:12px;--glass: rgba(15,23,42,.04);--shadow-sm: 0 6px 18px rgba(23,32,63,.06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:var(--bg);color:var(--text)}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:260px;background:linear-gradient(180deg,#0b1220,#0f172a);color:#fff;padding:20px;display:flex;flex-direction:column;gap:18px;max-height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:8px 4px}.brand .logo{width:44px;height:44px;border-radius:10px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.brand .title{font-weight:700;font-size:18px}.nav{flex:1;display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding-right:6px}.nav::-webkit-scrollbar{width:8px}.nav::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:8px}.nav::-webkit-scrollbar-track{background:transparent}@supports (scrollbar-width: thin){.nav{scrollbar-width:thin}}.nav a{color:#cbd5e1;text-decoration:none;padding:12px 14px;border-radius:10px;display:flex;align-items:center;gap:14px;font-weight:700}.nav a:hover{background:#ffffff08;color:#fff}.nav a.active{background:linear-gradient(90deg,#4361ee0f,#4361ee0a);box-shadow:inset 4px 0 0 var(--accent);border-left:4px solid var(--accent);padding-left:10px}.nav .icon{width:36px;text-align:center}.user{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent)}.avatar{width:44px;height:44px;border-radius:10px;background:#0ea5a7;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.nav a .label{flex:1}.nav a .badge{background:#ffffff0f;padding:4px 8px;border-radius:8px;font-size:12px}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.header{height:72px;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--glass)}.header .left{display:flex;align-items:center;gap:16px}.header h1{font-size:20px;margin:0}.search{display:flex;align-items:center;background:#f2f4f7;padding:10px 14px;border-radius:12px;gap:12px;box-shadow:none;border:1px solid rgba(15,23,42,.04);min-width:220px;max-width:720px;flex:0 1 420px}.search input{border:0;outline:0;background:transparent;width:100%;font-size:14px}.header .right,.actions{display:flex;align-items:center;gap:12px}.icon-btn{background:var(--panel);border:0;padding:10px;border-radius:10px;box-shadow:var(--shadow-sm);cursor:pointer}.avatar-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.content{padding:24px;overflow-y:auto;overflow-x:hidden}.page-title{font-size:40px;font-weight:800;margin:8px 0 18px;color:var(--text)}.calendar-wrap{width:100%;margin:8px 0 40px;padding:0}.calendar-box{background:transparent;border-radius:10px;padding:0;width:100%}.brand .title{font-weight:700;font-size:15px;color:#e6eefc}.sidebar.compact{padding:12px 16px;width:260px}.sidebar.compact .nav a{padding:10px 12px}.sidebar.compact .user{padding:10px}.mini-calendar{width:220px;background:var(--panel);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-sm);margin:16px 0}.sidebar .mini-calendar{margin-bottom:12px}.mini-calendar{color:var(--text)}.mini-head{font-weight:700;margin-bottom:8px;color:var(--text)}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.mini-cell{height:24px;display:flex;align-items:center;justify-content:center;font-size:12px}.mini-weekday{color:var(--muted);font-weight:700}.mini-day{background:transparent;border-radius:6px;color:var(--text);cursor:pointer;transition:all .12s ease}.mini-day:hover{background:#4361ee1f;transform:translateY(-2px)}.mini-day:nth-child(7n){color:var(--muted)}.mini-empty{opacity:.2;color:var(--muted)}.mini-day.selected{background:linear-gradient(180deg,var(--accent),var(--accent-600));color:#fff;font-weight:700}.mini-day.today{box-shadow:0 0 0 2px #4361ee1f;border-radius:6px}.mini-day.has-unpaid{box-shadow:0 0 0 2px #ef444459;border-radius:6px}.mini-head{display:flex;align-items:center;gap:8px}.mini-nav{background:transparent;border:0;color:var(--muted);font-weight:700;font-size:14px;padding:6px 8px;border-radius:8px;cursor:pointer}.mini-nav:hover{background:#0f172a0a;color:var(--text)}.mini-title{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:800}@media (max-width:420px){.mini-title{font-size:14px}.mini-calendar{width:180px}}.icon-btn{position:relative}.icon-btn .badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:#ef4444;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;padding:0 6px}.avatar-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center}.avatar-circle{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;font-weight:700;overflow:hidden}.header{padding:10px 28px}.page-title{margin-top:6px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px;align-items:start}.card{background:var(--panel);border-radius:16px;padding:20px;box-shadow:0 10px 30px #1318290f;position:relative;overflow:visible}.card .head{display:flex;justify-content:space-between;align-items:center}.card .value{font-size:28px;font-weight:800}.card .label{color:var(--muted);font-weight:700}.card .icon-circle{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.card .muted-small{font-size:13px;color:var(--muted);margin-top:8px}.section{background:var(--panel);border-radius:16px;padding:18px;box-shadow:0 10px 30px #1318290f;margin-bottom:18px}.section .title{font-weight:700;margin-bottom:12px}.btn{padding:8px 14px;border-radius:10px;border:0;cursor:pointer;font-weight:700}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:transparent;border:1px solid rgba(15,23,42,.06);color:var(--text)}.table{width:100%;border-collapse:collapse}.table th{font-weight:700;padding:14px 12px;color:var(--muted);font-size:13px;text-align:left}.table td{padding:14px 12px;border-top:1px solid rgba(15,23,42,.04);vertical-align:middle}.table .status{padding:6px 10px;border-radius:999px;font-weight:700;font-size:12px}.table .actions-btn{background:transparent;border:2px solid rgba(67,97,238,.12);padding:8px;border-radius:10px;color:var(--accent);cursor:pointer}.calendar-root{display:flex;flex-direction:column;gap:8px;position:relative}.calendar-header{display:flex;position:sticky;top:0;z-index:20;background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 18px #17203f0a;border-radius:12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.calendar-header::-webkit-scrollbar{display:none}.calendar-time-col{width:60px;flex-shrink:0;color:var(--muted);font-size:13px}.calendar-col-header{width:300px;min-width:300px;flex-shrink:0;background:transparent;padding:6px;text-align:center;font-weight:600;color:var(--muted);display:flex;align-items:center;justify-content:center}.calendar-col-header .emp-header{display:flex;flex-direction:row;align-items:center;gap:8px;padding:4px 6px;background:transparent}.emp-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#a78bfa);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;box-shadow:none;font-size:13px}.emp-name{font-weight:700;font-size:13px;color:var(--text)}.emp-sub{display:none}.calendar-body{display:flex;position:relative;border-radius:10px;overflow-x:auto;overflow-y:clip;background:linear-gradient(180deg,#fff9,#fff6);scrollbar-width:none;touch-action:pan-y}.calendar-body::-webkit-scrollbar{display:none}.calendar-time-column{width:60px;flex-shrink:0;background:transparent}.calendar-time-cell{height:60px;border-bottom:1px solid var(--glass);padding:6px 8px;font-size:12px;color:var(--muted)}.calendar-col{width:300px;min-width:300px;flex-shrink:0;position:relative;border-left:1px solid var(--glass);min-height:480px}.calendar-appt{position:absolute;left:8px;right:8px;background:linear-gradient(180deg,#34d399,#10b981);color:#042617;padding:8px;border-radius:8px;box-shadow:0 8px 20px #10b98124;cursor:grab;overflow:hidden;box-sizing:border-box}.calendar-appt,.calendar-appt *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.calendar-appt-client{font-weight:800;font-size:11px;margin-bottom:3px;opacity:.95;word-break:break-word;line-height:1.3}.calendar-appt-time{font-weight:700;font-size:12px;margin-bottom:3px}.calendar-appt-amount{font-weight:800;font-size:13px;margin-bottom:3px;background:#fff6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:4px 8px;border-radius:6px;display:inline-block;box-shadow:0 2px 6px #00000014}.unpaid-dot{width:8px;height:8px;border-radius:8px;background:#f59e0b;display:inline-block}.calendar-appt-notes{font-size:11px;opacity:.8;margin-bottom:3px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-appt-comment{font-size:12px;opacity:.95;overflow:hidden;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;line-height:1.4}.calendar-appt-comment{font-size:12px;color:#042617e6}.calendar-appt-resize{position:absolute;left:0;right:0;height:10px;bottom:0;cursor:ns-resize;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.calendar-creating{position:absolute;left:8px;right:8px;background:#4361ee1f;border:1px dashed rgba(67,97,238,.35);border-radius:8px}@media (max-width:1000px){.sidebar{width:80px}.brand .title{display:none}.nav a{text-align:center;padding:12px}.user{display:none}}.calendar-root{display:flex;flex-direction:column;gap:8px}.calendar-header{display:flex;position:sticky;top:0;z-index:20;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 6px 18px #17203f0a}.calendar-time-col{width:60px;background:transparent}.calendar-col-header{flex:1;background:transparent;color:var(--muted);padding:8px;text-align:center}.calendar-body{display:flex;position:relative;border:1px solid #e6e6e6;overflow:hidden}.calendar-time-column{width:60px;background:#fafafa}.calendar-time-cell{height:60px;border-bottom:1px solid #eee;padding:4px;font-size:12px;color:#666}.calendar-col{flex:1;position:relative;border-left:1px solid #f0f0f0}.calendar-col:after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(transparent,#00000005);pointer-events:none}.calendar-appt{position:absolute;left:6px;right:6px;background:#34d399;color:#042617;padding:6px;border-radius:4px;box-shadow:0 2px 6px #00000014;cursor:grab;overflow:hidden}.calendar-appt-time{font-weight:600;font-size:12px}.calendar-appt-comment{font-size:12px;opacity:.95}.calendar-appt-resize{position:absolute;left:0;right:0;height:8px;bottom:0;cursor:ns-resize}.calendar-creating{position:absolute;left:6px;right:6px;background:#3b82f640;border:1px dashed #3b82f6}.calendar-hover-line{position:absolute;left:60px;right:0;height:0;pointer-events:none;border-top:1px dashed rgba(15,23,42,.12);z-index:12}.calendar-hover-time{position:absolute;left:8px;transform:translateY(-50%);background:var(--panel);padding:4px 8px;border-radius:8px;font-size:12px;color:var(--muted);box-shadow:0 4px 12px #02061714;pointer-events:none;z-index:13}
