:root{--ai:#1c3f6e;--ai-weak:#e4ebf4;--kinari:#faf7f0;--kinari-2:#f1ece1;--header:#e6e0d2;--sumi:#2b2b2b;--muted:#6b6760;--line:#d9d2c3;--white:#fff;--warn-bg:#fff3cd;--warn:#7a5a00;--err-bg:#f8e1e1;--err:#9c2f2f;--ok-bg:#e2efe8;--ok:#2f6b4f;--radius:10px;font-size:18px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--sumi);background:var(--kinari);font-family:Yu Gothic UI,Hiragino Sans,Noto Sans JP,Meiryo,system-ui,sans-serif;line-height:1.6}h1,h2,h3{color:var(--ai);margin:0 0 .5rem;font-weight:600}h1{font-size:2rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0 0 .75rem}.caption{color:var(--muted);font-size:.875rem}:root{--appbar-h:60px;--ai-deep:#152e55;--ai-deeper:#0f2350}.appbar{height:var(--appbar-h);z-index:10;justify-content:space-between;align-items:center;padding:0 1.25rem;display:flex;position:sticky;top:0}.appbar.texture-sashiko{color:#f4f1ea;background-color:var(--ai-deep);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='20' viewBox='0 0 28 20'><g stroke='%23f4f1ea' stroke-opacity='0.22' stroke-width='1.3' stroke-linecap='round'><path d='M3 5h8M17 5h8'/><path d='M10 15h8M24 15h4M0 15h4'/></g></svg>"), linear-gradient(180deg, #1a3764 0%, var(--ai-deep) 60%, var(--ai-deeper) 100%);box-shadow:0 2px 6px #0f235059}.appbar.texture-linen{color:var(--ai);border-bottom:1px solid var(--line);background-color:#f3eee3;background-image:repeating-linear-gradient(0deg,#3c321e0f 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#3c321e0f 0 1px,#0000 1px 3px);box-shadow:0 1px 4px #3c321e14}.appbar.texture-linen .appbar-menu span{background:var(--ai)}.appbar.texture-linen .appbar-logo img{filter:none}.appbar.texture-linen .appbar-divider{background:var(--line)}.appbar.texture-linen .appbar-user{background:var(--white);border-color:var(--line)}.appbar.texture-linen .appbar-avatar{background:var(--ai);color:var(--kinari)}.appbar-left{align-items:center;gap:1rem;min-width:0;display:flex}.appbar-menu{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:space-between;width:36px;height:36px;padding:6px;display:inline-flex}.appbar-menu span{background:#f4f1ea;border-radius:1px;height:2px;display:block}.appbar-menu:hover{background:#ffffff1a}.appbar-logo{align-items:center;height:40px;display:inline-flex}.appbar-logo img{filter:brightness(0)invert();width:auto;height:36px;display:block}.appbar-logo-text{letter-spacing:.04em;font-family:Helvetica Neue,Arial,sans-serif;font-size:1.7rem;font-weight:300;line-height:1}.appbar-divider{background:#f4f1ea73;width:1px;height:28px}.appbar-title{letter-spacing:.25em;white-space:nowrap;font-family:Yu Mincho,YuMincho,Hiragino Mincho ProN,Noto Serif JP,serif;font-size:1.15rem}.appbar-user{background:#f4f1ea1a;border:1px solid #f4f1ea40;border-radius:999px;align-items:center;gap:.6rem;max-width:40vw;padding:4px 14px 4px 4px;display:flex}.appbar-avatar{background:var(--kinari);width:32px;height:32px;color:var(--denim);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:inline-flex}.appbar-user-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.appbar-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.appbar-user-dept{opacity:.8;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.app{min-height:calc(100% - var(--appbar-h));display:flex}.sidebar{background:var(--kinari-2);border-right:1px solid var(--line);flex-direction:column;flex:none;gap:.5rem;width:240px;padding:1.25rem 1rem;transition:width .15s,padding .15s;display:flex}.app.nav-closed .sidebar{border-right:none;width:0;padding:0;overflow:hidden}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav button{text-align:left;border-radius:var(--radius);color:var(--sumi);cursor:pointer;background:0 0;border:1px solid #0000;padding:.6rem .8rem;font-size:1rem}.sidebar nav button.active{background:var(--ai);color:var(--white)}.sidebar nav button:hover:not(.active){background:var(--header)}.sidebar .spacer{flex:1}.main{flex:1;max-width:1280px;padding:2rem 2.5rem}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem 1.5rem}.row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.row>*{flex:220px}label.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}input[type=text],input[type=number],input[type=password],select,textarea{font:inherit;border:1px solid var(--line);background:var(--white);color:var(--sumi);border-radius:8px;width:100%;padding:.5rem .7rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--ai);outline-offset:1px;border-color:var(--ai)}button.primary,button.secondary{font:inherit;cursor:pointer;border:1px solid var(--ai);border-radius:8px;padding:.55rem 1.2rem}button.primary{background:var(--ai);color:var(--white)}button.secondary{background:var(--white);color:var(--ai)}button.primary:disabled,button.secondary:disabled{opacity:.5;cursor:not-allowed}button.link{color:var(--ai);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--white);cursor:pointer;border-radius:999px;padding:2px 12px;font-size:.875rem}.chip.on{background:var(--ai);color:var(--white);border-color:var(--ai)}.note{border-radius:8px;margin:.5rem 0;padding:.75rem 1rem}.note.info{background:var(--ai-weak);color:var(--ai)}.note.warn{background:var(--warn-bg);color:var(--warn)}.note.err{background:var(--err-bg);color:var(--err)}.note.ok{background:var(--ok-bg);color:var(--ok)}.metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:.5rem 0 1rem;display:grid}.metric{background:var(--kinari-2);border-radius:8px;padding:.75rem 1rem}.metric .label{color:var(--muted);font-size:.8rem}.metric .value{color:var(--ai);font-size:1.5rem;font-weight:600}.metric.err .value{color:var(--err)}.metric.warn .value{color:var(--warn)}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.45rem .6rem}th{background:var(--header);color:var(--sumi);white-space:nowrap;font-weight:600;position:sticky;top:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td input[type=number]{text-align:right;width:8em;padding:.25rem .4rem}.bar{background:var(--kinari-2);border-radius:4px;min-width:80px;height:8px;overflow:hidden}.bar>div{background:var(--ai);height:100%}.tag{border-radius:4px;padding:0 8px;font-size:.8rem;font-weight:600;display:inline-block}.tag.ERROR{background:var(--err-bg);color:var(--err)}.tag.WARNING{background:var(--warn-bg);color:var(--warn)}.scroll{border:1px solid var(--line);border-radius:8px;max-height:420px;overflow:auto}.tag.ref{background:var(--ai-weak);color:var(--ai);margin-left:.5em}.tag.add{background:var(--ok-bg);color:var(--ok);margin-left:.5em}.tag.edit{background:var(--warn-bg);color:var(--warn);margin-left:.5em}tr.edited td{background:#fffbea}td .link+.link{margin-left:.75em}tr.detail-row td{background:var(--kinari);padding:.75rem 1rem 1rem}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.detail-group{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;font-size:.875rem}.detail-head{color:var(--ai);border-bottom:1px solid var(--line);justify-content:space-between;margin-bottom:.25rem;padding-bottom:.25rem;font-weight:600;display:flex}.detail-line{grid-template-columns:1fr auto 5.5em;gap:.5rem;padding:.1rem 0;display:grid}.detail-line .num,.detail-head .num{text-align:right;font-variant-numeric:tabular-nums}.jodai-basis{background:var(--kinari-2);border-radius:8px;margin:-.25rem 0 .75rem;padding:.5rem .75rem;font-size:.9rem}.jodai-candidates{align-items:baseline;gap:.5em;margin-left:.75em;display:inline-flex}.jodai-candidates span{font-variant-numeric:tabular-nums}.jodai-candidates .current{color:var(--ai);text-underline-offset:3px;font-weight:600;text-decoration:underline}.add-line{background:var(--kinari-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding:.6rem .75rem;display:flex}.add-line select{width:auto}.add-line input[type=text]{flex:240px;width:auto}.drop{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;background:var(--kinari);cursor:pointer;justify-content:center;align-items:center;min-height:5rem;padding:1.5rem;transition:border-color .15s;display:flex}.drop.over{border-color:var(--ai);background:var(--ai-weak)}.drop input{display:none}.spinner{vertical-align:-.15em;border:2px solid var(--line);border-top-color:var(--ai);border-radius:50%;width:1em;height:1em;margin-right:.4em;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}details>summary{cursor:pointer;list-style:revert}.login{min-height:calc(100% - var(--appbar-h));justify-content:center;align-items:center;display:flex}.login .card{width:420px;max-width:92vw}.login form{flex-direction:column;gap:.75rem;display:flex}@media (width<=900px){.app{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--line);width:auto}.sidebar nav{flex-direction:row}.main{padding:1rem}}
