@font-face{font-family:"Busan Dandi Gothic";src:url("/dandi-M.otf") format("opentype");font-style:normal;font-weight:400 500;font-display:swap}
@font-face{font-family:"Busan Dandi Gothic";src:url("/dandi-B.otf") format("opentype");font-style:normal;font-weight:600 900;font-display:swap}
:root{font-family:"Busan Dandi Gothic","Malgun Gothic",system-ui,sans-serif;color:#263c36;background:#f5f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:9px;background:#155c4b;color:white;padding:12px 19px;font-weight:700;min-height:44px}button:hover{filter:brightness(.95)}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #cc9748;outline-offset:3px}.plain{background:transparent;color:#687b73;padding:8px}aside{position:fixed;width:232px;inset:0 auto 0 0;background:white;border-right:1px solid #e2e9e3;padding:35px 22px;display:flex;flex-direction:column}.logo{display:flex;gap:13px;align-items:center;font-size:20px;font-weight:800}.logo b,.brand{background:#155c4b;color:white;border-radius:13px;padding:13px 9px;letter-spacing:-3px;font-size:22px}.logo b span,.brand span{color:#cde5a9}.logo small{display:block;font-size:9px;letter-spacing:1.5px;color:#94a198;margin-top:5px}.navlabel{font-size:10px;letter-spacing:2px;color:#9aaa9f;margin:55px 13px 18px}nav{display:grid;gap:9px}.nav{background:white;color:#6a7c72;text-align:left;padding:14px;display:flex;gap:15px}.nav span{font-size:20px;width:22px}.nav.active{background:#e9f2ed;color:#155c4b}.asidefoot{margin-top:auto;font-size:12px;color:#6c8074}.asidefoot small{display:block;padding-top:9px;color:#9ba99f}.dot{display:inline-block;width:7px;height:7px;background:#62a777;border-radius:50%;margin-right:5px}.workspace{margin-left:232px}header{height:78px;border-bottom:1px solid #e2e9e3;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:13px}header b{color:#155c4b}main{max-width:1400px;margin:auto;padding:36px 42px}.heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:30px}h1{font-size:29px;letter-spacing:-1.3px;margin:9px 0 12px}h2{font-size:20px;letter-spacing:-.6px}h3{font-size:17px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#6a8978}.muted{color:#7b8b80;font-size:13px;line-height:1.7}.heading .muted{margin:0}.welcome{background:#e5ede0;border:1px solid #d9e4d2;border-radius:16px;padding:32px 38px;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.welcome h2{font-size:29px;line-height:1.45;margin:20px 0 10px}.welcome p{font-size:13px;color:#6d7f6b}.welcome button{margin-top:12px}.tag{display:inline-block;background:#edf4ed;color:#527456;font-size:10px;padding:5px 9px;border-radius:5px;letter-spacing:.3px}.welcome .tag{background:#d4e2c9}.welcomeart{border:1px solid #9bb597;border-radius:50%;width:235px;height:235px;transform:rotate(-10deg);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#316045;background:#dae7cf;box-shadow:25px 20px 0 #d4dfcc}.welcomeart span{font-size:30px;letter-spacing:7px}.welcomeart b{font-size:48px;letter-spacing:-2px}.welcomeart div{font-size:11px;letter-spacing:3px;margin-top:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0 34px}.stats>div{background:white;border:1px solid #e2e9e3;border-radius:12px;padding:22px 25px;display:flex;align-items:center;justify-content:space-between}.stats span{font-size:13px;color:#768778}.stats b{font-size:29px;color:#215f4b}.stats small{font-size:12px;margin-left:7px;color:#9ba89d}.sectiontitle{display:flex;justify-content:space-between;align-items:center;margin:20px 0 10px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.record{display:block;min-width:0;background:white;border:1px solid #e1e8e0;border-radius:12px;color:#293e34;text-align:left;padding:22px;font-weight:400}.record>div:first-child,.recordfoot{display:flex;justify-content:space-between;align-items:center;gap:10px}.record small,.recordfoot{font-size:11px;color:#8c9a8c}.record h3{margin:17px 0 10px;overflow-wrap:anywhere}.record p{font-size:13px;color:#7d8c7d;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}.recordfoot{border-top:1px solid #eef1eb;margin-top:20px;padding-top:14px}.empty{grid-column:1/-1;border:1px dashed #cbd8cb;border-radius:12px;text-align:center;padding:35px;color:#839180;background:#fafcf9}.empty>span{font-size:26px}.empty h3{font-size:15px}.empty p{font-size:12px}.filters{display:flex;gap:12px;margin-bottom:20px}.filters input{flex:1}.filters select{max-width:220px}input,select,textarea{width:100%;padding:12px;border:1px solid #d5dfd4;border-radius:8px;background:white;color:#294131;min-height:46px}input:focus,textarea:focus,select:focus{outline:2px solid #74a287;outline-offset:1px}label{display:block;font-size:13px;font-weight:700;margin:17px 0}label input,label select,label textarea{margin-top:9px}textarea{resize:vertical}small{font-weight:400}.panel{background:white;border:1px solid #dfe7dc;border-radius:13px;padding:25px;max-width:540px}.calendar{background:white;border:1px solid #e0e7dd;border-radius:12px;overflow:hidden}.month{display:flex;justify-content:space-between;align-items:center;padding:12px 20px}.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week{background:#f1f5ef;text-align:center;font-size:12px;padding:14px 0;color:#7c8b77}.day{min-height:115px;border-top:1px solid #edf0e9;border-right:1px solid #edf0e9;padding:7px;overflow:hidden}.daynumber{background:transparent;color:#65795e;padding:4px;width:32px;min-height:32px}.today .daynumber{background:#155c4b;color:white;border-radius:50%}.event{display:block;width:100%;text-align:left;background:#e5efe3;color:#285940;font-size:11px;padding:5px;margin-top:5px;min-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hint{font-size:11px}footer{font-size:10px;letter-spacing:1px;color:#a0ac9e;padding:40px 0 10px}dialog{border:0;border-radius:15px;padding:26px;width:min(620px,calc(100% - 24px));max-height:90dvh;color:#294131}dialog::backdrop{background:#102b2566;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;color:#82927e}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:15px}.upload{background:#f1f5ee;border:1px dashed #c3d2bc;padding:16px;border-radius:8px}.upload small{display:block;color:#85947e;margin-top:10px;font-size:11px}.upload input{background:transparent;border:0;padding:5px 0;font-size:12px}.bodytext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8;padding:25px 0}.attachments{display:grid;gap:8px}.attachments a{padding:12px;background:#edf3e9;border-radius:8px;color:#155c4b;font-size:13px;overflow-wrap:anywhere}.related{font-size:13px}#error,#saveerror{color:#b74c3d;font-size:13px}.auth{max-width:430px;margin:7vh auto;padding:35px}.auth h1{font-size:34px;line-height:1.5}.brand{display:inline-block;margin-bottom:22px}.auth form{margin-top:30px}.auth button{width:100%}.auth>small{display:block;margin-top:40px;color:#94a28e;font-size:11px}.toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);background:#173f32;color:white;padding:15px 25px;border-radius:10px;z-index:20;font-size:13px;max-width:90vw}
@media(min-width:1500px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){aside{width:185px;padding:28px 15px}.workspace{margin-left:185px}main{padding:26px}header{padding:0 26px}.welcomeart{width:170px;height:170px}.welcomeart b{font-size:36px}.welcomeart span{font-size:22px}.welcome{padding:25px}.stats>div{padding:18px 15px}}
@media(max-width:700px){aside{inset:auto 0 0;width:100%;height:74px;padding:6px 8px 10px;border-top:1px solid #dce6d8;border-right:0;z-index:5}.logo,.navlabel,.asidefoot{display:none}nav{display:flex;gap:4px;justify-content:space-around}.nav{flex:1;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;font-size:10px;min-height:53px}.nav span{font-size:20px;width:auto}.workspace{margin-left:0}header{height:60px;padding:0 18px;font-size:11px}header .plain{font-size:10px;padding:6px}main{padding:23px 17px 95px}.heading{align-items:flex-start;gap:8px;margin-bottom:23px}h1{font-size:24px}.heading>button{font-size:11px;padding:10px;white-space:nowrap;margin-top:25px}.eyebrow{font-size:8px;letter-spacing:1.4px}.heading .muted{font-size:11px}.welcome{padding:24px;min-height:225px}.welcome h2{font-size:24px}.welcome p{font-size:11px;max-width:210px}.welcomeart{display:none}.welcome button{font-size:12px}.stats{gap:8px;margin:14px 0 25px}.stats>div{display:block;padding:16px 12px}.stats span{font-size:10px}.stats b{display:block;font-size:25px;margin-top:8px}.stats small{font-size:10px}.cards{grid-template-columns:1fr;gap:12px}.sectiontitle h2{font-size:18px}.record{padding:19px}.filters{gap:8px}.filters input{min-width:0}.filters select{width:120px;font-size:12px}.day{min-height:85px;padding:3px}.event{font-size:9px;padding:4px 2px}.daynumber{font-size:12px}.month h2{font-size:18px}.formrow{gap:10px}dialog{padding:20px}input,textarea,select{font-size:16px}.toast{bottom:88px;width:max-content}.empty{padding:28px 14px}}

.calendar-week{min-height:98px;padding-bottom:8px;border-top:1px solid #e4ebe3;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 7 - 1px),#edf0e9 calc(100% / 7 - 1px),#edf0e9 calc(100% / 7))}
.calendar-dates,.calendar-lane{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-date{padding:5px 4px}
.calendar-date.blank{background:#f7f9f6}
.calendar-lane{margin-bottom:4px}
.range-event{margin:0 2px;width:auto;min-width:0;padding:4px 7px}
.range-event.continues-before{border-top-left-radius:2px;border-bottom-left-radius:2px}
.range-event.continues-after{border-top-right-radius:2px;border-bottom-right-radius:2px}
.span-1{grid-column:span 1}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}
@media(max-width:700px){.calendar-week{min-height:74px}.calendar-date{padding:3px}.range-event{min-height:28px;padding:4px 3px}}

.edit-record{margin-top:16px}
.calendar-color-0{--calendar-fill:#d2eee0;background:#d2eee0;color:#205640}
.calendar-color-1{--calendar-fill:#dce8ff;background:#dce8ff;color:#264875}
.calendar-color-2{--calendar-fill:#ffe1cd;background:#ffe1cd;color:#713d1b}
.calendar-color-3{--calendar-fill:#ecdfff;background:#ecdfff;color:#573579}
.calendar-color-4{--calendar-fill:#fff0b7;background:#fff0b7;color:#614a04}
.calendar-color-5{--calendar-fill:#fcdbe9;background:#fcdbe9;color:#782649}
.calendar-color-6{--calendar-fill:#c8eff0;background:#c8eff0;color:#15575a}
.calendar-color-7{--calendar-fill:#f2dfd4;background:#f2dfd4;color:#64432c}
.calendar-color-8{--calendar-fill:#e7efc3;background:#e7efc3;color:#435615}
.calendar-color-9{--calendar-fill:#dce0ff;background:#dce0ff;color:#373969}
.calendar-color-10{--calendar-fill:#ffd9d9;background:#ffd9d9;color:#772e32}
.calendar-color-11{--calendar-fill:#d9f1fc;background:#d9f1fc;color:#25546a}
.calendar-color-12{--calendar-fill:#f6dff6;background:#f6dff6;color:#63366a}
.calendar-color-13{--calendar-fill:#f9e5ac;background:#f9e5ac;color:#654a05}
.calendar-color-14{--calendar-fill:#d4e9cd;background:#d4e9cd;color:#315b29}
.calendar-color-15{--calendar-fill:#e7e0d9;background:#e7e0d9;color:#4f4238}
/* Hana Systech brand */
:root{color:#182e45;background:#f3f6fa}
.logo img{width:100%;height:auto;display:block}
.header-brand{display:flex;align-items:center;gap:9px;min-width:0}
.mobile-brand{display:none}
.auth .auth-logo{display:block;width:240px;max-width:100%;height:auto;margin-bottom:22px}
button,.today .daynumber{background:#0d273e}
header b,.nav.active,.stats b,.attachments a{color:#193962}
.nav{background:#fff;color:#4b5f77}
.nav.active,.tag,.attachments a,.upload{background:#e8edf8}
.tag,.eyebrow{color:#424c79}
.welcome{background:#e5ebf6;border-color:#d6e0ef}
.welcome .tag{background:#dbe2f2}
.welcome p,.muted,.plain,.stats span,.record p,.record small,.recordfoot,.asidefoot,.asidefoot small,.navlabel,footer,.hint,.upload small{color:#52667e}
.welcomeart{background:#d9e2f5;border-color:#99acd1;color:#21116b;box-shadow:25px 20px 0 #d1dcef}
aside,header,.stats>div,.record,.panel,.calendar{border-color:#d9e2ee}
.record,dialog,input,select,textarea{color:#182e45}
input,select,textarea{border-color:#bdcbe0}
input:focus,textarea:focus,select:focus{outline-color:#6553a4}
button:focus-visible,a:focus-visible{outline-color:#6553a4}
.week,.calendar-date.blank{background:#edf2f9}
.week,.daynumber{color:#435978}
.daynumber,.plain{background:transparent}
.calendar-week,.recordfoot{border-color:#e3eaf4}
.calendar-week{background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 7 - 1px),#e7edf6 calc(100% / 7 - 1px),#e7edf6 calc(100% / 7))}
.empty{background:#f8faff;border-color:#c8d4e6;color:#52667e}
.upload{border-color:#bccae2}
.toast,.dot{background:#241367}
@media(max-width:700px){.mobile-brand{display:block;width:28px;height:28px}.header-brand{gap:6px}aside{border-color:#d9e2ee}}

.ledger-panel{max-width:none;margin-bottom:20px}.ledger-panel .formrow{align-items:end}.ledger-filters{flex-wrap:wrap;align-items:center}.ledger-filters input[type=search],.ledger-filters input:not([type]){flex:1;min-width:160px}.ledger-check{display:flex;align-items:center;gap:7px;margin:0}.ledger-check input,.ledger-table input{width:18px;height:18px;min-height:0;margin:0}.ledger-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ledger-scroll{overflow:auto;max-height:58vh;background:white;border:1px solid #d9e2ee;border-radius:8px}.ledger-table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}.ledger-table th,.ledger-table td{padding:9px 10px;border-bottom:1px solid #e3eaf4;text-align:left}.ledger-table th{position:sticky;top:0;background:#edf2f9}.ledger-table td:nth-child(4),.ledger-table td:nth-child(5){white-space:normal;min-width:110px}.ledger-dialog{width:min(1100px,calc(100% - 24px))}.ledger-stats b{font-size:clamp(13px,2vw,20px)}.ledger-stats>div{flex-wrap:wrap}.edit-record+#site-ledger{margin-left:8px}
@media(max-width:700px){.ledger-panel .formrow{grid-template-columns:1fr;gap:0}.ledger-filters select{width:auto;max-width:100%}.ledger-filters button{font-size:13px;padding:8px}.ledger-stats>div{padding:9px}.ledger-stats{gap:5px}.ledger-stats b{overflow-wrap:anywhere}}
.welcomeart{flex-shrink:0;transform:none;border:0;background:none;box-shadow:none}.welcomeart img{display:block;width:100%;height:100%;object-fit:contain}

/* Align the inset header with the page content. */
.workspace{--page-gutter:42px}
.workspace main{padding-inline:var(--page-gutter)}
.workspace header{
  width:calc(100% - 2 * var(--page-gutter));
  max-width:calc(1400px - 2 * var(--page-gutter));
  margin:26px auto 0;
  height:auto;
  min-height:46px;
  gap:10px;
  padding:0 14px;
  border:1px solid #d9e2ee;
  border-radius:12px;
}
.workspace header>div{flex-shrink:0}
.workspace header .plain{margin-left:3px;min-height:40px}
@media(max-width:1000px){.workspace{--page-gutter:26px}}
@media(max-width:700px){
  .workspace{--page-gutter:17px}
  .workspace header{margin-top:14px;padding-inline:9px;gap:6px}
  .workspace header .plain{min-height:44px}
}

/* Login logo */
.auth .auth-logo{
  width:320px;
  max-width:100%;
  height:auto;
  filter:drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff)
         drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff);
}


aside .nav-spacer{height:55px;flex:0 0 auto}
aside nav{display:flex;flex-direction:column;gap:22px}
.nav-group{display:grid;gap:7px}
.nav-admin{border-top:1px solid #d9e2ee;padding-top:13px}
.nav-admin-label{margin:0 0 2px 13px;color:#52667e;font-size:11px;font-weight:700}
.nav .nav-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;background:#e6edf9;border-radius:8px;color:#193962}
.nav-icon svg{display:block;width:22px;height:22px}
.nav.active .nav-icon{background:#d4e1f6;color:#0d273e}
.nav{align-items:center;gap:9px;padding:8px 10px}
@media(max-width:700px){
 aside .nav-spacer{display:none}
 aside nav{flex-direction:row;gap:3px;align-items:stretch}
 .nav-group{display:flex;flex:1;gap:1px;min-width:0}
 .nav-admin{flex:0 0 auto;border-top:0;border-left:1px solid #d9e2ee;padding:0 0 0 3px;position:relative}
 .nav-admin-label{position:absolute;top:-9px;left:4px;right:0;text-align:center;margin:0;font-size:8px;background:#fff;border-radius:3px}
 .nav-admin .nav{min-width:51px}
 .nav{gap:2px;padding:3px 1px;min-width:0;white-space:nowrap}
 .nav .nav-icon{width:25px;height:25px;flex:0 0 25px;border-radius:7px}
 .nav-icon svg{width:19px;height:19px}
}

.report-photos{margin:0 0 20px}
.report-photo-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.report-photo-grid figure{margin:0;min-width:0}
.report-photo-grid img{display:block;width:100%;height:auto;border-radius:8px}
.report-photo-grid figcaption{margin-top:6px;font-size:12px;color:#52667e;overflow-wrap:anywhere}
@media(max-width:700px){.report-photo-grid{grid-template-columns:1fr}}

.staff-list{margin-top:28px}.staff-card{max-width:650px;margin:12px 0}.staff-card h3{margin-top:0}.staff-options{display:flex;gap:8px 18px;flex-wrap:wrap;margin:0 0 12px}.staff-options label{display:flex;align-items:center;gap:7px;margin:0;min-height:38px}.staff-options input{width:17px;height:17px;min-height:0;margin:0}.stats>[hidden]{display:none}#password-error{color:#b74c3d;font-size:13px}
@media(max-width:700px){.account-controls{white-space:nowrap}.workspace header .account-controls .plain{padding-inline:3px;margin-left:1px}.account-controls b{display:inline-block;max-width:70px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}}


/* Compact staff rows and narrow-screen form controls. */
.staff-list{margin-top:0;container-type:inline-size}
.staff-list-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px}
.staff-list-header h2{margin:0}
.staff-list-header button,.staff-card button{padding:7px 12px;font-size:13px;white-space:nowrap}
.staff-card{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;gap:8px 14px;align-items:center;max-width:none;margin:0 0 6px;padding:5px 12px;background:#fff;border:1px solid #d9e2ee;border-radius:8px}
.staff-name{min-width:0;overflow-wrap:anywhere}
.staff-options{display:flex;align-items:center;gap:3px 13px;flex-wrap:wrap;margin:0;min-width:0}
.staff-options label{white-space:nowrap;font-size:13px;min-height:33px}
.staff-card button{justify-self:end;min-height:36px}
.staff-error{color:#b74c3d;font-size:13px}
@container(max-width:640px){
 .staff-card{grid-template-columns:minmax(0,1fr) auto;padding:7px 9px;gap:3px 8px}
 .staff-name{grid-column:1/-1}
 .staff-options{gap:0 9px}
}
@container(max-width:360px){
 .staff-card{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
 .workspace header .header-brand,.workspace header .header-brand>span{min-width:0}
 .workspace header .header-brand>span{overflow-wrap:anywhere}
 .workspace header .account-controls b{max-width:clamp(34px,15vw,70px)}
 .formrow{grid-template-columns:minmax(0,1fr);gap:0}
 .formrow>label,.formrow input,.formrow select,.panel,.ledger-scroll{min-width:0;max-width:100%}
 input[type=date],input[type=file]{min-width:0;max-width:100%;box-sizing:border-box}
 input[type=date]{display:block;width:100%;min-inline-size:0}
 dialog{max-width:calc(100vw - 24px);overflow-wrap:anywhere}
 .ledger-filters>input{min-width:0;max-width:100%}
 .ledger-filters>select{min-width:0;max-width:100%}
 .recordfoot,.modalhead{min-width:0}
}


/* Ledger search widths */
.ledger-filters>#ledger-query{flex:1 1 280px;min-width:min(220px,100%)}
.ledger-filters>#ledger-kind{flex:0 0 152px;width:152px;max-width:100%;padding-inline:8px}
@media(max-width:700px){.ledger-filters>#ledger-query{flex-basis:100%}}

.ledger-filters>#ledger-year{flex:0 0 96px;width:96px;max-width:100%;padding-inline:8px}

/* Calendar month controls and adjacent dates */
.calendar .month-top{min-height:56px;padding:6px 16px}
.calendar .month-top h2{margin:0}
.calendar .month-title{color:#182e45;font-size:inherit;padding:6px 10px}
.calendar .month-title span{font-size:.8em;color:#52667e}
.calendar .month-bottom{border-top:1px solid #e3eaf4;padding:4px 12px}
.calendar .month-bottom button{font-size:13px}
.calendar .adjacent-month{background:transparent}
.calendar .adjacent-month .daynumber{color:#77879b}
.calendar .adjacent-month.today .daynumber{color:white}
.month-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.month-picker-grid button{padding:8px;background:#e8edf8;color:#193962}
.month-picker-grid button.selected{background:#0d273e;color:white}
@media(max-width:700px){.calendar .month-top{padding-inline:7px}.calendar .month-bottom{padding-inline:7px}}

.ledger-actions .ledger-view-toggle{margin-left:auto}
.ledger-compact th:last-child,.ledger-compact td:last-child{
 position:sticky;right:0;width:clamp(128px,23vw,260px);min-width:clamp(128px,23vw,260px);max-width:260px;
 white-space:normal;overflow-wrap:anywhere;border-left:1px solid #d9e2ee;
}
.ledger-compact td:last-child{background:#fff;z-index:1}
.ledger-compact th{z-index:2}
.ledger-compact th:last-child{z-index:3}

.ledger-compact.ledger-selectable{--check-width:50px;--site-width:110px}
.ledger-compact.ledger-selectable :is(th,td):first-child{
 position:sticky;left:0;width:var(--check-width);min-width:var(--check-width);max-width:var(--check-width);
}
.ledger-compact.ledger-selectable :is(th,td):nth-child(2){
 position:sticky;left:var(--check-width);width:var(--site-width);min-width:var(--site-width);max-width:var(--site-width);
 white-space:normal;overflow-wrap:anywhere;border-right:1px solid #d9e2ee;
}
.ledger-compact.ledger-selectable td:nth-child(-n+2){background:#fff;z-index:1}
.ledger-compact.ledger-selectable th:nth-child(-n+2){z-index:3}
@media(max-width:700px){
 .ledger-compact.ledger-selectable{--check-width:42px;--site-width:75px}
 .ledger-compact.ledger-selectable :is(th,td):first-child{padding-inline:7px}
}

/* Keep totals legible in the compact ledger. */
.ledger-compact{table-layout:fixed;min-width:660px}
.ledger-compact.ledger-selectable{min-width:820px}
.ledger-compact :is(th,td):nth-last-child(2){
 width:128px;min-width:128px;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;
}
.ledger-compact :is(th,td):nth-last-child(3){
 width:150px;min-width:0;white-space:normal;overflow-wrap:anywhere;
}
.ledger-compact :is(th,td):nth-last-child(4){white-space:normal;overflow-wrap:anywhere;min-width:0}
.ledger-compact :is(th,td):nth-last-child(5){width:104px;white-space:nowrap;min-width:0}
.ledger-compact :is(th,td):nth-last-child(6){width:58px;white-space:nowrap;min-width:0}
@media(max-width:700px){
 .ledger-compact,.ledger-compact.ledger-selectable{min-width:0;width:max-content}
 .ledger-compact.ledger-selectable{--check-width:36px;--site-width:58px}
 .ledger-compact :is(th,td){padding-inline:6px}
 .ledger-compact :is(th,td):nth-last-child(2){width:104px;min-width:104px;font-size:12px}
 .ledger-compact :is(th,td):nth-last-child(3){width:105px;max-width:105px}
 .ledger-compact :is(th,td):nth-last-child(4){width:90px;max-width:90px}
 .ledger-compact :is(th,td):last-child{width:84px;min-width:84px;max-width:84px}
}

.ledger-table .ledger-sort{padding:0;background:transparent;color:inherit;min-height:24px;font:inherit;font-weight:700;white-space:nowrap}
.ledger-sort span{padding-left:3px;color:#657891;font-size:.85em}
.ledger-table th[aria-sort] .ledger-sort span{color:#193962}

.report-photo-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.report-photo-head button{font-size:13px;color:#193962;white-space:nowrap}

.related .related-report{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;text-align:left;margin:4px 0;background:#edf2f9;color:#193962}
.related-report span{overflow-wrap:anywhere}
.related-report small{white-space:nowrap}

.site-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.site-dates span{display:flex;flex-direction:column;gap:3px;padding:8px;background:#edf2f9;border-radius:7px;color:#193962}
.site-dates small,.site-meta dt{color:#52667e;font-size:12px}
.site-dates strong{font-size:14px}
.site-meta dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.site-meta dd{margin:3px 0;overflow-wrap:anywhere}
.site-folder{display:inline-flex;align-items:center;margin-right:8px;color:#193962}
.calendar-reminders{margin:0 0 15px;padding:12px 14px;background:#fff;border:1px solid #d9e2ee;border-radius:9px}
.calendar-reminders h2{margin:0 0 5px;font-size:16px}
.calendar-reminders button{display:block;text-align:left;color:#193962;overflow-wrap:anywhere}
.calendar-reminders button strong{background:#e6edf9;padding:4px 6px;border-radius:5px;margin-right:4px}
.calendar-reminders button span,#editor label>small{display:block;color:#52667e;font-size:12px;margin-top:5px}

.site-path{display:block;text-align:left;max-width:100%;padding:5px 0;color:#193962;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}

/* Site detail separators */
.site-path{width:100%;margin-top:8px;padding-top:10px;border-top:1px solid #d9e2ee;border-radius:0}
.site-meta dl{padding-bottom:12px;border-bottom:1px solid #d9e2ee}

/* Automatically scheduled site periods */
.range-event.site-range{position:relative;isolation:isolate;background:transparent}
.range-event.site-range::before{
 content:"";position:absolute;inset:0;z-index:-1;background:var(--calendar-fill,#dce8ff);
 mask-image:repeating-linear-gradient(60deg,#000 0 8px,transparent 8px 12px);
}
.site-range .range-label{
 display:inline-block;max-width:100%;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 background:var(--calendar-fill,#dce8ff);box-shadow:-8px 0 var(--calendar-fill,#dce8ff),6px 0 var(--calendar-fill,#dce8ff);
}
.range-event.site-range .range-label{position:relative}
.range-event.site-range:has(.range-label)::after{
 content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--calendar-fill,#dce8ff);z-index:-1;
}

/* Solid title and tail on site schedule bars */
.range-event.site-range{display:flex;align-items:stretch;padding:0}
.range-event.site-range .range-label{
 display:block;box-sizing:border-box;width:max-content;max-width:calc(100% - 11px);
 padding:4px 7px;align-content:center;box-shadow:none;
}
.range-event.site-range:has(.range-label)::after{
 inset:0;width:auto;
 background:linear-gradient(to right,var(--calendar-fill,#dce8ff) 0 7px,transparent 7px calc(100% - 11px),var(--calendar-fill,#dce8ff) calc(100% - 11px) 100%);
}
@media(max-width:700px){.range-event.site-range .range-label{padding-inline:3px;max-width:calc(100% - 8px)}}

.range-event.site-range .range-label{padding-inline-end:calc(7px + 1.5em)}

/* Show only complete diagonal bands between title and tail. */
.range-event.site-range::before{display:none}
.range-event.site-range:has(.range-label)::after{
 position:static;inset:auto;z-index:auto;flex:0 0 11px;
 background:var(--calendar-fill,#dce8ff);
}
.range-event.site-range .range-label{flex:0 1 auto;min-width:0;max-width:calc(100% - 11px)}
.site-stripes{position:relative;flex:1 1 0;min-width:0;container-type:inline-size}
@container(min-width:30px){
 .site-stripes::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(60deg,var(--calendar-fill,#dce8ff) calc(50% - 3px),transparent calc(50% - 3px) calc(50% + 3px),var(--calendar-fill,#dce8ff) calc(50% + 3px));
  background-size:30px 100%;background-repeat:round no-repeat;background-position:center;
 }
}

#ledger-import .formrow{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:end;gap:8px}
#ledger-import .formrow label{margin:0;min-width:0}
#ledger-import .formrow button{white-space:nowrap;min-height:46px;padding-inline:10px}
@media(max-width:480px){
 #ledger-import .formrow{grid-template-columns:minmax(0,1fr) auto}
 #ledger-import .formrow label:first-child{grid-column:1/-1;width:88px}
}

#site-import-open{margin-bottom:14px}#site-import-preview th label{display:flex;align-items:center;gap:5px;margin:0}

.ledger-admin-only{display:none!important}

#editor label:has(> input[name="endDate"])>small{display:inline;margin:0 0 0 3px}

.heading-actions{display:flex;gap:7px;flex-shrink:0;align-items:center}
.heading-actions button{white-space:nowrap}
.heading-actions #site-import-open{margin:0;background:#e8edf8;color:#193962}
.site-list{display:grid;gap:6px}
.site-list-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 68px 136px 136px 18px;align-items:center;gap:8px;width:100%;padding:9px 11px;text-align:left;background:#fff;color:#193962;border:1px solid #d9e2ee;font-size:13px;font-weight:400}
.site-list-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-list-row small{color:#52667e;font-size:11px}
@media(max-width:920px){
 .site-list-row{grid-template-columns:minmax(0,1fr) 48px 60px 117px 117px 14px}
}
@media(max-width:700px){
 .heading-actions{gap:4px;align-self:center}
 .heading-actions button{font-size:11px;padding:8px 6px}
 .site-list-row{display:flex;flex-wrap:wrap;gap:4px 10px;padding:8px}
 .site-list-row strong{width:100%}
 .site-list-arrow{margin-left:auto}
}

.site-delete,#site-delete-error{color:#a82f32}.site-delete{margin:16px 0 0 7px}.site-delete-confirm{background:#a82f32}

.calendar-filters{display:flex;gap:6px;margin-bottom:12px}
.calendar-filters button{min-height:40px;padding:6px 13px;background:#fff;border:1px solid #d9e2ee;color:#193962}
.calendar-filters button[aria-pressed=true]{background:#0d273e;color:#fff;border-color:#0d273e}


/* Calendar timeline bars */
.range-event.timeline-event{display:flex;align-items:center;gap:0;padding:0;min-height:26px;background:transparent;color:white;overflow:hidden;border-radius:0}
.timeline-event .timeline-label{flex:0 1 auto;min-width:0;max-width:calc(100% - 12px);padding:4px 8px;background:var(--timeline-color);border-radius:7px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.timeline-event .timeline-line{flex:1 0 3px;height:4px;background:var(--timeline-color)}
.timeline-event .timeline-end{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:var(--timeline-color)}
.timeline-event.continues-before .timeline-label{border-top-left-radius:2px;border-bottom-left-radius:2px}
.timeline-event.continues-before{position:relative;margin-left:0}
.timeline-event.continues-after{margin-right:0}
@media(max-width:700px){.timeline-event.span-1:not(.continues-before):not(.continues-after) .timeline-label{max-width:100%}
.timeline-event.span-1:not(.continues-before):not(.continues-after) :is(.timeline-line,.timeline-end){display:none}}
@media(max-width:700px){.timeline-event .timeline-label{padding:3px 4px}.timeline-event .timeline-end{flex-basis:7px;width:7px;height:7px}.timeline-event .timeline-line{height:3px}}
.timeline-goods-0{--timeline-color:#26538e}
.timeline-goods-1{--timeline-color:#3466a0}
.timeline-goods-2{--timeline-color:#1c5f77}
.timeline-goods-3{--timeline-color:#445892}
.timeline-goods-4{--timeline-color:#3a748b}
.timeline-service-0{--timeline-color:#5f3e8a}
.timeline-service-1{--timeline-color:#6d3f81}
.timeline-service-2{--timeline-color:#53468e}
.timeline-service-3{--timeline-color:#7b4075}
.timeline-service-4{--timeline-color:#68548a}
.timeline-construction-0{--timeline-color:#942e3a}
.timeline-construction-1{--timeline-color:#9c473a}
.timeline-construction-2{--timeline-color:#88384f}
.timeline-construction-3{--timeline-color:#924355}
.timeline-construction-4{--timeline-color:#934c31}
.timeline-common-0{--timeline-color:#336e51}
.timeline-private-0{--timeline-color:#515761}
.timeline-site-0{--timeline-color:#596f88}


.record-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.record-detail-actions .edit-record,.record-detail-actions #site-ledger{margin:0}
.record-detail-actions .site-delete{margin:0 0 0 auto}
button.site-delete,button.site-delete-confirm{background:#a82f32;color:#fff}
.delete-confirm-actions .site-delete-confirm{margin-left:auto}
@media(max-width:400px){.record-detail-actions button{padding-inline:10px;font-size:13px}}

.site-list-filters{align-items:end;flex-wrap:wrap}
.contract-date-filter{display:flex;gap:6px;align-items:end;min-width:0}
.contract-date-filter label{margin:0;min-width:0}
.contract-date-filter input{margin-top:4px;width:132px;padding-inline:7px}
.contract-date-filter button{white-space:nowrap}
.site-list-filters>#search{min-width:145px}
#contract-range-error:empty{display:none}
@media(max-width:700px){
 .contract-date-filter{flex:1 1 100%}
 .contract-date-filter label{flex:1}
 .contract-date-filter input{width:100%;padding-inline:4px;font-size:13px}
 .contract-date-filter button{font-size:12px;padding-inline:4px}
}

.contract-date-filter input{margin-top:0;width:126px}
.contract-date-filter .contract-all-button{min-height:46px;padding:6px 9px;background:#e5ecf7;border:1px solid #b9c9e0;color:#193962}
.site-list-filters>#search{flex:1 1 220px}
@media(max-width:700px){
 .contract-date-filter input{width:100%}
 .site-list-filters>#search{flex-basis:0;min-width:0}
 .contract-date-filter .contract-all-button{padding-inline:6px}
}

/* Align all controls in the site filter bar. */
.site-list-filters,.site-list-filters .contract-date-filter{align-items:center}
.site-list-filters :is(#contract-from,#contract-to,#contract-all,#search,#category-filter){
 box-sizing:border-box;height:46px;min-height:46px;margin-block:0;
}

#editor .event-date-row{grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(0,1fr));gap:8px}
#editor .event-date-row:has(label[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
#editor .event-options-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:8px}
#editor :is(.event-date-row,.event-options-row)>label{min-width:0;margin:5px 0}
#editor .event-reminder-hint{margin:3px 0 7px}
@media(max-width:520px){
 #editor .event-date-row{grid-template-columns:minmax(0,.82fr) repeat(2,minmax(0,1fr));gap:4px}
 #editor .event-date-row>label{font-size:12px}
 #editor .event-date-row input,#editor .event-date-row select{min-width:0;width:100%;padding-inline:3px;font-size:12px}
 #editor .event-date-row input::-webkit-datetime-edit{padding:0}
 #editor .event-date-row input::-webkit-calendar-picker-indicator{margin:0;padding:0}
}

/* Keep dialog controls in view while the content scrolls. */
dialog{--modal-gutter:26px;scroll-padding-top:58px;scroll-padding-bottom:70px}
dialog .modalhead{
 position:sticky;top:calc(-1 * var(--modal-gutter));z-index:10;background:#fff;
 margin:calc(-1 * var(--modal-gutter)) calc(-1 * var(--modal-gutter)) 0;
 padding:4px var(--modal-gutter);border-bottom:1px solid #e3eaf4;
}
dialog .modal-actions{
 position:sticky;bottom:calc(-1 * var(--modal-gutter));z-index:9;display:flex;align-items:center;justify-content:flex-end;gap:8px;
 background:#fff;border-top:1px solid #e3eaf4;padding:8px var(--modal-gutter);
 margin:10px calc(-1 * var(--modal-gutter)) calc(-1 * var(--modal-gutter));
}
dialog .delete-confirm-actions{justify-content:space-between}
@media(max-width:700px){dialog{--modal-gutter:20px}}

/* Site start and completion arrows */
.timeline-event.timeline-endpoint{justify-content:flex-end}
.timeline-event.timeline-endpoint .timeline-label{
 flex:1 1 auto;max-width:100%;text-align:right;border-radius:5px;padding-inline:5px 9px;
}
.timeline-event.timeline-endpoint :is(.timeline-line,.timeline-end){display:none}
.timeline-event.timeline-endpoint::after{
 content:"";display:block;flex:0 0 7px;width:7px;height:13px;background:var(--timeline-color);
 clip-path:polygon(0 0,100% 50%,0 100%);
}
.timeline-event.timeline-endpoint.endpoint-right .timeline-label{border-radius:5px 0 0 5px}
.timeline-event.timeline-endpoint.endpoint-left{flex-direction:row-reverse}
.timeline-event.timeline-endpoint.endpoint-left::after{transform:rotate(180deg)}
.timeline-event.timeline-endpoint.endpoint-left .timeline-label{border-radius:0 5px 5px 0;padding-inline:5px}
