*{box-sizing:border-box}body{margin:0;background:#111;color:#ddd;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app{max-width:1500px;margin:auto;padding:16px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:10px}.toolbar button,.dialog-actions button{background:#222;color:#ddd;border:1px solid #3b3b3b;border-radius:8px;padding:9px 14px;cursor:pointer}.toolbar button:hover,.dialog-actions button:hover{background:#2d2d2d}.view-buttons{display:flex;gap:6px}.view-buttons .active{background:#333;border-color:#555}.nav{display:flex;align-items:center;gap:12px;margin-bottom:8px}.nav h1{font-size:20px;text-align:center;flex:1;margin:0}.nav button{width:38px;height:38px;background:#222;color:#ddd;border:1px solid #3b3b3b;border-radius:10px;font-size:20px;cursor:pointer}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;color:#888;font-weight:700;padding:5px}.day-cell{min-height:125px;background:#1a1a1a;border:1px solid #333;border-radius:8px;padding:6px;cursor:pointer;overflow:hidden}.day-cell:hover{background:#232323}.day-cell.outside{background:#151515;color:#555}.day-cell.today{border:2px solid #4fa3ff}.day-number{text-align:right;font-weight:700}.colour-bar{height:5px;border-radius:3px;margin-bottom:5px;background:transparent}.dots{display:flex;gap:3px;min-height:10px}.dot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.35)}.preview{margin-top:4px}.preview-line{border-left:3px solid;padding-left:6px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:19px}.more{color:#888;font-size:11px}.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.year-card{border:1px solid #333;border-radius:10px;padding:18px;background:#2a2a2a;cursor:pointer;text-align:center}.year-card:hover{background:#353535}.year-card h2{margin:0 0 8px}.year-card p{margin:0}.day-view{display:flex;flex-direction:column}.all-day{min-height:56px;background:#141414;border:1px solid #2f2f2f;border-radius:14px;padding:10px 12px;display:flex;gap:8px;align-items:center;margin-bottom:6px}.all-day-label{color:#999;font-weight:700}.chips{display:flex;gap:8px;overflow:auto}.chip{border-radius:12px;padding:6px 10px;font-weight:700;white-space:nowrap;cursor:pointer;border:1px solid rgba(0,0,0,.35)}.day-scroll{height:calc(100vh - 180px);min-height:450px;overflow:auto;border:1px solid #292929;border-radius:8px;background:#111}.canvas{position:relative;height:1440px;min-width:650px}.hour{position:absolute;left:0;right:0;border-top:1px solid #2b2b2b;height:1px}.hour span{position:absolute;left:6px;top:-9px;width:55px;text-align:right;color:#888;font-size:11px}.event{position:absolute;border-radius:6px;border:1px solid;padding:4px 6px;overflow:hidden;cursor:grab;min-height:24px}.event:active{cursor:grabbing}.event.dragging{z-index:100;opacity:.9}.resize-handle{position:absolute;left:0;right:0;bottom:0;height:9px;cursor:ns-resize}.resize-handle:after{content:"";position:absolute;left:35%;right:35%;bottom:3px;border-top:2px solid currentColor;opacity:.65}.event .title{font-weight:700;font-size:13px}.event .time{font-size:11px}.event .snippet{font-size:11px;margin-top:2px}.agenda{border:1px solid #2b2b2b;border-radius:8px;overflow:auto;max-height:calc(100vh - 180px)}.agenda-day{padding:10px 12px;color:#999;font-weight:700;background:#161616;border-top:1px solid #292929}.agenda-item{padding:9px 12px;border-top:1px solid #242424;cursor:pointer}.agenda-item:hover{background:#1d1d1d}.new-btn{margin-left:8px}dialog{background:#181818;color:#ddd;border:1px solid #444;border-radius:12px;padding:0;max-width:600px;width:calc(100% - 28px)}dialog::backdrop{background:rgba(0,0,0,.7)}form{padding:20px}form h2{margin-top:0}label{display:block;margin:10px 0;font-weight:600}input,select,textarea{width:100%;margin-top:5px;background:#101010;color:#ddd;border:1px solid #444;border-radius:7px;padding:9px;font:inherit}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media(max-width:800px){.app{padding:10px}.month-grid{gap:3px}.day-cell{min-height:90px;padding:4px}.preview-line{font-size:10px}.year-grid{grid-template-columns:repeat(2,1fr)}.toolbar{flex-wrap:wrap}.two{grid-template-columns:1fr}.day-scroll{height:calc(100vh - 210px)}}
