*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:13px var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--teal-deep)}.mono{font-family:var(--mono);letter-spacing:.02em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav{background:var(--white);border-bottom:2px solid var(--teal);position:relative}
.nav-inner,.container,.foot{max-width:none;padding-left:20px;padding-right:20px}.nav-inner{display:flex;align-items:flex-end;gap:24px;min-height:56px}.brand{display:flex;align-items:center;gap:12px;padding-bottom:8px;text-decoration:none;color:inherit}.logo-h{height:34px;width:auto;display:block}.brand-sys{color:var(--g600);font-size:12px;font-weight:700;letter-spacing:.06em}
.menu{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;gap:2px;flex:1;flex-wrap:wrap}.menu a,.menu button,.master-menu summary{display:block;padding:9px 14px;text-decoration:none;font:inherit;font-weight:600;background:none;border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;cursor:pointer;color:var(--g600);white-space:nowrap}.menu .active,.menu a:hover,.menu button:hover,.master-menu summary:hover{background:var(--g100);color:var(--text)}.menu .active{box-shadow:inset 0 3px 0 var(--teal-deep)}.logout-form{margin-left:auto}.logout-form button{color:var(--red-deep)}
.master-menu{position:relative}.master-menu summary{list-style:none}.master-menu-items{position:absolute;z-index:20;display:grid;min-width:200px;padding:6px;background:var(--white);border:1px solid var(--g200);border-radius:var(--r-sm);box-shadow:var(--shadow)}.master-menu-items a{padding:7px 10px;border:0;border-radius:var(--r-sm)}
.container{margin:16px 0 30px}.page-title{font-size:18px;margin:16px 0 10px;font-weight:700}.block-bar{display:inline-flex;gap:3px;margin-right:10px;vertical-align:middle}.block-bar i{display:block;width:10px;height:10px;border-radius:2px}.block-bar i:nth-child(1){background:var(--teal);box-shadow:0 2px 0 var(--teal-deep)}.block-bar i:nth-child(2){background:var(--green);box-shadow:0 2px 0 var(--green-deep)}.block-bar i:nth-child(3){background:var(--red);box-shadow:0 2px 0 var(--red-deep)}.block-bar i:nth-child(4){background:var(--yellow);box-shadow:0 2px 0 var(--yellow-deep)}
.card{background:var(--white);border:1px solid var(--g200);border-radius:6px;padding:10px 12px}.table-wrap{overflow:auto;max-height:calc(100vh - 258px);padding:0}.grid{--fixed-first:90px;width:100%;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}.grid.fixed-first-name{--fixed-first:240px}.grid th,.grid td{padding:5px 8px;text-align:left;vertical-align:middle;border:0;border-right:1px solid var(--g200);border-bottom:1px solid var(--g200)}.grid th:first-child,.grid td:first-child{border-left:1px solid var(--g200)}.grid thead th{position:sticky;top:0;z-index:2;background:var(--teal-deep);color:var(--white);font-weight:700;white-space:nowrap}.grid tbody>tr:nth-child(even)>td{background-color:var(--zebra)}.grid tbody>tr:hover>td{background-color:var(--yellow-soft)}.grid td.num{text-align:right;font-family:var(--mono)}.nowrap{white-space:nowrap}.grid tbody>tr>td:empty:not(:first-child):not(:last-child)::after{content:"—";color:var(--g200)}
.grid th:nth-child(1),.grid td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--white);width:var(--fixed-first);min-width:var(--fixed-first)}.grid th:nth-child(2),.grid td:nth-child(2){position:sticky;left:var(--fixed-first);z-index:1;background:var(--white);box-shadow:2px 0 0 var(--g200)}.grid thead th:nth-child(1),.grid thead th:nth-child(2){z-index:3;background:var(--teal-deep)}
.grid tbody>tr>td:first-child{padding-left:13px;background-image:linear-gradient(var(--ctx,var(--g200)),var(--ctx,var(--g200)));background-repeat:no-repeat;background-size:5px calc(100% - 9px);background-position:3px 4px}.sp-ctx--sugi{--ctx:var(--sp-sugi)}.sp-ctx--hinoki{--ctx:var(--sp-hinoki)}.sp-ctx--maki{--ctx:var(--sp-maki)}
.actions{display:flex;align-items:center;gap:10px;margin:10px 0 8px}.actions .count{margin-left:auto;color:var(--g600);font-variant-numeric:tabular-nums}.btn,.button{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font:600 13px var(--font);text-decoration:none;border:1px solid transparent;border-radius:4px;cursor:pointer;line-height:1.2}.btn-primary,.button-primary{background:var(--teal-deep);color:var(--white);box-shadow:0 2px 0 var(--teal)}.btn-success{background:var(--green);color:var(--white);box-shadow:0 2px 0 var(--green-deep)}.btn-default{background:var(--white);color:var(--text);border-color:var(--g200);box-shadow:0 2px 0 var(--g200)}.btn-danger{background:var(--red);color:var(--white);box-shadow:0 2px 0 var(--red-deep)}.btn-sm{padding:3px 8px;font-size:12px}.button-block{width:100%;justify-content:center}.inline{display:inline}.ico{width:12px;height:12px;display:block;flex:none}.text-right{text-align:right}
.pagination{display:flex;gap:4px;margin:14px 0 30px}.pagination a{display:inline-block;padding:4px 9px;border:1px solid var(--g200);border-radius:4px;text-decoration:none;background:var(--white)}.pagination a.current{background:var(--teal-deep);color:var(--white);border-color:var(--teal-deep);box-shadow:0 2px 0 var(--teal);transform:translateY(-1px)}.pagination a.edge{color:var(--g600)}
.pagination span{display:inline-block;padding:4px 9px;border:1px solid var(--g100);border-radius:4px;color:var(--g400);background:var(--g50)}
.tabs{list-style:none;padding:0;margin:0 0 -1px;display:flex;gap:2px}.tabs a{display:block;padding:6px 14px;text-decoration:none;border:1px solid var(--g200);border-bottom:0;border-radius:5px 5px 0 0;background:var(--g50);color:var(--g600)}.tabs .active a{padding-top:4px;border-top:3px solid var(--teal);background:var(--white);color:var(--text);font-weight:600;box-shadow:0 -2px 0 rgba(61,57,57,.05)}
.form-card{max-width:960px;border-top:3px solid var(--teal);border-top-left-radius:0}.form-h .fg{display:flex;align-items:center;margin:0 0 8px}.form-h .fg>label{width:140px;text-align:right;padding-right:16px;color:var(--g600)}.form-h .fg>div{flex:1}.inline-fields{display:flex;align-items:center;gap:6px}.static{padding:6px 0}.help-block{display:block;color:var(--g600);margin-top:4px}.form-control,input:not([type]),input[type=text],input[type=password],input[type=file],select{font:13px var(--font);color:inherit;background:var(--white);border:1px solid var(--g200);border-radius:var(--r-sm);padding:4px 6px;min-height:30px}.form-control{max-width:100%}input:disabled,select:disabled{background-color:var(--g50);color:var(--g600);background-image:repeating-linear-gradient(135deg,rgba(61,57,57,.055) 0 3px,transparent 3px 6px)}.w-code{width:110px}.w-name{width:320px}.w-number{width:100px}.w-wide{width:360px}
.form-card.sp-ctx--sugi{border-top-color:var(--sp-sugi)}.form-card.sp-ctx--hinoki{border-top-color:var(--sp-hinoki)}.form-card.sp-ctx--maki{border-top-color:var(--sp-maki)}
.search{max-width:none}.search-form .row{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.search-form label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.search-form .links{margin-top:8px;font-size:13px}.search-form .right{justify-content:flex-end;margin-top:8px}
.alert{border-radius:var(--r-sm);padding:12px 16px;margin:0 0 16px;background:var(--yellow-soft);border:1px solid var(--yellow)}.alert h4{margin:0 0 4px;font-size:15px}.alert p{margin:2px 0}.alert-danger{background:var(--red-soft);color:var(--red-deep);border-left:4px solid var(--red);border-top-color:var(--red-soft);border-right-color:var(--red-soft);border-bottom-color:var(--red-soft)}.alert-danger h4::before{content:"▲";margin-right:6px}.alert-info{background:var(--teal-soft);border-color:var(--teal)}
.sp{display:inline-block;min-width:1.5em;padding:0 5px;text-align:center;font-weight:700;border-radius:4px;line-height:1.55;color:var(--white)}.sp--sugi{background:var(--sp-sugi)}.sp--hinoki{background:var(--sp-hinoki)}.sp--maki{background:var(--sp-maki)}
.fbadge{display:inline-block;width:19px;height:19px;line-height:19px;text-align:center;margin-right:5px;border-radius:3px;font:700 11px var(--mono);vertical-align:-4px}.f-H{background:var(--teal);color:var(--white);box-shadow:0 2px 0 var(--teal-deep)}.f-A{background:var(--green);color:var(--white);box-shadow:0 2px 0 var(--green-deep)}.f-C{background:var(--yellow);color:var(--text);box-shadow:0 2px 0 var(--yellow-deep)}.f-N{background:var(--text);color:var(--white);box-shadow:0 2px 0 var(--g600)}.f-ext{background:var(--white);color:var(--g600);box-shadow:inset 0 0 0 1.5px var(--g400)}.f-Z{background:var(--g100);color:var(--g600)}
.mz{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border-radius:50%}.mz--pink{background:var(--mz-pink)}.mz--black{background:var(--mz-black)}.mz--red{background:var(--mz-red)}.mz--spidra{background:var(--mz-spidra)}.mz--beta{background:var(--text);border-radius:2px}.mz--none{background:var(--white);box-shadow:inset 0 0 0 1px var(--g400)}
.lc{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border-radius:0;background:none;box-shadow:none;position:relative}.c-teal{--c:var(--teal);--c-soft:var(--teal-soft)}.c-green{--c:var(--green);--c-soft:var(--green-soft)}.c-yellow{--c:var(--yellow);--c-soft:var(--yellow-soft)}.c-sumi{--c:var(--text);--c-soft:var(--g200)}.c-wood{--c:var(--wood);--c-soft:var(--wood-soft)}.lc.sh-circle{border-radius:50%;background:var(--c)}.lc.sh-tri{background:var(--c);clip-path:polygon(50% 0,100% 100%,0 100%)}.lc.half{background:linear-gradient(90deg,var(--c) 0 50%,var(--c-soft) 50% 100%)}.lc.sh-circle.half{box-shadow:inset 0 0 0 1.5px var(--c)}.lc.sh-ext{width:13px;height:13px;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--g400);color:var(--g600);font:700 8.5px/13px var(--font);text-align:center}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;font-size:11.5px;color:var(--g600);margin:0 0 8px;padding:5px 10px;background:var(--white);border:1px solid var(--g200);border-radius:6px}.legend .lg{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.legend b{font-weight:700;color:var(--text);margin-right:4px}.legend .fbadge,.legend .mz,.legend .lc,.legend .sp{margin-right:2px}
.authentication-page{padding:40px 0;background:var(--g50)}.authentication-shell{max-width:360px;margin:0 auto}.form-signin{padding:18px;background:var(--white);border:1px solid var(--g200);border-radius:6px;box-shadow:var(--shadow)}.login-heading{margin-bottom:16px;color:var(--teal-deep);font-size:24px;font-weight:700;text-align:center}.form-signin .form-control{display:block;width:100%;margin-top:8px;padding:8px}.checkbox{display:block;margin:12px 0}.csv-output-fields{display:flex;align-items:center;gap:14px;padding:16px;border:0}.csv-target-date{width:120px}.label{display:inline-block;padding:2px 5px;background:var(--g100);color:var(--g600);border-radius:3px}.foot{margin:20px 0 40px;font-size:12px;color:var(--g400)}
.nidf{display:inline-block;font-weight:800;padding:1px 2px;margin-right:1px;border-radius:2px}.nidf.f-H,.nidf.f-A,.nidf.f-N{color:var(--white)}.nidf.f-C{color:var(--text)}
.option-row{margin-top:8px}.history-card{max-width:960px;margin-bottom:10px}.history-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.history-grid{--fixed-first:150px;min-width:720px}.gzai-grid{--fixed-first:42px;min-width:1400px}.ikkatsu-wrap{max-height:calc(100vh - 225px)}.ikkatsu-grid{--fixed-first:58px;min-width:1600px}.w-seq{width:62px}.ikkatsu-hinmei{min-width:410px}.hinmei{padding:7px 9px;background:var(--g50);border-left:3px solid var(--ctx,var(--g200));min-height:32px}.hinban-dialog{width:min(800px,calc(100vw - 40px));height:min(650px,calc(100vh - 40px));padding:14px;border:1px solid var(--g200);border-radius:6px;box-shadow:var(--shadow)}.hinban-dialog::backdrop{background:rgba(35,47,45,.35)}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--g200);margin-bottom:10px}.dialog-head h2{font-size:17px;margin:0 0 8px}.dialog-search{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}.dialog-search label{display:inline-flex;align-items:center;gap:5px}.suggestion-area{margin-top:10px;max-height:510px;overflow:auto}.suggestion-area .grid{min-width:700px}.close-hinban-dialog{font-size:18px;padding:2px 9px}.form-card p{margin:5px 0}
.kansouki-grid{--fixed-first:42px;min-width:1200px}.kansouki-meisai-grid{--fixed-first:150px;min-width:720px}.kansouki-meisai-form{max-width:960px;margin-bottom:10px}.meisai-input-row{display:flex;align-items:center;gap:8px;min-height:36px}.right-actions{justify-content:flex-end}textarea{font:13px var(--font);color:inherit;background:var(--white);border:1px solid var(--g200);border-radius:var(--r-sm);padding:4px 6px}
@media(max-width:800px){.nav-inner{align-items:flex-start;flex-direction:column;gap:0}.menu{width:100%}.logout-form{margin-left:0}.form-h .fg{align-items:flex-start;flex-direction:column}.form-h .fg>label{width:auto;text-align:left;padding:0 0 3px}.actions{flex-wrap:wrap}.actions .count{width:100%;margin-left:0}}
.kdzai-grid{--fixed-first:42px;min-width:1500px}
.kdlabel-form{max-width:960px}.kdlabel-types{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;margin:0 0 10px;padding:0 0 10px;border:0;border-bottom:1px solid var(--g200)}.kdlabel-types legend{float:left;margin-right:16px;font-weight:700}.kdlabel-grid{width:100%;border-collapse:collapse}.kdlabel-grid td{height:42px;padding:5px 8px;border:1px solid var(--g200)}.kdlabel-grid td:first-child{width:150px}.kdlabel-grid td:nth-child(2){min-width:420px}
