:root{color:#202327;font-synthesis:none;text-rendering:optimizelegibility;--bg:#f7f8fa;--surface:#fff;--surface-soft:#f2f4f7;--text:#202327;--text-soft:#717780;--text-faint:#9aa0a8;--line:#eceef1;--line-strong:#e0e3e7;--dark:#202327;--radius:14px;--sidebar-width:220px;--transition:.16s ease;background:#f7f8fa;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-width:1180px;min-height:100%;margin:0}body{min-height:100vh;color:var(--text)}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #9ca3af}.app-shell{min-height:100vh}.sidebar{z-index:40;width:var(--sidebar-width);background:#f1f3f5;border-right:1px solid #e7e9ec;flex-direction:column;padding:22px 14px 18px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;height:44px;padding:0 12px;display:flex}.sidebar-brand span{letter-spacing:-.045em;font-family:Avenir Next,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:20px;font-weight:760}.sidebar-nav{flex-direction:column;gap:4px;margin-top:24px;display:flex}.sidebar-nav-item,.sidebar-create{color:#636971;cursor:pointer;text-align:left;width:100%;height:42px;transition:background var(--transition), color var(--transition);background:0 0;border:0;border-radius:10px;align-items:center;gap:11px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.sidebar-nav-item:hover{color:var(--text);background:#2023270e}.sidebar-nav-item.active{color:#fff;background:#202327}.sidebar-create{color:#30343a;background:#fff;margin-top:18px;box-shadow:0 1px 2px #0f172a0d}.sidebar-create:hover{background:#fafbfc}.app-main{min-height:100vh;margin-left:var(--sidebar-width);padding:28px 32px 52px}.content-container{width:100%;max-width:1420px;margin:0 auto}.page-section{animation:.15s both pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.page-toolbar.modern-page-header{justify-content:space-between;align-items:center;gap:20px;min-height:48px;margin-bottom:18px;display:flex}.page-title-block h1{letter-spacing:-.04em;margin:0;font-size:28px;font-weight:720;line-height:1.1}.header-actions,.calendar-header-controls{align-items:center;gap:8px;display:flex}.primary-button,.ghost-button,.icon-button{cursor:pointer;transition:background var(--transition), color var(--transition), transform var(--transition);border:0}.primary-button{color:#fff;background:#202327;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 15px;font-size:13px;font-weight:650;display:inline-flex}.primary-button:hover{background:#121416}.primary-button:active{transform:translateY(1px)}.ghost-button{color:#626871;background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 11px;font-size:13px;font-weight:600;display:inline-flex}.ghost-button:hover{color:var(--text);background:#eef0f3}.icon-button{color:#717780;background:0 0;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{color:var(--text);background:#eef0f3}.segmented-control{background:#eceff2;border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.segmented-control button{color:#747a82;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:30px;padding:0 11px;font-size:12px;font-weight:650}.segmented-control button.active{color:#25282c;background:#fff;box-shadow:0 1px 2px #0f172a14}.search-box{color:#8a9098;background:#eef0f3;border-radius:9px;align-items:center;gap:8px;width:250px;height:36px;padding:0 11px;display:flex}.search-box:focus-within{background:#fff;box-shadow:0 0 0 1px #d9dde2,0 0 0 3px #2023270a}.search-box input{width:100%;color:var(--text);background:0 0;border:0;outline:0;font-size:13px}.search-box input::placeholder{color:#979da5}.records-controls{align-items:center;gap:8px;margin-bottom:12px;display:flex}.compact-select{position:relative}.compact-select select{color:#4f555d;cursor:pointer;background:#eceff2;border:0;border-radius:9px;min-width:150px;height:34px;padding:0 34px 0 11px;font-size:12.5px;font-weight:600}.records-total{color:#90969d;margin-left:4px;font-size:12px}.table-card,.panel-card,.month-calendar-card,.week-calendar-card,.selected-day-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #0f172a06}.table-card{overflow:hidden}.data-table{width:100%}.table-row{align-items:center;gap:14px;min-width:0;display:grid}.records-table .table-row{grid-template-columns:105px minmax(130px,1fr) minmax(155px,1.2fr) minmax(155px,1.05fr) 110px 112px minmax(130px,1fr)}.finance-table .table-row{grid-template-columns:90px minmax(130px,1fr) minmax(190px,1.4fr) 110px 105px 110px}.table-head{border-bottom:1px solid var(--line);color:#9298a0;letter-spacing:.045em;text-transform:uppercase;background:#fbfbfc;min-height:40px;padding:0 16px;font-size:10.5px;font-weight:700}.table-body-row{color:#5d636b;text-align:left;cursor:pointer;width:100%;min-height:54px;transition:background var(--transition);background:#fff;border:0;border-bottom:1px solid #f0f1f3;padding:0 16px;font-size:12.5px}.table-body-row:last-child{border-bottom:0}.table-body-row:hover{background:#f8f9fa}.table-body-row>div{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.strong-cell{color:#25282c;font-weight:650}.date-cell{color:#777d85;font-variant-numeric:tabular-nums}.money-cell{color:#25282c;font-variant-numeric:tabular-nums}.contact-cell,.comment-cell{color:#777d85}.align-right{text-align:right}.expense-money{color:#c24141}.profit-money{color:#148044;font-weight:650}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.status-booked{color:#493000;background:#fbbf24}.status-progress{color:#fff;background:#f97316}.status-done{color:#fff;background:#16a34a}.status-cancelled{color:#fff;background:#ef4444}.empty-state{color:#8d939b;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:160px;font-size:12.5px;display:flex}.empty-state strong{color:#4e545b;font-size:13px}.calendar-header-controls{flex-wrap:nowrap}.calendar-nav-buttons{gap:2px;display:flex}.calendar-period-bar{align-items:center;min-height:38px;margin-bottom:10px;display:flex}.calendar-period-bar h2{letter-spacing:-.025em;text-transform:capitalize;margin:0;font-size:18px;font-weight:680}.month-calendar-card,.week-calendar-card{overflow:hidden}.month-weekdays{border-bottom:1px solid var(--line);background:#fbfbfc;grid-template-columns:repeat(7,1fr);align-items:center;min-height:36px;display:grid}.month-weekdays span{color:#8c929a;text-transform:uppercase;padding:0 12px;font-size:11px;font-weight:700}.month-grid{grid-template-columns:repeat(7,1fr);display:grid}.month-day{cursor:pointer;min-height:92px;transition:background var(--transition);background:#fff;border-bottom:1px solid #eef0f2;border-right:1px solid #eef0f2;padding:9px 10px;position:relative}.month-day:nth-child(7n){border-right:0}.month-day:nth-last-child(-n+7){border-bottom:0}.month-day:hover{background:#fafbfc}.month-day.outside{color:#bec3c9;background:#fbfbfc}.month-day.selected{background:#f4f6f9;box-shadow:inset 0 0 0 1px #dce1e7}.month-day-number{color:#3b4046;font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-bottom:6px;font-size:15px;font-weight:700;display:inline-flex}.month-day.outside .month-day-number{color:#b9bec4}.month-day.today .month-day-number{color:#fff;background:#202327}.month-day-records{flex-direction:column;gap:4px;display:flex}.month-day-records button{text-align:left;cursor:pointer;border:0;border-radius:7px;flex-direction:column;gap:1px;width:100%;padding:5px 7px;display:flex;overflow:hidden}.month-day-records button strong,.month-day-records button small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.month-day-records button strong{font-size:10.5px;font-weight:700}.month-day-records button small{opacity:.78;font-size:9.5px}.more-records{color:#8d939b;padding-left:5px;font-size:10px}.tone-booked{color:#7a5200!important;background:#fff3c4!important}.tone-progress{color:#b84707!important;background:#ffeadb!important}.tone-done{color:#11743b!important;background:#dcf6e5!important}.tone-cancelled{color:#be3030!important;background:#fee4e4!important}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.week-day-column{border-right:1px solid #eef0f2;min-width:0;min-height:420px}.week-day-column:last-child{border-right:0}.week-day-column.selected{background:#fafbfc}.week-day-head{border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;width:100%;height:64px;padding:0 12px;display:flex}.week-day-head span{color:#8e949c;text-transform:uppercase;font-size:11px;font-weight:700}.week-day-head strong{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:inline-flex}.week-day-column.today .week-day-head strong{color:#fff;background:#202327}.calendar-records-stack{flex-direction:column;gap:6px;padding:8px;display:flex}.calendar-record-card{text-align:left;cursor:pointer;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 9px;display:flex}.calendar-record-card strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.calendar-record-card span{text-overflow:ellipsis;white-space:nowrap;opacity:.82;max-width:100%;font-size:10px;overflow:hidden}.calendar-record-card b{margin-top:3px;font-size:10px}.selected-day-panel{margin-top:12px;overflow:hidden}.selected-day-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:48px;padding:0 16px;display:flex}.selected-day-heading h2{text-transform:capitalize;margin:0;font-size:14px;font-weight:680}.selected-day-heading span{color:#8c929a;font-size:11px}.selected-day-list{flex-direction:column;display:flex}.selected-day-record{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #f0f1f3;grid-template-columns:minmax(200px,1.5fr) minmax(170px,1fr) 110px 110px;align-items:center;gap:14px;width:100%;min-height:54px;padding:0 16px;display:grid}.selected-day-record:last-child{border-bottom:0}.selected-day-record:hover{background:#f8f9fa}.selected-record-main{flex-direction:column;gap:2px;min-width:0;display:flex}.selected-record-main strong,.selected-record-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selected-record-main strong{font-size:12.5px}.selected-record-main span,.selected-record-contact{color:#7b8189;font-size:11.5px}.selected-record-price{color:#30343a;text-align:right;font-size:12px;font-weight:650}.selected-day-empty{color:#9399a1;place-items:center;min-height:72px;font-size:12px;display:grid}.finance-periods{align-items:center;gap:8px;display:flex}.custom-range{align-items:center;gap:6px;display:flex}.custom-range input{color:#4f555d;background:#eceff2;border:0;border-radius:8px;height:32px;padding:0 8px;font-size:11px}.custom-range span{color:#a0a6ad}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.kpi-card{background:#fff;border-radius:13px;flex-direction:column;justify-content:space-between;min-height:104px;padding:17px 18px;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0d}.kpi-card:before{content:"";background:var(--kpi-color);height:3px;position:absolute;inset:0 0 auto}.kpi-card span{color:#7c828a;font-size:12px;font-weight:650}.kpi-card strong{letter-spacing:-.045em;font-size:clamp(24px,2vw,30px);line-height:1}.kpi-amber{--kpi-color:#f59e0b}.kpi-red{--kpi-color:#ef4444}.kpi-green{--kpi-color:#16a34a}.kpi-violet{--kpi-color:#7c3aed}.finance-grid{grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr);gap:10px;margin-bottom:10px;display:grid}.panel-card{padding:16px}.panel-heading{justify-content:space-between;align-items:center;gap:16px;min-height:28px;margin-bottom:10px;display:flex}.panel-heading h2{margin:0;font-size:14px;font-weight:680}.panel-heading strong{font-size:12px}.chart-wrap{height:270px}.chart-tooltip{color:#fff;background:#202327;border-radius:8px;flex-direction:column;gap:3px;padding:8px 10px;font-size:10px;display:flex;box-shadow:0 8px 24px #0f172a29}.chart-tooltip span{color:#cfd3d8}.chart-tooltip strong{font-size:11px}.breakdown-content{grid-template-columns:170px minmax(0,1fr);align-items:center;gap:14px;min-height:270px;display:grid}.donut-wrap{aspect-ratio:1;width:170px;position:relative}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center strong{letter-spacing:-.04em;font-size:24px}.donut-center span{color:#979da5;margin-top:2px;font-size:10px}.breakdown-legend{flex-direction:column;gap:10px;min-width:0;display:flex}.legend-row{grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:11px;display:grid}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-label{text-overflow:ellipsis;white-space:nowrap;color:#666c74;overflow:hidden}.legend-row strong{font-size:11px}.chart-empty{color:#90969e;text-align:center;place-items:center;height:270px;font-size:12px;display:grid}.operations-card{padding:0;overflow:hidden}.operations-heading{border-bottom:1px solid var(--line);min-height:48px;margin-bottom:0;padding:0 16px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#15181c47;justify-content:center;align-items:center;padding:24px;animation:.14s both fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.record-modal{background:#fff;border-radius:16px;width:min(700px,92vw);max-height:calc(100vh - 48px);animation:.16s both modalIn;overflow:auto;box-shadow:0 24px 72px #0f172a2e}@keyframes modalIn{0%{opacity:0;transform:translateY(6px)scale(.994)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:0 20px;display:flex}.modal-header h2{letter-spacing:-.02em;margin:0;font-size:18px}.record-form{padding:18px 20px}.form-grid{gap:14px;display:grid}.form-grid.two-columns{grid-template-columns:1fr 1fr}.form-grid label{flex-direction:column;gap:6px;display:flex}.form-grid label.full-width{grid-column:1/-1}.form-grid label>span{color:#686e76;font-size:11.5px;font-weight:650}.form-grid input,.form-grid select,.form-grid textarea{width:100%;color:var(--text);transition:background var(--transition), box-shadow var(--transition);background:#f2f4f7;border:1px solid #0000;border-radius:9px}.form-grid input,.form-grid select{height:39px;padding:0 10px}.form-grid textarea{resize:vertical;min-height:84px;padding:10px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{background:#fff;outline:0;box-shadow:0 0 0 1px #cfd4da,0 0 0 3px #2023270a}.field-error input,.field-error select,.field-error textarea{background:#fff1f1;box-shadow:inset 0 0 0 1px #f0bcbc}.field-error-text{color:#c23f3f;font-size:10.5px}.status-select-booked{color:#6d4900!important;background:#fff3c4!important}.status-select-progress{color:#a33e06!important;background:#ffeadb!important}.status-select-done{color:#106936!important;background:#dcf6e5!important}.status-select-cancelled{color:#ad2f2f!important;background:#fee4e4!important}.modal-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding-top:14px;display:flex}.footer-actions{gap:6px;display:flex}.delete-confirmation{color:#737981;align-items:center;gap:8px;font-size:11.5px;display:flex}.text-button{color:#5e646c;cursor:pointer;background:0 0;border:0;font-size:11.5px;font-weight:650}.text-button:hover{color:#202327}.danger-button,.danger-text{color:#c03d3d}.loading-state{color:#8b9199;place-items:center;min-height:420px;font-size:12px;display:grid}@media (width<=1320px){:root{--sidebar-width:206px}.app-main{padding:24px 24px 44px}.records-table .table-row{grid-template-columns:96px minmax(115px,1fr) minmax(140px,1.15fr) minmax(135px,1fr) 100px 108px minmax(115px,.9fr)}.month-day{min-height:86px;padding:8px}.month-day-number{width:28px;height:28px;font-size:14px}.chart-wrap,.chart-empty{height:250px}.breakdown-content{min-height:250px}}.app-boot{color:#202327;letter-spacing:-.045em;background:#f7f8fa;place-items:center;min-height:100vh;font-family:Avenir Next,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:22px;font-weight:760;display:grid}.login-screen{background:#f5f6f8;place-items:center;min-height:100vh;padding:32px;display:grid}.login-card{background:#fff;border:1px solid #e6e8eb;border-radius:18px;width:min(390px,100%);padding:34px;box-shadow:0 18px 60px #0f172a12}.login-brand{letter-spacing:-.045em;margin-bottom:28px;font-family:Avenir Next,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:22px;font-weight:760}.login-lock{color:#51565d;background:#f0f2f4;border-radius:11px;place-items:center;width:38px;height:38px;margin-bottom:18px;display:grid}.login-card h1{letter-spacing:-.035em;margin:0;font-size:26px;line-height:1.15}.login-card>p{color:#7b8189;margin:7px 0 24px;font-size:13.5px}.login-field{gap:7px;display:grid}.login-field span{color:#5f656d;font-size:12.5px;font-weight:650}.login-field input{color:#202327;background:#fff;border:1px solid #dfe2e6;border-radius:10px;outline:none;width:100%;height:42px;padding:0 12px}.login-field input:focus{border-color:#aeb4bb;box-shadow:0 0 0 3px #2023270e}.login-error{color:#b42318;background:#fff0f0;border-radius:9px;margin-top:10px;padding:9px 11px;font-size:12.5px}.login-submit{width:100%;min-height:42px;margin-top:16px}.primary-button:disabled,.ghost-button:disabled,.icon-button:disabled{cursor:default;opacity:.55}.sidebar-logout{color:#858b93;cursor:pointer;text-align:left;width:100%;height:40px;transition:background var(--transition), color var(--transition);background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;margin-top:auto;padding:0 12px;font-size:13px;font-weight:600;display:flex}.sidebar-logout:hover{color:#4f555d;background:#2023270e}.service-error{background:#fff;border:1px solid #e7e9ec;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;min-height:160px;padding:26px;display:flex}.service-error>div{gap:5px;display:grid}.service-error strong{color:#34383d;font-size:14px}.service-error span{color:#80868e;font-size:12.5px}.action-error-toast{z-index:100;color:#a9342b;background:#fff7f6;border:1px solid #f2c9c5;border-radius:10px;max-width:420px;padding:11px 14px;font-size:12.5px;font-weight:600;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 30px #0f172a1a}
