:root{--brand-green: #1e6e37;--brand-green-mid: #319749;--brand-green-light: #82c55d;--brand-gray: #616163;--brand-green-hover: #185c2e;--brand-green-tint: #edf5ef;--surface-page: #f6f7f5;--surface-card: #ffffff;--border: #dfe3df;--text: #1d2420;--text-muted: #555b57;--on-brand: #ffffff;--error-text: #b42318;--error-surface: #fef3f2;--error-border: #f2b8b5;--warning-text: #93370d;--warning-surface: #fffaeb;--warning-border: #f5cf87;--info-text: #175cd3;--info-surface: #eff8ff;--info-border: #b2ddff;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Liberation Sans", system-ui, sans-serif;--text-base: 16px;--text-small: 14px;--text-title: 28px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--section-gap: 20px;--space-6: 32px;--radius: 8px;--touch-target: 44px;--sidebar-full: 248px;--sidebar-rail: 72px;--header-height: 56px;--focus-ring: 0 0 0 2px var(--surface-card), 0 0 0 4px var(--brand-green)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--text-base);line-height:1.5;color:var(--text);background:var(--surface-page);-webkit-font-smoothing:antialiased}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sidebar{display:flex;flex-direction:column;flex-shrink:0;width:var(--sidebar-full);height:100vh;position:sticky;top:0;padding:var(--section-gap) var(--space-3);background:var(--surface-card);border-right:1px solid var(--border)}.sidebar--collapsed{width:var(--sidebar-rail)}.sidebar__logo{display:flex;align-items:center;min-height:65px;padding:0 var(--space-2);margin-bottom:var(--section-gap)}.sidebar--collapsed .sidebar__logo{justify-content:center;padding:0}.sidebar__items{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none;flex:1}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text);text-decoration:none;font-weight:500}.sidebar--collapsed .sidebar__link{justify-content:center;padding:0}.sidebar__link:hover{background:var(--brand-green-tint)}.sidebar__link[aria-current=page]{background:var(--brand-green);color:var(--on-brand)}.sidebar__icon{display:flex}.sidebar__toggle{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-target);padding:0 var(--space-3);border:none;border-radius:var(--radius);background:none;color:var(--text-muted);font:inherit;cursor:pointer}.sidebar--collapsed .sidebar__toggle{justify-content:center;padding:0}.sidebar__toggle:hover{background:var(--brand-green-tint);color:var(--text)}.sidebar__person{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;margin-bottom:var(--space-2);border-top:1px solid var(--border)}.sidebar__who{display:flex;flex-direction:column;padding:0 var(--space-3);min-width:0}.sidebar__name{font-weight:600;overflow-wrap:anywhere}.sidebar__role{color:var(--text-muted);font-size:var(--text-small)}.sidebar--tablet{position:fixed;left:0;z-index:20;overflow-y:auto}.sidebar--tablet:not(.sidebar--collapsed){box-shadow:4px 0 24px #1d24202e}.sidebar--phone{position:fixed;left:0;z-index:30;width:min(var(--sidebar-full),85vw);overflow-y:auto;transform:translate(-100%);visibility:hidden;transition:transform .2s ease-out,visibility 0s linear .2s}.sidebar--phone.sidebar--open{transform:none;visibility:visible;box-shadow:4px 0 24px #1d242040;transition:transform .2s ease-out,visibility 0s}.sidebar--phone .sidebar__logo{justify-content:space-between}.sidebar__close{min-width:var(--touch-target);justify-content:center;padding:0}@media(prefers-reduced-motion:reduce){.sidebar--phone,.sidebar--phone.sidebar--open{transition:none}}@media print{.sidebar{display:none}}.app-shell{display:flex;min-height:100vh}.app-shell__column{display:flex;flex-direction:column;flex:1;min-width:0}.app-shell__main{flex:1;min-width:0}.app-header{display:flex;align-items:center;gap:var(--space-2);position:sticky;top:0;z-index:10;min-height:var(--header-height);padding:0 var(--space-2);background:var(--surface-card);border-bottom:1px solid var(--border)}.app-header svg[role=img]{width:120px;height:auto}.app-header__menu{display:flex;align-items:center;justify-content:center;min-width:var(--touch-target);min-height:var(--touch-target);border:none;border-radius:var(--radius);background:none;color:var(--text);cursor:pointer}.app-header__menu:hover{background:var(--brand-green-tint)}.app-shell__backdrop{position:fixed;inset:0;z-index:20;background:#1d242073}@media(min-width:601px)and (max-width:1024px){.app-shell__column{margin-left:var(--sidebar-rail)}}@media print{.app-header,.app-shell__backdrop{display:none}.app-shell__column{margin-left:0}}.banner{position:sticky;top:0;z-index:10;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-6);color:var(--warning-text);background:var(--warning-surface);border-bottom:1px solid var(--warning-border)}.banner__icon{display:flex;padding-top:2px}.banner__body p{margin:0}.banner__body{flex:1;min-width:0}@media(max-width:600px){.banner{top:var(--header-height);flex-wrap:wrap;padding:var(--space-3) var(--space-4)}.banner__action{width:100%}}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius);border:1px solid transparent;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button--primary{background:var(--brand-green);color:var(--on-brand)}.button--primary:hover{background:var(--brand-green-hover)}.button--secondary{background:var(--surface-card);color:var(--brand-green);border-color:var(--border)}.button--secondary:hover{background:var(--brand-green-tint)}.button:disabled{cursor:not-allowed;opacity:.6}@media print{.button{display:none}}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--section-gap) var(--space-6)}.card{display:flex;flex-direction:column;gap:var(--space-3)}.card__title{margin:0;font-size:18px;font-weight:600}@media(max-width:600px){.card{padding:var(--space-4)}}.card{min-width:0;overflow-wrap:anywhere}.detail-list{margin:0}.detail-list__row{display:grid;grid-template-columns:14rem 1fr;gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--border)}.detail-list__row:first-child{border-top:none}.detail-list dt{color:var(--text-muted)}.detail-list dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.dialog{width:min(32rem,calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-6));padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);color:var(--text)}.dialog::backdrop{background:#1d242073}.dialog__body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--section-gap) var(--space-6) var(--space-6)}.dialog__title{margin:0;font-size:20px;font-weight:650}@media(max-width:600px){.dialog__body{padding:var(--space-4)}}.error-summary{padding:var(--space-4);border:2px solid var(--error-text);border-radius:var(--radius);background:var(--error-surface);color:var(--error-text)}.error-summary__message{margin:0 0 var(--space-2);font-weight:600}.error-summary__list{margin:0;padding-left:var(--space-4)}.error-summary__list a{color:var(--error-text)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-weight:600}.field__hint,.field__legend{margin:0;color:var(--text-muted);font-size:var(--text-small)}.field__control{min-height:var(--touch-target);padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);color:var(--text);font:inherit;font-size:var(--text-base)}.field__control--select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23555b57' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.field--invalid .field__control{border-color:var(--error-text)}.field__error{margin:0;color:var(--error-text);font-weight:600}.field__control--area{min-height:6rem;padding:var(--space-2) var(--space-3);resize:vertical}.field--group{margin:0;padding:0;border:none;min-width:0}.field--group .field__label{padding:0;margin-bottom:var(--space-1)}.field__choice{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-target)}.field__choice input{width:20px;height:20px;margin:0;accent-color:var(--brand-green)}.form__fields{display:flex;flex-direction:column;gap:var(--section-gap);min-width:0;margin:0;border:0;padding:0}.form__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--space-4)}.history-list{margin:0;padding:0;list-style:none}.history-list__item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0 var(--space-3) var(--space-4);border-left:2px solid var(--border)}.history-list__item:first-child{border-left-color:var(--brand-green-mid)}.history-list__time{color:var(--text-muted);font-size:var(--text-small);font-variant-numeric:tabular-nums}.history-list__what{margin:0;font-weight:600}.history-list__by{margin:0;color:var(--text-muted);font-size:var(--text-small)}.notice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid;border-radius:var(--radius)}.notice__icon{display:flex;padding-top:2px}.notice__body{flex:1;min-width:0;overflow-wrap:anywhere}.notice__body p{margin:0}.notice__action{flex-shrink:0}.notice--error{color:var(--error-text);background:var(--error-surface);border-color:var(--error-border)}.notice--warning{color:var(--warning-text);background:var(--warning-surface);border-color:var(--warning-border)}.notice--info{color:var(--info-text);background:var(--info-surface);border-color:var(--info-border)}.page{display:flex;flex-direction:column;gap:var(--section-gap);max-width:880px;padding:var(--space-6)}.page--wide{max-width:1200px}.page__heading{margin:0;font-size:var(--text-title);font-weight:650;line-height:1.25}.page p{margin:0}.page__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}@media(max-width:600px){.page{padding:var(--space-4)}}.table{overflow-x:auto;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius)}.table table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:middle;border-top:1px solid var(--border)}.table td:first-child{min-width:10rem;overflow-wrap:anywhere}.table thead th{border-top:none;color:var(--text-muted);font-size:var(--text-small);font-weight:600}.table__row--muted td{color:var(--text-muted)}.table__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.table__actions .button{white-space:nowrap}.table__under td{border-top:none;padding-top:0}@media(max-width:1024px){.table{overflow-x:visible;background:none;border:none}.table table,.table tbody,.table tr,.table td{display:block;width:100%}.table thead{display:none}.table tbody tr{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius)}.table td,.table td:first-child{min-width:0;padding:var(--space-2) 0;border-top:none;overflow-wrap:anywhere}.table td:before{content:attr(data-label);display:block;color:var(--text-muted);font-size:var(--text-small);font-weight:600}.table tbody tr.table__under{margin-top:calc(-1 * var(--space-3));border-top:none;border-top-left-radius:0;border-top-right-radius:0}.table__under td:before{display:none}}.sign-in-frame{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-6) var(--space-4)}.sign-in-frame__card{width:min(28rem,100%);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius)}.sign-in-frame__logo{display:flex;justify-content:center;padding:var(--space-6) var(--space-6) 0}.sign-in-frame__card .page{padding:var(--section-gap) var(--space-6) var(--space-6)}
