:root{--color-primary:#e60044;--color-primary-dark:#c3003a;--color-primary-light:#fce4eb;--color-primary-tint:#fff0f4;--color-bg:#fff;--color-bg-sub:#f5f5f7;--color-bg-muted:#fafafb;--color-text:#1a1a1a;--color-text-sub:#555;--color-text-mute:#999;--color-border:#e0e0e0;--color-border-strong:#ccc;--color-sat:#1769c0;--color-sun:#d32f4a;--status-new:#e60044;--status-new-bg:#fce4eb;--status-repeat:#2d6fb5;--status-repeat-bg:#e4eef8;--status-tentative:#e8920c;--status-done:#7a7a7a;--status-cancel:#c9c9c9;--tl-font:"Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, system-ui, sans-serif;--ink:#1c1c1e;--sub:#6e6e73;--bg:#f5f5f7;--surface:#fff;--line:#e3e3e8;--accent:#a6293f;--accent-strong:#8e2136;--accent-weak:#fbf1f3;--green:#1e6b3c;--green-weak:#e8f4ec;--amber:#8a5a00;--amber-weak:#fbf3df;--red:#b3261e;--red-strong:#99201a;--red-weak:#fbeae9;--purple:#5b4b8a;--purple-weak:#efecf6;--gray-weak:#ececf0;--radius:10px;--shadow:0 1px 2px #0000000f;--font-sans:-apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--text:var(--ink);--text-h:var(--ink);--border:var(--line);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}#root{min-height:100svh}h1,h2,h3,h4,h5,h6{color:var(--ink);margin:0;font-weight:600;line-height:1.4}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabular-nums{font-variant-numeric:tabular-nums}.page{width:100%;max-width:1200px;margin:0 auto}.page-head{margin-bottom:16px}.page-title{color:var(--ink);margin:0;font-size:20px;font-weight:600}.page-help{color:var(--sub);margin:4px 0 0;font-size:13px}.page-head .toolbar{margin-top:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-spacer{flex:1}.seg{background:var(--gray-weak);border:1px solid var(--line);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.seg-btn{height:28px;color:var(--sub);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:0 12px;font-size:13px;line-height:1}.seg-btn:hover{color:var(--ink)}.seg-btn--active,.seg-btn--active:hover{background:var(--surface);color:var(--accent);box-shadow:var(--shadow);font-weight:600}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:var(--red-strong)}.btn-sm{height:32px;padding:0 10px;font-size:13px}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--sub);font-size:12px}.input,.select,.textarea{background:var(--surface);border:1px solid var(--line);width:100%;height:36px;color:var(--ink);border-radius:8px;padding:0 10px;font-size:14px}.input::placeholder,.textarea::placeholder{color:#a5a5ac}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236E6E73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.textarea{resize:vertical;height:auto;min-height:88px;padding:8px 10px;line-height:1.6}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:500;line-height:1.6;display:inline-flex}.badge-green{background:var(--green-weak);color:var(--green)}.badge-amber{background:var(--amber-weak);color:var(--amber)}.badge-red{background:var(--red-weak);color:var(--red)}.badge-gray{background:var(--gray-weak);color:var(--sub)}.badge-purple{background:var(--purple-weak);color:var(--purple)}.tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.tbl th{border-bottom:1px solid var(--line);color:var(--sub);text-align:left;white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:500}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px;font-size:14px}.tbl tbody tr:hover{background:var(--bg)}.tbl tbody tr:last-child td{border-bottom:none}.note{background:var(--bg);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.6}.note-red{background:var(--red-weak);color:var(--red)}.empty{text-align:center;color:var(--sub);padding:40px 16px;font-size:13px;line-height:1.8}.modal-overlay{z-index:1000;background:#1c1c1e73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:560px;max-height:85vh;box-shadow:var(--shadow);flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;display:flex}.modal-head h2,.modal-head h3{white-space:nowrap;flex-shrink:0;margin:0;font-size:16px;font-weight:600}.modal-body{padding:20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.day-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-nav-datepick{cursor:pointer;clip-path:inset(0);align-items:center;display:inline-flex;position:relative;overflow:hidden}.day-nav-datepick input[type=date]{opacity:0;cursor:pointer;appearance:none;border:0;width:100%;min-width:0;height:100%;min-height:0;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.day-nav-date{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:600}.app{min-height:100vh;display:flex}.sidenav{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:220px;padding:20px 12px;display:flex}.sidenav-brand{letter-spacing:.08em;color:var(--ink);padding:0 12px 16px;font-size:15px;font-weight:700}.sidenav-brand span{letter-spacing:0;color:var(--sub);margin-top:2px;font-size:11px;font-weight:500;display:block}.nav-link{color:var(--ink);border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.nav-link:hover{background:var(--bg);text-decoration:none}.nav-link .nav-icon{color:var(--sub);flex-shrink:0}.nav-link--active,.nav-link--active:hover{background:var(--accent-weak);color:var(--accent);font-weight:600}.nav-link--active .nav-icon{color:var(--accent)}.app-body{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.app-header-title{color:var(--ink);white-space:nowrap;font-size:15px;font-weight:600}.app-header-right{align-items:center;gap:8px;min-width:0;display:flex}.app-header-user{color:var(--sub);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.app-content{flex:1;min-width:0;padding:24px}.app-loading{background:var(--bg);min-height:100vh;color:var(--sub);justify-content:center;align-items:center;font-size:14px;display:flex}.help-dl{margin:0}.help-dl dt{color:var(--ink);margin-top:12px;font-size:14px;font-weight:600}.help-dl dt:first-child{margin-top:0}.help-dl dd{color:var(--sub);margin:2px 0 0;font-size:13px;line-height:1.6}.help-section-title{color:var(--sub);letter-spacing:.04em;margin:20px 0 4px;font-size:12px;font-weight:600}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:384px}.login-logo{text-align:center;letter-spacing:.1em;color:var(--ink);margin:8px 0 4px;font-size:20px;font-weight:700}.login-logo span{letter-spacing:.04em;color:var(--sub);font-size:15px;font-weight:600}.login-sub{text-align:center;color:var(--sub);margin:0 0 20px;font-size:13px}@media (width<=768px){.app{flex-direction:column}.sidenav{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:2px;width:100%;padding:8px 20px 8px 8px;overflow-x:auto}.sidenav-brand{display:none}.nav-link{flex-shrink:0;margin-bottom:0;padding:8px 10px;font-size:13px}.app-header{padding:0 16px}.app-content,.card-pad{padding:16px}.input,.select,.textarea{font-size:16px}}.tbl-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=480px){.app-header-user{display:none}.modal-overlay{padding:10px}.modal{max-height:92vh}.modal-head{padding:12px 14px}.modal-body{padding:14px}.modal-foot{padding:10px 14px}}
