:root{--green: #1a7f37;--green-dark: #0f5c28;--green-light: #e6f4ea;--black: #111315;--white: #ffffff;--gray: #6b7280;--border: #e2e5e9}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--white);color:var(--black)}a{color:var(--green-dark)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--black);color:var(--white);padding:.9rem 2rem;display:flex;align-items:center;justify-content:space-between}.brand{color:var(--white);font-weight:700;text-decoration:none;font-size:1.1rem}.topbar nav{display:flex;align-items:center;gap:1.4rem}.topbar nav a{color:var(--white);text-decoration:none;opacity:.85}.topbar nav a:hover{opacity:1;color:var(--green)}.btn-nav-cta{background:var(--green);color:var(--white)!important;opacity:1!important;font-weight:700;padding:.5rem 1rem;border-radius:6px;text-decoration:none;white-space:nowrap}.btn-nav-cta:hover{background:var(--green-dark);color:var(--white)!important}.link-btn{background:none;border:none;color:var(--white);cursor:pointer;font:inherit;opacity:.85}.link-btn:hover{opacity:1;color:var(--green)}main{flex:1;padding:2rem;max-width:1100px;margin:0 auto;width:100%}.card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.loading,.error,.empty-state{text-align:center;padding:3rem 1rem}.error{color:#b42318}.muted{color:var(--gray);font-size:.9rem}.login-wrap,.form-wrap{display:flex;justify-content:center;padding-top:2rem}.login-card,.form-wrap .card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem}.login-card h1,.form-wrap h1{margin:0}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600}input,select,textarea{font:inherit;padding:.6rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--white)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-light)}.btn-primary{background:var(--green);color:var(--white);border:none;padding:.7rem 1.2rem;border-radius:6px;font-weight:600;cursor:pointer}.btn-primary:hover{background:var(--green-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dashboard-header h1{margin:0}.date-group{margin-bottom:2rem}.date-group h2{font-size:.95rem;color:var(--gray);border-bottom:2px solid var(--green-light);padding-bottom:.4rem;margin-bottom:1rem}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.device-card{text-decoration:none;color:var(--black);display:flex;flex-direction:column;gap:.4rem;min-width:0;transition:border-color .15s,transform .15s}.device-card:hover{border-color:var(--green);transform:translateY(-2px)}.device-card h3{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-card p,.device-card time{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tag{align-self:flex-start;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--green-light);color:var(--green-dark);font-size:.75rem;font-weight:700;padding:.15rem .55rem;border-radius:999px}.back-link{display:inline-block;margin-bottom:1rem;text-decoration:none}.detail-card{display:flex;gap:2rem;flex-wrap:wrap}.detail-info{flex:1;min-width:240px}.detail-info dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin-top:1rem}.detail-info dt{font-weight:600;color:var(--gray)}.detail-info dd{margin:0}.detail-qr{display:flex;flex-direction:column;align-items:center;gap:.5rem}.detail-qr img{width:200px;height:200px;border:1px solid var(--border);border-radius:8px;padding:.5rem}.history-card{margin-top:1.5rem}.history-card h2{margin-top:0}.note-form{display:flex;gap:.75rem;align-items:flex-start;margin:1rem 0 1.5rem}.note-form textarea{flex:1;resize:vertical}.note-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.note-item{border-left:3px solid var(--green);background:var(--green-light);padding:.6rem .9rem;border-radius:0 6px 6px 0}.note-item time{display:block;font-size:.8rem;margin-bottom:.2rem}.note-item p{margin:0;white-space:pre-wrap}
