:root{--bg: #eef3f6;--surface: #ffffff;--text: #1b2a32;--muted: #667a84;--line: #d7e1e7;--accent: #1f8a75;--accent-soft: #e6f5f1;--warn: #c47a28;--warn-soft: #fff3e4;--font-display: "Sora", "Noto Sans SC", sans-serif;--font-body: "Noto Sans SC", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);font-family:var(--font-body);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.shell{min-height:100vh;background:radial-gradient(70% 40% at 0% 0%,rgba(31,138,117,.12),transparent 55%),radial-gradient(50% 35% at 100% 0%,rgba(196,122,40,.08),transparent 50%),var(--bg)}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:.65rem clamp(.9rem,2.5vw,1.6rem);background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand-block{display:flex;align-items:baseline;gap:.5rem}.brand{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.2rem;letter-spacing:-.03em;color:var(--text)}.brand-sub{color:var(--muted);font-size:.78rem}.nav{display:flex;gap:.9rem}.nav a{color:var(--muted);font-size:.88rem}.nav a.active,.nav a:hover{color:var(--accent);font-weight:600}.userbox{justify-self:end;display:flex;align-items:center;gap:.5rem;text-align:right}.userbox strong{display:block;font-size:.86rem}.userbox em{display:block;font-style:normal;color:var(--muted);font-size:.72rem}.dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--warn)}.dot.on{background:var(--accent)}.workbench{max-width:1120px;margin:0 auto;padding:.85rem clamp(.9rem,2.5vw,1.6rem) 1.2rem}.greet{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;margin-bottom:.85rem;background:var(--surface);border:1px solid var(--line);border-radius:12px}.greet h1{margin:0 0 .2rem;font-family:var(--font-display);font-size:clamp(1.15rem,2.2vw,1.45rem);letter-spacing:-.02em}.greet p{margin:0;color:var(--muted);font-size:.86rem}.stat-rail{display:grid;grid-template-columns:repeat(4,minmax(4.2rem,1fr));gap:.45rem;min-width:min(100%,22rem)}.stat{text-align:center;padding:.45rem .35rem;border-radius:8px;background:var(--accent-soft)}.stat strong{display:block;font-family:var(--font-display);font-size:1.25rem;color:var(--accent);line-height:1.1}.stat span{color:var(--muted);font-size:.72rem}.section{margin-bottom:.85rem}.section-head{display:flex;align-items:baseline;gap:.65rem;margin-bottom:.55rem}.section-head h2,.panel-head h2,.module-group h3{margin:0;font-family:var(--font-display);letter-spacing:-.02em}.section-head h2{font-size:1rem}.section-head p{margin:0;color:var(--muted);font-size:.8rem}.module-group{margin-bottom:.55rem}.module-group h3{margin-bottom:.35rem;color:var(--muted);font-size:.78rem;font-weight:600}.module-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}a.module-tile{text-decoration:none;color:inherit}.module-tile{width:100%;display:flex;align-items:center;gap:.55rem;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:.55rem .6rem;border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}a.module-tile:hover,button.module-tile:not(:disabled):hover{border-color:#1f8a7573;box-shadow:0 4px 14px #1b2a320f}button.module-tile:disabled{cursor:default;opacity:.72}.module-tile strong{display:block;font-size:.86rem}.module-tile span{display:block;color:var(--muted);font-size:.72rem;line-height:1.3;margin-top:.1rem}.ico{flex:0 0 auto;width:1.45rem;height:1.45rem;border-radius:.35rem;background:linear-gradient(135deg,#2aa48d,#1f8a75)}.ico-sso{background:linear-gradient(135deg,#3d7ea6,#1f4f6e)}.ico-ehr{background:linear-gradient(135deg,#4d86a5,#315f78)}.ico-music{background:linear-gradient(135deg,#c45d7a,#8a3550)}.ico-ebook{background:linear-gradient(135deg,#c9853f,#8d5a24)}.ico-bio{background:linear-gradient(135deg,#8b4513,#5c2e0a)}.ico-huggingfacecn{background:linear-gradient(135deg,#ffd21e,#e68a00)}.ico-white{background:linear-gradient(135deg,#6366f1,#4338ca)}.ico-dp{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.ico-lbpm,.ico-bpm{background:linear-gradient(135deg,#1f6feb,#164ea8)}.ico-manage{background:linear-gradient(135deg,#5a6d82,#344556)}.ico-bpm,.ico-doc,.ico-contract{background:linear-gradient(135deg,#2aa48d,#176f5e)}.ico-km,.ico-news{background:linear-gradient(135deg,#d29a45,#a87425)}.ico-hr,.ico-asset{background:linear-gradient(135deg,#4d86a5,#315f78)}.ico-finance,.ico-report{background:linear-gradient(135deg,#c47a4a,#8d5431)}.split{display:grid;grid-template-columns:1.2fr .9fr;gap:.65rem}.panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.7rem .85rem .35rem}.panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.panel-head h2{font-size:.95rem}.panel-head span{color:var(--muted);font-size:.75rem;background:var(--bg);border-radius:999px;padding:.1rem .45rem}.todo-list,.notice-list{list-style:none;margin:0;padding:0}.todo-list li,.notice-list li{display:grid;grid-template-columns:1fr auto;gap:.2rem .7rem;padding:.55rem 0;border-top:1px solid var(--line)}.todo-list strong,.notice-list strong{display:block;font-size:.84rem}.todo-list em{display:block;margin-top:.12rem;font-style:normal;color:var(--muted);font-size:.72rem}.todo-list time,.notice-list time{color:var(--muted);font-size:.72rem;white-space:nowrap}.todo-list li.urgent strong:before{content:"急";display:inline-block;margin-right:.3rem;padding:.02rem .28rem;border-radius:.2rem;background:var(--warn-soft);color:var(--warn);font-size:.66rem;vertical-align:middle}.notice-list li{grid-template-columns:auto 1fr auto;align-items:center}.tag{font-size:.68rem;color:var(--accent);background:var(--accent-soft);padding:.08rem .35rem;border-radius:.25rem}.foot{max-width:1120px;margin:0 auto;padding:.4rem clamp(.9rem,2.5vw,1.6rem) 1.1rem;color:var(--muted);font-size:.75rem}@media(max-width:980px){.topbar{grid-template-columns:1fr;justify-items:start}.userbox{justify-self:start}.greet,.split{grid-template-columns:1fr;flex-direction:column;align-items:stretch}.stat-rail{width:100%;min-width:0}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.module-grid,.stat-rail{grid-template-columns:1fr 1fr}}
