*{box-sizing:border-box}:root{--blue-dark: #1a5fb4;--blue: #2b7de9;--blue-band: #cfe3f7;--blue-cell: #dce9fb;--blue-head: #eaf2fd;--border: #7fa8d9;--yellow: #fff9ae;--red: #d94545;--green-head: #ddedd0;--pink-head: #fadcdc;--sky-head: #d3eef7}body{margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;background:#f2f6fb;color:#1c2b3a;font-size:14px}.app-header{background:linear-gradient(#3b82d8,#1a5fb4);color:#fff;display:flex;align-items:center;gap:16px;padding:8px 16px}.app-header h1{font-size:22px;margin:0;letter-spacing:2px}.app-header .clinic{margin-left:auto;text-align:right;font-size:12px}.app-nav{background:var(--blue-band);display:flex;gap:4px;padding:6px 12px;border-bottom:2px solid var(--border)}.app-nav a{padding:6px 14px;border-radius:6px 6px 0 0;text-decoration:none;color:var(--blue-dark);font-weight:600;background:#fff;border:1px solid var(--border);border-bottom:none}.app-nav a.active{background:var(--blue-dark);color:#fff}.page{padding:14px 18px 40px}.page h2{font-size:20px;color:var(--blue-dark);border-left:8px solid var(--blue-dark);padding-left:10px;margin:4px 0 14px}button,.btn{background:#fff;border:1px solid var(--border);color:var(--blue-dark);border-radius:6px;padding:6px 14px;font-weight:600;cursor:pointer;font-size:13px}button:hover{background:var(--blue-head)}button.primary{background:var(--blue-dark);color:#fff}button.primary:hover{background:var(--blue)}button.danger{color:var(--red)}button:disabled{opacity:.5;cursor:default}input,select{border:1px solid var(--border);border-radius:4px;padding:5px 6px;font-size:13px;background:#fff}input.time{width:60px;text-align:center}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.toolbar .spacer{flex:1}.msg-ok{color:#1c7c2c;font-weight:600}.msg-err{color:var(--red);font-weight:600;white-space:pre-wrap}table.grid{border-collapse:collapse;width:100%;background:#fff}table.grid th{background:var(--blue-head);color:var(--blue-dark);border:1px solid var(--border);padding:6px 8px;font-size:13px}table.grid td{border:1px solid var(--border);padding:5px 8px}table.grid tr:nth-child(2n) td{background:#f7fafd}table.grid tr.conflict td{background:#ffe2e2}table.grid tr.done td{background:#eef7ea}.cal-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.cal-head .ym{font-size:26px;font-weight:700;color:var(--blue-dark);min-width:170px;text-align:center}.cal-table{border-collapse:collapse;width:100%;table-layout:fixed;background:#fff}.cal-table th{border:1px solid var(--border);padding:4px;font-size:13px}.cal-table th.sun{background:var(--pink-head);color:#b03030}.cal-table th.sat{background:var(--sky-head);color:#1a6d8f}.cal-table th.wd{background:var(--green-head)}.cal-table td{border:1px solid var(--border);vertical-align:top;height:96px;padding:0;cursor:pointer}.cal-table td:hover{outline:2px solid var(--blue);outline-offset:-2px}.cal-table td .dnum{display:block;text-align:center;font-weight:700;background:var(--blue-cell);padding:2px 0;color:#1c2b3a}.cal-table td.other .dnum{background:#e3e3e3;color:#888}.cal-table td.today .dnum{background:var(--yellow)}.cal-table td .items{padding:3px 5px;font-size:12px;color:var(--blue-dark)}.cal-table td .items div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dayplan-title{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.dayplan-title .date{font-size:22px;font-weight:700;color:var(--blue-dark)}.timegrid{border-collapse:collapse;width:100%;background:#fff}.timegrid th{background:var(--blue-head);border:1px solid var(--border);color:var(--blue-dark);padding:5px 6px;font-size:13px}.timegrid td{border:1px solid var(--border);padding:4px 6px;text-align:center}.timegrid td.left{text-align:left}.timegrid tr.sep td{background:var(--yellow);height:8px;padding:0;border-left:none;border-right:none}.timegrid .fac{font-size:11px;color:#555}.timegrid .pname{font-size:16px;font-weight:700}.timegrid .kno{font-size:12px;color:#555}.timegrid tr.conflict td{background:#ffe2e2}.badge{display:inline-block;font-size:11px;border-radius:3px;padding:1px 5px;color:#fff;margin-left:6px}.badge.ok{background:#2c9c46}.badge.pending{background:#e8a021}.badge.ng{background:var(--red)}.badge.nocopay{background:#3579b8}.conflict-box{background:#ffe9e9;border:1px solid var(--red);border-radius:6px;padding:8px 12px;margin:10px 0;color:#8f1f1f;font-size:13px}.visit-chip{display:inline-block;border:1px solid var(--border);border-radius:4px;padding:2px 8px;margin:2px 4px 2px 0;font-size:12px;color:var(--blue-dark);background:#fff;text-decoration:none;white-space:nowrap}.visit-chip:hover{background:var(--blue-head)}.visit-chip.locked{background:#eef7ea;border-color:#2c9c46;color:#1c6c30;font-weight:600}.att-bar{background:#eef5fd;border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin-bottom:10px}.att-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:3px 0}.att-label{font-weight:700;color:var(--blue-dark);min-width:110px;font-size:13px}.att-chip{border:1px solid var(--border);border-radius:14px;padding:3px 12px;background:#fff;color:#99a;font-size:13px}.att-chip.on{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff;font-weight:700}.att-chip:hover{background:var(--blue-head)}.att-chip.on:hover{background:var(--blue)}.tl-board{display:flex;gap:10px;align-items:flex-start}.tl-lane{flex:1;min-height:320px;background:#eef3fa;border:2px dashed var(--border);border-radius:8px;padding:8px}.tl-lane.over{background:#dcebff;border-color:var(--blue)}.tl-lane-head{font-weight:700;color:var(--blue-dark);margin-bottom:8px;padding:4px 6px;border-bottom:2px solid var(--border)}.tl-card{background:#fff;border:1px solid var(--border);border-left:5px solid var(--blue);border-radius:6px;padding:7px 10px;margin-bottom:6px;cursor:grab;box-shadow:0 1px 3px #0000001f}.tl-card:active{cursor:grabbing}.tl-card.dragging{opacity:.4}.tl-card-title{font-weight:700;font-size:14px}.tl-card .tl-count{background:var(--blue-dark);color:#fff;border-radius:10px;font-size:11px;padding:1px 8px;margin-left:8px;font-weight:600}.tl-card-sub{font-size:12px;color:#556;margin-top:2px}.tl-empty{color:#99a;text-align:center;padding:26px 0;font-size:13px}.print-sheet{background:#fff;max-width:960px;margin:12px auto;padding:22px 26px;box-shadow:0 2px 10px #0000001f;page-break-after:always;break-after:page}.print-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px double #333;padding-bottom:6px;margin-bottom:10px}.print-title .print-fac{font-size:21px;font-weight:700}.print-title .print-addr{display:block;font-size:12px;color:#444;margin-top:2px}.print-meta{text-align:right;font-size:13px}.print-table{border-collapse:collapse;width:100%}.print-table th,.print-table td{border:1px solid #333;padding:4px 6px;font-size:13px}.print-table th{background:#eee;font-weight:700}.print-table td.c{text-align:center}.print-table .print-kana{font-size:10px;color:#555}.print-table .print-name{font-size:15px;font-weight:700}.print-table .print-checkbox{font-size:18px}.print-table tr.print-datebreak td{border-top:2px solid #333}.print-foot{margin-top:10px;font-size:13px;border-bottom:1px solid #999;padding-bottom:18px}@media print{.no-print,.app-header,.app-nav{display:none!important}body{background:#fff}.page{padding:0}.print-sheet{box-shadow:none;margin:0;max-width:none;padding:8mm 6mm}.print-sheet:last-of-type{page-break-after:auto;break-after:auto}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:10px;padding:18px 22px;width:min(860px,94vw);max-height:86vh;overflow:auto;box-shadow:0 12px 40px #00000040}.modal h3{margin-top:0;color:var(--blue-dark)}.form-row{display:flex;gap:10px;margin-bottom:10px;align-items:center;flex-wrap:wrap}.form-row label{min-width:110px;font-weight:600;color:#334}
