:root{--navy:#102f51;--navy-deep:#071f38;--blue:#087fad;--blue-bright:#27a7dc;--ice:#eaf5fa;--mist:#f3f7fa;--line:#d8e3ea;--ink:#17283a;--muted:#596a78;--white:#fff;--danger:#b72d35}*{box-sizing:border-box}body{color:var(--ink);background:#f6f9fb;margin:0;font-family:Noto Sans JP,Yu Gothic,Meiryo,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{grid-template-columns:190px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy-deep);min-height:100vh;color:var(--white);padding:22px 14px}.brand{border-bottom:1px solid #ffffff24;padding:0 8px 24px}.brand span{color:#b9d1e1;margin-bottom:5px;font-size:11px;display:block}.brand strong{letter-spacing:.05em;font-size:20px}nav{padding-top:18px}nav a{color:#d9e6ef;border-radius:5px;margin:3px 0;padding:10px;font-size:13px;font-weight:600;text-decoration:none;display:block}nav a:hover,nav a.active{color:var(--white);background:#185580}.nav-label{color:#7696ad;letter-spacing:.12em;margin:22px 10px 7px;font-size:10px}main{min-width:0;padding:22px 28px 50px}.topbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.eyebrow{color:var(--blue);letter-spacing:.16em;margin:0 0 4px;font-size:10px;font-weight:700}h1{margin:0;font-size:25px}.user-button,.calendar-header button,.dialog-actions button,.icon-button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:5px}.user-button{padding:8px 12px}.user-button span{color:var(--muted);margin-left:8px;font-size:9px}.summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.summary-card{border:1px solid var(--line);background:var(--white);border-radius:6px;padding:15px 17px}.summary-card>span{color:var(--muted);margin-bottom:5px;font-size:11px;display:block}.summary-card strong{font-size:18px}.calendar-panel,.upcoming{border:1px solid var(--line);background:var(--white);border-radius:7px;overflow:hidden}.calendar-header{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;padding:13px;display:grid}.calendar-header>button:first-child{justify-self:start}.calendar-actions{justify-self:end;align-items:center;gap:8px;display:flex}.calendar-actions select{border:1px solid var(--line);background:var(--white);height:34px;color:var(--ink);border-radius:5px;padding:0 28px 0 9px;font-size:12px}.calendar-header button,.dialog-actions button{padding:7px 11px}button:hover{background:var(--mist)}button.primary{border-color:var(--blue);background:var(--blue);color:var(--white);font-weight:700}button.primary:hover{background:#066f98}.month-selector{align-items:center;gap:13px;display:flex}.month-selector h2{text-align:center;min-width:125px;margin:0;font-size:16px}.month-selector button{border:0;padding:4px 8px;font-size:21px}.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekdays{border-bottom:1px solid var(--line);background:var(--mist)}.weekdays span{color:var(--muted);text-align:center;padding:7px;font-size:11px;font-weight:700}.weekdays .saturday{color:#32699b}.weekdays .sunday{color:#a74b4b}.day,.empty-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white);min-width:0;min-height:102px;padding:7px}.day:nth-child(7n),.empty-day:nth-child(7n){border-right:0}.day-number{border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;font-size:11px;display:inline-flex}.day.today{background:#f4fbfe}.day.today .day-number{background:var(--blue);color:var(--white);font-weight:700}.day.other-month{background:#fafcfd}.calendar-event{border:0;border-left:3px solid var(--blue);background:var(--ice);width:100%;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;margin-top:5px;padding:5px 6px;font-size:11px;font-weight:600;display:block;overflow:hidden}.calendar-event[data-category=価格改定]{background:#fff8e7;border-left-color:#b78724}.calendar-event[data-category=納期・入荷]{background:#edf8f0;border-left-color:#397b51}.calendar-event[data-category=社内]{background:#f3effa;border-left-color:#755a9e}.upcoming{margin-top:16px}.section-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.section-title h2{margin:0;font-size:15px}.section-title span{color:var(--muted);letter-spacing:.14em;font-size:9px}.event-row{border-bottom:1px solid #edf1f4;grid-template-columns:70px minmax(0,1fr) 100px 82px;align-items:center;gap:12px;padding:11px 16px;font-size:12px;display:grid}.event-row:last-child{border-bottom:0}.event-row:hover{background:#fafcfd}.event-row button{color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;font-weight:600;overflow:hidden}.event-date{font-weight:700}.event-owner{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag{background:var(--ice);color:var(--blue);border-radius:4px;justify-self:end;padding:4px 7px;font-size:10px}.empty-message{color:var(--muted);text-align:center;padding:28px;font-size:12px}dialog{border:0;border-radius:9px;width:min(600px,100vw - 32px);padding:0;box-shadow:0 20px 60px #071f383d}dialog::backdrop{background:#071f386b}#event-form{padding:22px}.dialog-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.dialog-header h2{margin:0;font-size:21px}.icon-button{width:34px;height:34px;padding:0;font-size:22px}.form-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field>span{color:var(--muted);font-size:11px;font-weight:700}.field input,.field select,.field textarea{background:var(--white);width:100%;color:var(--ink);border:1px solid #cbd8e0;border-radius:5px;outline:none;padding:9px 10px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px #087fad1a}.dialog-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:22px;padding-top:17px;display:flex}.dialog-actions-right{gap:8px;margin-left:auto;display:flex}button.danger{color:var(--danger);border-color:#e0b9bc}button.danger:hover{background:#fff1f2}.hidden{display:none!important}@media (width<=900px){.app{grid-template-columns:1fr}.sidebar{display:none}main{padding:18px}.summary{grid-template-columns:1fr}.day,.empty-day{min-height:80px}.event-row{grid-template-columns:60px minmax(0,1fr) auto}.event-owner{display:none}}@media (width<=600px){main{padding:12px}.calendar-header{grid-template-columns:auto 1fr auto}.month-selector{gap:3px}.month-selector h2{min-width:auto;font-size:14px}.day,.empty-day{min-height:68px;padding:4px}.calendar-event{padding:4px;font-size:9px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}.auth-gate{background:linear-gradient(135deg, var(--navy-deep), var(--navy));place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--white);border-radius:10px;width:min(440px,100%);padding:42px;box-shadow:0 24px 70px #00000038}.auth-card h1{margin:0 0 12px;font-size:30px}.auth-description{color:var(--muted);margin:0 0 28px;line-height:1.7}.auth-login{border:0;border-radius:5px;width:100%;padding:12px 16px}
