:root{--color-bg:#f7f8f7;--color-surface:#fff;--color-border:#dfe4e1;--color-text:#23302b;--color-text-muted:#66756f;--color-primary:#2f5f9e;--color-primary-dark:#1f4470;--color-primary-soft:#e6ecf6;--color-today:#fff4d6;--color-soon:#fff1d6;--color-soon-text:#8a5a00;--color-today-due:#ffe1c2;--color-today-due-text:#9c4a00;--color-overdue:#fde2e1;--color-overdue-text:#a3231c;--tag-red-soft:#fde2e1;--tag-red-text:#a3231c;--tag-orange-soft:#ffe8c9;--tag-orange-text:#8a4b00;--tag-green-soft:#dff0e4;--tag-green-text:#1f6134;--tag-blue-soft:#dde8f7;--tag-blue-text:#1f4470;--tag-purple-soft:#ebe2f7;--tag-purple-text:#5a2f8a;--tag-gray-soft:#e5e7e8;--tag-gray-text:#464f52;--cal-date-h:20px;--cal-lane-h:18px;--cal-more-h:16px;--radius:8px;--radius-lg:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Hiragino Sans,Yu Gothic UI,Segoe UI,system-ui,sans-serif}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit}.app-shell{flex-direction:column;height:100vh;display:flex}.update-banner{color:#6b4a00;background:#fff4d6;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.license-banner{color:#6b4a00;background:#fff4d6;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:13px;line-height:1.5;display:flex}.license-banner.is-stopped{background:var(--color-overdue);color:var(--color-overdue-text)}.license-banner-close{color:inherit;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:14px}.license-banner-close:hover{opacity:.7}.app-header{background:var(--color-primary);color:#fff;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 20px;display:flex}.app-header h1{margin:0;font-size:16px;font-weight:600}.app-header-actions{flex-wrap:wrap;gap:8px;display:flex}.header-btn{color:#fff;border-radius:var(--radius);white-space:nowrap;background:#ffffff26;border:1px solid #ffffff59;padding:6px 12px;font-size:13px}.header-btn:hover{background:#ffffff47}.main-columns{flex:1;min-height:0;display:flex}.col-calendar{flex:0 0 66%;max-width:66%;padding:16px;overflow-y:auto}.col-side{border-left:1px solid var(--color-border);background:var(--color-surface);flex:1;max-width:34%;padding:16px;overflow-y:auto}@media (width<=900px){.app-shell{height:auto;min-height:100vh}.main-columns{flex-direction:column}.col-calendar,.col-side{flex:none;max-width:100%;overflow-y:visible}.col-side{border-left:none;border-top:1px solid var(--color-border)}}.calendar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-nav h2{margin:0;font-size:18px}.nav-btn-group{gap:6px;display:flex}.nav-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:5px 10px;font-size:13px}.nav-btn:hover{background:var(--color-primary-soft)}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:var(--color-text-muted);padding:4px 0;font-size:12px}.calendar-weeks{flex-direction:column;gap:4px;display:flex}.calendar-week{grid-template-columns:repeat(7,1fr);gap:2px 4px;min-height:96px;padding-bottom:4px;display:grid}.calendar-cell{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:left;z-index:0;border-radius:6px;min-width:0;overflow:hidden}.calendar-cell:hover{background:var(--color-primary-soft)}.calendar-cell.is-outside{opacity:.4}.calendar-cell.is-today{background:var(--color-today);border-color:#e6c766}.calendar-cell.is-drag-over{border-color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary);background:#d7ebe3}.cell-date{color:var(--color-text-muted);z-index:1;pointer-events:none;align-self:start;padding:4px 6px 0;font-size:12px;font-weight:600}.calendar-bar{background:var(--color-primary-soft);color:var(--color-primary-dark);text-align:left;z-index:2;border:none;border-radius:4px;align-self:stretch;align-items:center;min-width:0;padding:1px 5px;font-size:11px;line-height:1.4;display:flex;overflow:hidden}.calendar-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-bar[draggable=true]{cursor:grab;touch-action:pan-y}.calendar-bar.is-touch-dragging{outline:2px solid var(--color-primary);outline-offset:1px;opacity:.85}.calendar-bar[draggable=true]:active{cursor:grabbing}.calendar-bar:hover{background:var(--color-primary);color:#fff}.calendar-bar.is-continued-from-prev{border-top-left-radius:0;border-bottom-left-radius:0}.calendar-bar.is-continues-next{border-top-right-radius:0;border-bottom-right-radius:0}.calendar-bar.color-red{background:var(--tag-red-soft);color:var(--tag-red-text)}.calendar-bar.color-orange{background:var(--tag-orange-soft);color:var(--tag-orange-text)}.calendar-bar.color-green{background:var(--tag-green-soft);color:var(--tag-green-text)}.calendar-bar.color-blue{background:var(--tag-blue-soft);color:var(--tag-blue-text)}.calendar-bar.color-purple{background:var(--tag-purple-soft);color:var(--tag-purple-text)}.calendar-bar.color-gray{background:var(--tag-gray-soft);color:var(--tag-gray-text)}.calendar-bar.color-red:hover{background:var(--tag-red-text);color:#fff}.calendar-bar.color-orange:hover{background:var(--tag-orange-text);color:#fff}.calendar-bar.color-green:hover{background:var(--tag-green-text);color:#fff}.calendar-bar.color-blue:hover{background:var(--tag-blue-text);color:#fff}.calendar-bar.color-purple:hover{background:var(--tag-purple-text);color:#fff}.calendar-bar.color-gray:hover{background:var(--tag-gray-text);color:#fff}.month-event-list{border-top:1px solid var(--color-border);margin-top:14px;padding-top:12px;display:none}.month-event-list h3{color:var(--color-text-muted);margin:0 0 8px;font-size:13px}.month-event-item{border:none;border-bottom:1px solid var(--color-border);text-align:left;width:100%;color:var(--color-text);background:0 0;align-items:center;gap:8px;padding:9px 2px;font-size:13px;display:flex}.month-event-item:last-child{border-bottom:none}.month-event-item:hover{background:var(--color-primary-soft)}.month-event-dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:10px;height:10px}.month-event-dot.color-red{background:var(--tag-red-text)}.month-event-dot.color-orange{background:var(--tag-orange-text)}.month-event-dot.color-green{background:var(--tag-green-text)}.month-event-dot.color-blue{background:var(--tag-blue-text)}.month-event-dot.color-purple{background:var(--tag-purple-text)}.month-event-dot.color-gray{background:var(--tag-gray-text)}.month-event-date{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;min-width:52px;font-size:12px}.month-event-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.reference-item{border:1px solid var(--color-border);border-radius:6px;margin-bottom:8px;padding:10px;font-size:13px}.reference-item-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.reference-item-actions{flex-shrink:0;gap:4px;display:flex}.reference-link{color:var(--color-primary);word-break:break-all;font-size:12px}.reference-path code{background:var(--color-bg);word-break:break-all;border-radius:4px;padding:4px 6px;font-size:12px;display:block}.reference-hint{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:11px;display:flex}.color-palette{flex-wrap:wrap;gap:10px;margin:2px 0 12px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:30px;height:30px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #0000001f}.color-swatch:hover{transform:scale(1.08)}.color-swatch.is-selected{border-color:var(--color-text);box-shadow:inset 0 0 0 1px #0000001f, 0 0 0 2px var(--color-surface)}.color-swatch.is-selected:after{content:"✓";color:#fff;text-shadow:0 0 2px #00000073;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:absolute;inset:0}.color-swatch.is-none{background:var(--color-surface)}.color-swatch.is-none.is-selected:after{color:var(--color-text);text-shadow:none}.cell-more{color:var(--color-text-muted);text-align:left;z-index:2;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0 5px;font-size:11px;overflow:hidden}.cell-more:hover{color:var(--color-primary);text-decoration:underline}.day-business-list{flex-direction:column;gap:6px;display:flex}.day-business-item{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);text-align:left;border-radius:6px;padding:8px 10px}.day-business-item:hover{background:var(--color-primary-soft)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.calendar-card{padding:10px}:root{--cal-date-h:18px;--cal-lane-h:16px;--cal-more-h:15px}.calendar-week{column-gap:2px;min-height:78px}.calendar-weeks{gap:2px}.calendar-bar{padding:0 3px;font-size:10px}.cell-date{padding:2px 4px 0}.cell-more{padding:0 3px;font-size:10px}.month-event-list{display:block}}.side-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.side-header h2{margin:0;font-size:15px}.business-accordion{border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.accordion-head{background:var(--color-surface);text-align:left;border:none;align-items:center;gap:6px;width:100%;padding:10px 12px;display:flex}.accordion-head:hover{background:var(--color-primary-soft)}.accordion-caret{color:var(--color-text-muted);width:12px;font-size:11px}.accordion-title{flex:1;font-size:13px;font-weight:600}.accordion-date{color:var(--color-text-muted);font-size:12px}.due-banner{border-top:1px solid var(--color-border);padding:4px 12px;font-size:12px}.due-banner.soon{background:var(--color-soon);color:var(--color-soon-text)}.due-banner.today{background:var(--color-today-due);color:var(--color-today-due-text)}.due-banner.overdue{background:var(--color-overdue);color:var(--color-overdue-text)}.due-inline{white-space:nowrap;font-size:11px}.due-inline.soon{color:var(--color-soon-text)}.due-inline.today{color:var(--color-today-due-text)}.due-inline.overdue{color:var(--color-overdue-text)}.accordion-body{border-top:1px solid var(--color-border);padding:8px 12px 12px}.todo-row{align-items:center;gap:8px;padding:5px 0;font-size:13px;display:flex}.todo-row.is-completed .todo-text{color:var(--color-text-muted);text-decoration:line-through}.todo-text{flex:1}.todo-due{color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;padding:1px 6px;font-size:11px}.todo-due:hover{background:var(--color-primary-soft)}.todo-due.soon{color:var(--color-soon-text);border-color:var(--color-soon-text)}.todo-due.today{color:var(--color-today-due-text);border-color:var(--color-today-due-text)}.todo-due.overdue{color:var(--color-overdue-text);border-color:var(--color-overdue-text)}.todo-edit-btn{color:var(--color-text-muted);background:0 0;border:none;padding:2px 4px;font-size:12px}.todo-edit-btn:hover{color:var(--color-primary)}.add-todo-row{gap:6px;margin-top:6px;display:flex}.add-todo-row input[type=text]{flex:1}.text-btn{color:var(--color-primary);background:0 0;border:none;padding:4px 0;font-size:13px}.text-btn:hover{text-decoration:underline}.empty-hint{color:var(--color-text-muted);padding:16px 4px;font-size:13px}input[type=text],input[type=date],input[type=time],textarea{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:6px;padding:6px 8px}textarea{resize:vertical;width:100%}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field label{color:var(--color-text-muted);font-size:12px}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.checkbox-field{align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.btn{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:7px 14px;font-size:13px}.btn:hover{background:var(--color-primary-soft)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-danger{color:#a3231c;border-color:#f0c3c1}.btn-danger:hover{background:var(--color-overdue)}.form-actions{justify-content:space-between;margin-top:16px;display:flex}.form-actions-right{gap:8px;display:flex}.modal-overlay{z-index:50;background:#141e1a59;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:90vh;padding:20px;overflow-y:auto;box-shadow:0 12px 32px #0000002e}.modal-panel h3{margin:0 0 14px;font-size:16px}.detail-back{color:var(--color-primary);background:0 0;border:none;padding:0 0 12px;font-size:13px}.detail-back:hover{text-decoration:underline}.detail-title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.detail-title{margin:0 0 4px;font-size:18px;font-weight:700}.detail-datetime{color:var(--color-text-muted);margin-bottom:16px;font-size:13px}.detail-section{margin-top:20px}.detail-section h4{color:var(--color-text-muted);margin:0 0 8px;font-size:13px;font-weight:600}.memo-entry{border:1px solid var(--color-border);border-radius:6px;margin-bottom:6px;padding:8px 10px;font-size:13px}.memo-entry-meta{color:var(--color-text-muted);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.memo-entry-text{white-space:pre-wrap;word-break:break-word}.drawer-overlay{z-index:40;background:#141e1a40;position:fixed;inset:0}.drawer-panel{background:var(--color-surface);z-index:41;width:360px;max-width:92vw;height:100%;padding:16px;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #00000026}.drawer-panel h3{margin:0 0 12px}.free-memo-card{border:1px solid var(--color-border);border-radius:6px;margin-bottom:8px;padding:10px}.free-memo-card textarea{border:none;padding:0;font-size:13px}.free-memo-meta{color:var(--color-text-muted);justify-content:space-between;align-items:center;margin-top:6px;font-size:11px;display:flex}.reset-key-box{border:1px solid var(--color-overdue-text);border-radius:var(--radius);background:var(--color-overdue);color:var(--color-overdue-text);margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.6}.reset-key-box h3{margin:0 0 6px;font-size:14px}.reset-key-box p{margin:0 0 8px}.reset-key-box ul{margin:0 0 10px;padding-left:18px}.reset-key-box li{margin-bottom:5px}.reset-key-confirm{align-items:center;gap:8px;margin-bottom:10px;display:flex}.theme-list{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-bottom:8px;display:grid}.theme-option{border:2px solid var(--color-border);color:var(--color-text);background:0 0;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:6px;font-size:12px;display:flex}.theme-option:hover{border-color:var(--color-primary)}.theme-option.is-selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.theme-preview{border:1px solid #00000014;border-radius:5px;flex-direction:column;width:100%;height:52px;display:flex;overflow:hidden}.theme-preview-bar{flex-shrink:0;height:14px}.theme-preview-body{border:1px solid;border-radius:3px;flex:1;margin:5px;padding:4px}.theme-preview-chip{border-radius:2px;width:70%;height:7px;display:block}.theme-name{font-weight:600}.label-hint{color:var(--color-text-muted);margin:2px 0 6px;font-size:12px}.label-chip-list{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.label-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:3px 10px;font-size:12px;line-height:1.5}.label-chip.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:600}.label-chip.color-red{border-color:var(--tag-red-text);color:var(--tag-red-text)}.label-chip.color-orange{border-color:var(--tag-orange-text);color:var(--tag-orange-text)}.label-chip.color-green{border-color:var(--tag-green-text);color:var(--tag-green-text)}.label-chip.color-blue{border-color:var(--tag-blue-text);color:var(--tag-blue-text)}.label-chip.color-purple{border-color:var(--tag-purple-text);color:var(--tag-purple-text)}.label-chip.color-gray{border-color:var(--tag-gray-text);color:var(--tag-gray-text)}.label-chip.color-red.is-selected{background:var(--tag-red-soft)}.label-chip.color-orange.is-selected{background:var(--tag-orange-soft)}.label-chip.color-green.is-selected{background:var(--tag-green-soft)}.label-chip.color-blue.is-selected{background:var(--tag-blue-soft)}.label-chip.color-purple.is-selected{background:var(--tag-purple-soft)}.label-chip.color-gray.is-selected{background:var(--tag-gray-soft)}.label-actions{gap:12px;display:flex}.label-create,.label-manage{border:1px solid var(--color-border);border-radius:6px;margin-top:6px;padding:10px}.label-manage-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.label-manage-row:last-child{border-bottom:none}.handover-include{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.handover-include input{flex-shrink:0;margin-top:4px}.handover-labels{color:var(--color-primary-dark);margin:2px 0;font-size:11px;display:block}
