:root{color-scheme:light dark;font-family:-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0;max-width:640px;margin-inline:auto;padding:0 16px 48px}h1{font-size:1.3rem}button{padding:10px 16px;border:none;border-radius:8px;background:#2563eb;color:#fff;font-size:1rem;cursor:pointer}button:disabled{opacity:.5}button.ghost{background:transparent;color:inherit;border:1px solid #8884}button.active{background:#1e40af}input{padding:10px;border:1px solid #8886;border-radius:8px;font-size:1rem}label{display:flex;flex-direction:column;gap:4px;margin:12px 0}.header{display:flex;align-items:center;justify-content:space-between;gap:8px}.header nav{display:flex;gap:8px}.login,.wake{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:20vh}.login form{display:flex;flex-direction:column;gap:12px;width:min(320px,100%)}.error{color:#dc2626}.message{color:#16a34a}.hint{font-size:.85rem;opacity:.7}.spinner{width:36px;height:36px;border:4px solid #8884;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.date-row{display:flex;align-items:center;gap:12px;margin:16px 0}.date-button-wrap{position:relative;display:inline-block}.date-button{background:transparent;border:1px solid #8886;color:inherit;font-size:1.15rem;font-variant-numeric:tabular-nums}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.cal-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:11;width:300px;padding:12px;background:Canvas;border:1px solid #8886;border-radius:12px;box-shadow:0 8px 24px #0004}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.cal-w{font-size:.8rem;opacity:.8;padding:4px 0}.cal-day{background:transparent;color:inherit;border:none;border-radius:8px;padding:7px 0;font-size:.95rem;font-variant-numeric:tabular-nums}.cal-day:hover{background:#8883}.cal-day.selected{outline:2px solid #2563eb}.cal-day.today{font-weight:700;text-decoration:underline}.time-row{display:flex;gap:16px}.time-row label{flex:1}.time-row input{font-size:1.3rem;font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:6px 8px;border-bottom:1px solid #8883;text-align:left;font-size:.9rem}tbody tr{cursor:pointer}.month-header{display:flex;justify-content:space-between;gap:8px;margin:12px 0}.month-actions{display:flex;gap:8px}.csv-meta{display:flex;gap:12px;margin:8px 0}.csv-meta label{flex:1;margin:0;font-size:.85rem}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.cal-footer{display:flex;justify-content:space-between;margin-top:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0006}.editor{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:21;width:min(360px,90vw);background:Canvas;border:1px solid #8885;border-radius:12px;padding:16px 20px;box-shadow:0 12px 32px #0005}.editor-buttons{display:flex;gap:8px}.day-red{color:#dc2626}.day-blue{color:#2563eb}.cal-icon{color:#888;vertical-align:-2px;margin-left:2px}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);z-index:30;padding:3px 8px;border-radius:6px;background:#333;color:#fff;font-size:.75rem;white-space:nowrap;pointer-events:none;animation:tip-in 80ms ease-out}@keyframes tip-in{0%{opacity:0}to{opacity:1}}.print-sheet{display:none}@page{size:A4 portrait;margin:12mm}@media print{.no-print{display:none!important}body{max-width:none;margin:0;padding:0;background:#fff}.print-sheet{display:block;color:#000;print-color-adjust:exact;-webkit-print-color-adjust:exact}}.ps-title{margin:0 0 10px;text-align:center;font-size:20px;letter-spacing:10px}.ps-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}.ps-box{border-collapse:collapse;font-size:11px}.ps-box th,.ps-box td{border:1px solid #000;padding:3px 10px}.ps-box th{background:#efefef;font-weight:600;text-align:left;width:70px}.ps-box td{min-width:130px}.ps-table{width:100%;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}.ps-table th,.ps-table td{border:1px solid #000;padding:1.5px 6px;text-align:center}.ps-table th{background:#efefef}.ps-table .ps-note{width:32%;text-align:left}.ps-off{background:#f2f2f2}
