.e1403-control{--n:#15344f;--b:#19719e;--bg:#f4f7f9;--i:#17212b;--m:#64748b;--l:#d9e2e8;--c:#fff;--ok:#18794e;--d:#b42318;--w:#8b5c08;color:var(--i);font:14px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.e1403-control *{box-sizing:border-box}.e1403-control header{position:sticky;top:0;z-index:9;padding:9px max(12px,calc((100% - 1040px)/2));background:var(--n);color:#fff;box-shadow:0 2px 10px #0003}.e1403-control h1,.e1403-control h2,.e1403-control h3{font-family:inherit}.e1403-control h1{margin:0;font-size:17px;line-height:1.25}.e1403-control header small{color:#c7dce9;font-size:11px}.e1403-control .wrap{max-width:1040px;margin:auto;padding:10px 12px 30px}.e1403-control .nav{display:flex;gap:6px;overflow:auto;padding:1px 0 10px}.e1403-control .nav button{flex:0 0 auto}.e1403-control .view{display:none}.e1403-control .view.on{display:block}.e1403-control .card,.e1403-control .project-card{margin-bottom:10px;padding:12px;background:var(--c);border:1px solid var(--l);border-radius:10px;box-shadow:0 1px 2px #17212b0a}.e1403-control .card h2{margin:0 0 8px;font-size:17px}.e1403-control .card h3,.e1403-control .project-card h3{margin:10px 0 6px;font-size:15px}.e1403-control .subcard{margin-top:8px;padding:10px;background:#f8fafb;border:1px solid var(--l);border-radius:8px}.e1403-control .muted{color:var(--m);font-size:12px}.e1403-control .notice{margin-bottom:10px;padding:9px;background:#e8f4fb;border-left:4px solid var(--b);border-radius:6px;color:#174a6c;font-size:13px}.e1403-control .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.e1403-control .metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.e1403-control .metric{font-size:21px;color:var(--n);font-weight:750}.e1403-control button,.e1403-control .button{min-height:37px;padding:7px 10px;border:1px solid var(--l);border-radius:7px;background:#fff;color:var(--i);font:inherit;line-height:1.2;cursor:pointer}.e1403-control button.primary{background:var(--b);border-color:var(--b);color:#fff}.e1403-control button.danger{border-color:#dcbbb8;color:var(--d)}.e1403-control button.small{min-height:29px;padding:4px 7px;font-size:11px}.e1403-control .nav button.on{background:var(--n);border-color:var(--n);color:#fff}.e1403-control button:disabled{opacity:.5;cursor:not-allowed}.e1403-control form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.e1403-control .full{grid-column:1/-1}.e1403-control label{display:block;font-size:12px;font-weight:650}.e1403-control input,.e1403-control select,.e1403-control textarea{display:block;width:100%;min-height:38px;margin-top:3px;padding:8px;border:1px solid #bdcad3;border-radius:7px;background:#fff;color:var(--i);font:15px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.e1403-control textarea{min-height:62px;resize:vertical}.e1403-control .actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.e1403-control .mt{margin-top:10px}.e1403-control .table{overflow:auto}.e1403-control table{border-collapse:collapse;width:100%;font-size:12px}.e1403-control th,.e1403-control td{padding:7px 6px;border-bottom:1px solid var(--l);text-align:left;vertical-align:top}.e1403-control th{font-size:10px;color:var(--m);text-transform:uppercase;white-space:nowrap}.e1403-control .empty{padding:19px;text-align:center;color:var(--m)}.e1403-control .hidden{display:none!important}.e1403-control .timer{font-size:28px;font-weight:750;color:var(--n);font-variant-numeric:tabular-nums}.e1403-control #timerCard.run{background:#f0fbf5;border-color:#6bb890}.e1403-control .calendar-tools{display:grid;grid-template-columns:38px 1fr 1fr 38px;gap:7px;align-items:end;margin-bottom:10px}.e1403-control .calendar-tools button{padding:4px;font-size:20px}.e1403-control .calendar{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--l);border-left:1px solid var(--l)}.e1403-control .cal-head{padding:5px 2px;background:#edf3f6;border-right:1px solid var(--l);border-bottom:1px solid var(--l);text-align:center;font-size:10px;font-weight:700;color:var(--m)}.e1403-control .day{min-height:78px;padding:4px;background:#fff;border-right:1px solid var(--l);border-bottom:1px solid var(--l);cursor:pointer}.e1403-control .day.blank{background:#f6f8fa;cursor:default}.e1403-control .day.today{box-shadow:inset 0 0 0 2px var(--b)}.e1403-control .day.selected{background:#e8f4fb}.e1403-control .daynum{font-weight:750}.e1403-control .cal-line{margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}.e1403-control .hours{color:#145b82}.e1403-control .travel{color:var(--w)}.e1403-control .toastbox{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:50;display:grid;gap:7px;pointer-events:none}.e1403-control .toast{max-width:min(370px,calc(100vw - 24px));padding:10px 12px;border-radius:8px;background:#18364d;color:#fff;box-shadow:0 8px 25px #0003}.e1403-control .toast.ok{background:var(--ok)}.e1403-control .toast.err{background:var(--d)}.e1403-control .checks{display:flex;gap:10px;flex-wrap:wrap}.e1403-control .checks label{display:flex;align-items:center;gap:5px}.e1403-control .checks input{width:17px;min-height:17px;margin:0}.e1403-control .project-head{display:flex;justify-content:space-between;gap:9px;align-items:flex-start}.e1403-control .task-card{margin-top:7px;padding:8px;border:1px solid #dfe7ec;border-radius:7px;background:#f9fbfc}.e1403-control .detail-space{margin-top:10px}
.e1403-control #access-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(135deg,#15344f,#245b78);color:#17324a}.e1403-control #access-gate[hidden]{display:none}.e1403-control .access-card{width:min(100%,360px);padding:23px;border-radius:15px;background:#fff;box-shadow:0 20px 55px rgba(0,0,0,.28)}.e1403-control .access-card h1{margin:0 0 7px;font-size:1.25rem}.e1403-control .access-card p{margin:0 0 16px;color:#506274;line-height:1.4}.e1403-control .access-card label{display:block;margin-bottom:5px;font-weight:700}.e1403-control .access-card input{box-sizing:border-box;width:100%;padding:10px;border:1px solid #b8c6d1;border-radius:8px;font:inherit}.e1403-control .access-card button,.e1403-control #logout-button{cursor:pointer;font:inherit;font-weight:700}.e1403-control .access-card button{width:100%;margin-top:11px;padding:10px;border:0;border-radius:8px;background:#15344f;color:#fff}.e1403-control .access-error{min-height:1.25em;margin:8px 0 0;color:#b42318;font-size:.88rem}.e1403-control #logout-button{position:fixed;top:9px;right:9px;z-index:1000;padding:7px 9px;border:1px solid #b8c6d1;border-radius:7px;background:#fff;color:#15344f;box-shadow:0 2px 8px rgba(0,0,0,.12)}.e1403-control #logout-button[hidden]{display:none}.e1403-control .password-message{min-height:1.25em;margin:8px 0 0;font-size:.88rem}.e1403-control .password-message.error{color:#b42318}.e1403-control .password-message.success{color:#087443}
@media(max-width:700px){.e1403-control .wrap{padding:9px 8px 26px}.e1403-control header{padding:9px 10px}.e1403-control h1{font-size:15px}.e1403-control .card,.e1403-control .project-card{padding:10px}.e1403-control .grid,.e1403-control form{grid-template-columns:1fr;gap:8px}.e1403-control .full{grid-column:auto}.e1403-control .metrics{grid-template-columns:1fr 1fr;gap:7px}.e1403-control button,.e1403-control .button{min-height:40px}.e1403-control .actions>button.primary:last-child{width:100%}.e1403-control .calendar-tools{gap:4px}.e1403-control .day{min-height:62px;padding:3px}.e1403-control .cal-line{font-size:9px}.e1403-control th,.e1403-control td{padding:6px 5px;white-space:nowrap}.e1403-control .project-head{display:block}.e1403-control .project-head .actions{margin-top:7px}}
.e1403-control .password-input{position:relative}.e1403-control .password-input input{padding-right:78px}.e1403-control .password-toggle{position:absolute;top:50%;right:5px;min-height:29px;transform:translateY(-50%);padding:4px 7px;border:0;background:transparent;color:var(--b);font-size:11px;font-weight:700}.e1403-control .access-card .password-toggle{width:auto;margin:0;background:transparent;color:var(--b)}
.e1403-control .record-filters{display:grid;gap:7px;margin:0 0 10px}.e1403-control .filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.e1403-control .filter-group-title{min-width:68px;color:var(--m);font-size:11px;font-weight:750;text-transform:uppercase}.e1403-control button.filter-chip{min-height:29px;padding:4px 8px;border-color:#bdcad3;background:#f8fafb;font-size:11px;font-weight:750;letter-spacing:.03em}.e1403-control button.filter-chip[aria-pressed="true"]{border-color:var(--b);background:var(--b);color:#fff}.e1403-control button.filter-clear{min-height:29px;padding:4px 7px;border-style:dashed;font-size:11px}.e1403-control .filter-heading{font-size:12px;font-weight:750}
.e1403-control button.filter-all{border-style:dashed}.e1403-control .filter-month-group{align-items:flex-start}.e1403-control .filter-months{display:grid;gap:7px;min-width:0;width:100%}.e1403-control .filter-month-row{display:grid;gap:5px;padding:6px;border:1px solid #dfe7ec;border-radius:7px;background:#fbfcfd}.e1403-control .filter-month-head,.e1403-control .filter-month-buttons{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.e1403-control .filter-month-buttons{padding-left:40px}.e1403-control .filter-year{min-width:35px;color:var(--m);font-size:11px;font-weight:750}.e1403-control .filter-quarter-label{margin-left:3px;color:var(--m);font-size:10px;font-weight:700;text-transform:uppercase}
.e1403-control .project-tabs{display:flex;gap:6px;overflow:auto;margin:0 0 10px;padding:1px 0}.e1403-control button.project-tab{flex:0 0 auto;min-height:32px;padding:5px 10px;border-color:#bdcad3;background:#f8fafb;font-size:11px;font-weight:750;letter-spacing:.04em}.e1403-control button.project-tab[aria-pressed="true"]{border-color:var(--n);background:var(--n);color:#fff}.e1403-control .project-finance{margin-top:10px;padding:9px;border:1px solid #dfe7ec;border-radius:8px;background:#f8fafb}.e1403-control .project-finance h3,.e1403-control .project-expenses h3{margin:0 0 7px}.e1403-control .finance-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.e1403-control .finance-metric{min-width:0;padding:7px;border:1px solid #dfe7ec;border-radius:6px;background:#fff}.e1403-control .finance-metric span{display:block;min-height:28px;color:var(--m);font-size:10px;font-weight:700;line-height:1.25}.e1403-control .finance-metric b{display:block;overflow:hidden;color:var(--n);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.e1403-control .finance-metric.profit-positive b{color:var(--ok)}.e1403-control .finance-metric.profit-negative b{color:var(--d)}.e1403-control .project-finance>.muted{display:block;margin:7px 0 0}.e1403-control .project-expenses{margin-top:9px;padding-top:9px;border-top:1px solid #dfe7ec}.e1403-control .project-expense-list{display:grid;gap:4px;margin:0 0 7px;padding:0;list-style:none}.e1403-control .project-expense-list li{display:flex;align-items:center;gap:7px;min-width:0;padding:5px 0;border-bottom:1px solid #edf1f3}.e1403-control .project-expense-list li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e1403-control .project-expense-list li b{font-size:12px;white-space:nowrap}.e1403-control .project-expense-list li.muted{display:block}.e1403-control .project-expense-form{grid-template-columns:minmax(0,1fr) 130px auto;align-items:end;gap:7px}.e1403-control .project-expense-form .actions{padding-bottom:1px}
.e1403-control button.project-card-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--n);font-size:17px;font-weight:750;text-align:left}.e1403-control button.project-card-toggle:hover{background:#f5f9fb}.e1403-control button.project-card-toggle span:last-child{font-size:22px;font-weight:400}.e1403-control .project-card-content{padding-top:10px}.e1403-control .project-card-content>.project-head{padding-bottom:2px}
.e1403-control .field-label{display:block;font-size:12px;font-weight:650}.e1403-control .calculated-value{display:block;min-height:38px;margin-top:3px;padding:8px;border:1px solid #bdcad3;border-radius:7px;background:#f8fafb;color:var(--n);font-size:15px;font-weight:750}.e1403-control .task-card>.project-finance{margin-top:8px}.e1403-control .task-card>.project-expenses{margin-top:8px}.e1403-control .task-card>.project-expenses h3{font-size:13px}.e1403-control .task-card>.task-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.e1403-control .task-card>.task-head .actions{flex:0 0 auto}
.e1403-control .report-period{margin:0;padding:10px;border:1px solid var(--b);border-radius:8px;background:#f8fbfd}.e1403-control .report-period legend{padding:0 5px;color:var(--n);font-size:12px;font-weight:750;text-transform:uppercase}.e1403-control .report-period-options{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:9px}.e1403-control .report-period-option{min-width:0;padding:8px;border:1px solid #d7e3e9;border-radius:7px;background:#fff;transition:opacity .15s}.e1403-control .report-period-option.is-disabled{opacity:.52;background:#f4f6f7}.e1403-control .report-period-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:7px;color:var(--n);font-size:12px}.e1403-control .report-date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.e1403-control .report-period-option .filter-months{gap:5px}.e1403-control .report-period-option .filter-month-row{padding:5px}.e1403-control .report-period-option .filter-month-buttons{padding-left:0}.e1403-control .report-period-option.is-disabled button,.e1403-control .report-period-option.is-disabled input{cursor:not-allowed}
@media(max-width:700px){.e1403-control .finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.e1403-control .project-expense-form{grid-template-columns:1fr}.e1403-control .project-expense-form .actions{padding-bottom:0}.e1403-control .project-expense-form .actions .primary{width:100%}.e1403-control .task-card>.task-head{display:block}.e1403-control .task-card>.task-head .actions{margin-top:7px}.e1403-control .report-period-options,.e1403-control .report-date-inputs{grid-template-columns:1fr}}
.e1403-control .record-actions{white-space:nowrap}.e1403-control .time-travel-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:10px;border:1px solid #c9dfe9;border-radius:8px;background:#f4f9fc}.e1403-control .time-travel-heading{grid-column:1/-1;display:grid;gap:2px;color:var(--n);font-size:12px}.e1403-control .time-travel-total{align-self:end;padding:9px;color:var(--n);font-size:12px}
@media(max-width:700px){.e1403-control .time-travel-fields{grid-template-columns:1fr}.e1403-control .time-travel-total{padding:0}}
.e1403-control table.report-detail-table{table-layout:fixed}.e1403-control table.report-detail-table th:nth-child(1){width:8%}.e1403-control table.report-detail-table th:nth-child(2){width:11%}.e1403-control table.report-detail-table th:nth-child(3){width:5%}.e1403-control table.report-detail-table th:nth-child(4){width:13%}.e1403-control table.report-detail-table th:nth-child(5){width:5%}.e1403-control table.report-detail-table th:nth-child(6){width:45%}.e1403-control table.report-detail-table th:nth-child(7){width:13%}.e1403-control #detailRows td:nth-child(6){font-family:inherit!important;font-size:11px!important;font-style:normal;font-weight:400;letter-spacing:normal!important;word-spacing:normal!important;line-height:1.25;text-align:left!important;text-align-last:left;white-space:normal!important;overflow:hidden;overflow-wrap:anywhere;word-break:normal;hyphens:auto}.e1403-control #detailRows td:nth-child(7){min-width:82px;white-space:normal!important}
